forgot this
[mono.git] / mono / metadata / ChangeLog
1 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2
3         * process.c: (complete_path) return the path quoted
4
5 2004-12-01  Martin Baulig  <martin@ximian.com>
6
7         * class-internals.h (MonoGenericInst): New structure.
8         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9         `is_open' with `MonoGenericInst *inst'.
10         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
11         `is_open' with `MonoGenericInst *inst'.
12
13 2004-11-30  Martin Baulig  <martin@ximian.com>
14
15         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
16
17         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
18         to `generic_class_cache'.
19
20         * metadata.c
21         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
22         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
23         (mono_generic_inst_is_valuetype): Renamed to
24         mono_generic_class_is_valuetype().
25
26         * class-internals.h
27         (MonoGenericInst): Renamed to MonoGenericClass.
28         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
29         (MonoClass): Renamed `generic_inst' to `generic_class'.
30         (MonoGenericContext): Renamed `ginst' to `gclass'.
31
32         * object-internals.h
33         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
34
35         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
36         mono_reflection_generic_class_initialize().
37
38         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
39         now known as "System.Reflection.MonoGenericClass".
40         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
41
42 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
43
44         * class-internals.h: Added a flag field to MonoClass to cache the
45         declarative security attributes actions associated with the class.
46         * domain-internals.h: Added booleans to MonoJitInfo to cache the
47         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
48         applicable to the JITted method.
49         * reflection.c|h: Added functions to extract (as flags) which security
50         actions are available (declaratively) for a method, class or assembly.
51         * metadata.c|h: Added functions to search the declarative security
52         table in the metadata.
53         
54 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
55
56         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
57         EXPORTEDTYPES are already in the class name cache, so there is no
58         need to add extra code here to look at them. Just removes a bit of
59         cruft.
60
61         (ves_icall_System_Environment_get_TickCount): No need for #if
62         WINDOWS. We already have the code in io-layer.
63
64 2004-11-28  Martin Baulig  <martin@ximian.com>
65
66         * loader.c
67         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
68         Fixes gen-112.cs.
69
70 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
71
72         * assembly.c (do_mono_assembly_open): Instead of having a
73         conditional WITH_BUNDLE, incorporate support for bundles here, by
74         having a global `bundles' variable holding a pointer to the actual
75         bundles. 
76
77         (mono_register_bundled_assemblies): New API call used by the
78         bundle code. 
79
80         See mkbundle.1 for details.
81         
82 2004-11-27  Martin Baulig  <martin@ximian.com>
83
84         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
85         the vtable for generic methods.
86
87 2004-11-26  Martin Baulig  <martin@ximian.com>
88
89         * metadata.c
90         (mono_metadata_generic_method_hash): New public function.
91         (mono_metadata_generic_method_equal): Likewise.
92
93         * class-internals.h
94         (MonoGenericContainer): Added `GHashTable *method_hash'.
95
96         * reflection.c (ReflectionMethodBuilder): Added
97         `MonoGenericContainer *generic_container'.
98         (reflection_methodbuilder_to_mono_method): Don't create a new
99         MonoGenericContainer each time we're called.
100         (mono_reflection_bind_generic_method_parameters): Use
101         `container->method_hash' to cache the results so we don't create a
102         different method if we're called several times with the same
103         arguments.
104
105         * loader.c (method_from_methodspec): Use the new
106         `container->method_hash' here, too.
107
108 2004-11-26  Martin Baulig  <martin@ximian.com>
109
110         * class.c (inflate_generic_signature): Correctly compute
111         `res->has_type_parameters'.
112         (mono_class_vtable): Use the `has_type_parameters' flag to
113         determine whether we're a generic method.
114
115         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
116
117 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
118
119         * object.c (mono_runtime_run_main): Fix a small memory leak.
120
121 2004-11-25  Martin Baulig  <martin@ximian.com>
122
123         * class.c (set_generic_param_owner): Fixed the loop.
124
125 2004-11-25  Martin Baulig  <martin@ximian.com>
126
127         * object.c (mono_class_vtable): Don't create any JIT wrappers for
128         generic methods.
129
130 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
131
132         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
133         names. Fixes #69787.
134
135 2004-11-24  Martin Baulig  <martin@ximian.com>
136
137         * class.c (mono_class_create_generic_2): If we don't have a
138         `ginst->parent', inflate `gklass->parent' to get our parent.
139
140 2004-11-24  Martin Baulig  <martin@ximian.com>
141
142         * reflection.c (compare_genericparam): Correctly sort the
143         GenericParam table; fixes #69779.
144
145 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
146
147         * reflection.c: When writing a PE file, don't create a huge
148         buffer in memory. Just write the arrays we have to the file.
149         This reduces memory usage.
150
151         * metadata-internals.h: MonoDynamicStream pefile is no longer used
152         globally.
153
154 2004-11-17  Martin Baulig  <martin@ximian.com>
155
156         * class.c (mono_class_init): Don't setup `class->parent' for
157         dynamic instances; moved this to mono_class_generic_2().
158         (mono_class_create_generic): Also set `klass->inited' for dynamic
159         generic instances.
160         (mono_class_create_generic_2): Don't do anything for dynamic
161         generic instances.  Set `klass->parent' here and also call
162         mono_class_setup_parent() here. 
163
164         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
165         `MonoType *parent' argument; set `ginst->parent' before calling
166         mono_class_create_generic_2(), so we set the correct parent.
167
168 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
169
170         * reflection.c: allow getting attributes from ModuleBuilder
171         (used by ikvm).
172
173 2004-11-17  Martin Baulig  <martin@ximian.com>
174
175         * class.c (mono_class_create_from_typedef): If a type parameter is
176         inherited from an outer class, set its owner to that class.
177
178 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
179
180         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
181           for (int*) written size. This fixes bug #69592.
182
183 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
184
185         * icall.c: Added IsAuthenticodePresnet internal call.
186         * image.c|h: New function that check a MonoImage for an Authenticode
187         signature in the certificate PE data directory.
188         * security.c|h: New internal call to ask the runtime if an 
189         Authenticode signature seems referenced in the PE header.
190
191 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
192
193         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
194
195         * reflection.c (mono_image_create_pefile): Free the assembly streams
196         after writing out the assembly file.
197
198         * object.c (mono_runtime_run_main): Fix small memory leak.
199
200         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
201         property access modifiers. Fixes #69389.
202
203 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
204
205         * domain.c, object.c, object-internals.h, domain-internals.h,
206         object.h, marshal.c: keep dynamic code info per domain.
207
208 2004-11-15  Martin Baulig  <martin@ximian.com>
209
210         * class.c (mono_type_get_name_recurse): Put type arguments in
211         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
212         see bug #68387.
213
214 2004-11-15  Martin Baulig  <martin@ximian.com>
215
216         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
217         (mono_class_setup_vtable): When computing `the_cname' for a
218         generic instance, don't include the namespace since we'd otherwise
219         add it twice.
220
221 2004-11-15  Martin Baulig  <martin@ximian.com>
222
223         * class.c (mono_class_create_generic): Changed return type to void.
224         (mono_class_create_generic_2): New public function; setup
225         `class->method', `class->field' and `class->interfaces' here
226         instead of in mono_class_init().
227
228         * class.h (mono_class_create_generic): Moved to class-internals.h.
229
230 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
231
232         * reflection.c (mono_image_create_pefile): take a file HANDLE.
233         rather than writing to memory, write to this file. Right now,
234         we are just writting into a buffer, and copying that. However
235         we can avoid the buffer later.
236
237         (mono_dynamic_stream_reset): new function
238
239         * icall.c, object-internals.h: update for the above.
240
241 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
242
243         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
244         have been using gc'd memory. First it is slower, unlikely
245         the comment in the source code said, secondly, it increases
246         our footprint to do it in the gc.
247
248         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
249         the method so that it does not have to copy to managed code.
250
251 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
252
253         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
254
255 2004-11-12  Martin Baulig  <martin@localhost>
256
257         * reflection.c (mono_image_create_token): Allow generic method
258         definitions here, since they may appear in an `.override'; see
259         gen-98/gen-99 for an example.
260
261 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
262
263         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
264         #69365.
265
266         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
267         descriptive.
268
269 2004-11-11  Martin Baulig  <martin@ximian.com>
270
271         * class.c (mono_class_setup_vtable): In an explicit interface
272         implementation, the method name now includes the arity.
273
274 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
275
276         * object.c (mono_array_full_copy): Fix warning.
277
278 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
279
280         * appdomain.c: Removed look_for_method_by_name(). Use the new method
281         mono_class_get_method_from_name() instead.
282         
283         * class-internals.h: Added two new types of wrappers. 
284         Added MonoRemotingTarget enum. Added new trampoline function type, which
285         takes an additional MonoRemotingTarget value as parameter, so it is
286         possible to request a trampoline for a specific target.
287         
288         * class.c: Added new mono_class_get_method_from_name() method.
289         
290         * class.h: In MonoRemoteClass, we can have now to vtables, one for
291         general remoting sinks and one specific for cross domain calls.
292         
293         * debug-helpers.c: Added new wrapper names.
294         
295         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
296         of a remote class.
297         
298         * image.c: Porperly delete value objects form the remoting invoke hashtable.
299         
300         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
301         with several other methods (mono_marshal_get_xappdomain_dispatch,
302         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
303         and others) can generate a fast remoting wrapper for cross domain calls.
304         More information can be found in docs/remoting.
305         Other changes: Removed mono_find_method_by_name, and used
306         mono_class_get_method_from_name instead.
307         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
308         is stored in the remoting invoke hashtable.
309         
310         * marshal.h: published the new method for getting the xdomain wrapper,
311         and also added a method for getting the adequate wrapper for a given
312         method and target.
313         
314         * object-internals.h, object.c: Added a couple of methods for capying and
315         cloning arrays.
316         Modified mono_install_remoting_trampoline, which takes the new remoting
317         trampoline that has a remoting target as parameter.
318         mono_class_proxy_vtable now also takes a remoting target as parameter, and
319         will return the most suitable vtable for the target.
320         Added mono_remote_class_vtable, which returns the vtable of a remote class
321         (which can be the normal remoting vtable or the xdomain vtable).
322         
323         * threads.c: the xdomain invoke and dispatch wrappers must also be
324         protected against interruptions.
325
326 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
327
328         * icall.c: use memmove in BlockCopyInternal when the source and
329         destination arrays are the same.
330
331 2004-11-09  Martin Baulig  <martin@ximian.com>
332
333         * class-internals.h (MonoGenericContainer): Removed `method' and
334         `signature', replaced them with `is_method' and `is_signature'
335         flags.  Added `context'.
336
337         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
338         instead of a `MonoGenericContainer *'.
339
340         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
341         for dynamic type parameters.
342         (mono_metadata_load_generic_params): Setup `container->context'.
343
344         * reflection.c (mono_reflection_setup_generic_class): Setup
345         `tb->generic_container->context'.
346         (do_mono_reflection_bind_generic_parameters): Use
347         mono_class_inflate_generic_type() to correctly inflate types,
348         rather than using our own hack just for MONO_TYPE_VAR.
349
350 2004-11-09  Martin Baulig  <martin@ximian.com>
351
352         * class.c (mono_class_inflate_generic_method): Small fix; don't
353         crash here.
354
355         * icall.c
356         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
357         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
358         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
359         (ves_icall_Type_BindGenericParameters): Likewise.
360         (ves_icall_Type_get_IsGenericInstance): Likewise.
361         (ves_icall_Type_GetGenericParameterPosition): Likewise.
362         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
363         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
364         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
365
366 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
367
368         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
369         assembly versions and public key tokens. Fixes #69113.
370
371 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
372
373         * metadata.c: fix bug introduced with the type cache changes
374         on 2004-11-06.
375
376 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
377
378         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
379         the MonoClass pointer instead of the token in exception clauses.
380         * reflection.c: updates for the above and make the code not depend
381         on the structure of MonoExceptionClause.
382
383 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
384
385         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
386         Add support for dynamic assemblies. Fixes #69114.
387
388         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
389
390 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
391
392         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
393         since most only those methods use it. the code member of
394         MonoMethodPInvoke was dead, so that can be removed too. Also,
395         remove inline_count (again, not used), and move slot so that it
396         can share bits with some other flags. This saves 8 bytes in the
397         structure and gives us about 50 kb back for mcs helloworld.cs
398
399         * *.[ch]: Do naming changes for the above.
400
401         * loader.c (mono_method_get_header): Lazily init the header
402         on first access.
403         (mono_get_method_from_token): don't init the header here
404         (mono_free_method): the header may never be allocated
405
406         Overall, this saves 150 kb of unmanaged allocations
407         for mcs helloworld.cs. That accounts for 10% of the unmanaged
408         memory at runtime.
409         
410         * loader.c, loader.h (mono_method_get_header): new accessor.
411
412         * *.[ch]: use the above method. Prepares us to lazily load
413         the header.
414
415         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
416         three warnings, which are actual bugs (see 69206).
417
418         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
419         unused. Saves a cool 4 bytes / method.
420
421 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
422
423         * metadata.c (builtin_types): Add types for System.Object here.
424         (mono_metadata_parse_type_full): Cache MonoType*'s that are
425         for a class or valuetype from klass->this_arg or klass->byval_arg.
426
427         On mcs for a hello world, this gets us down from 21836 MonoType's
428         to 14560.
429
430         (mono_metadata_free_type): Account for the above change.
431
432 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
433
434         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
435         exception instead of asserting if name is null.
436         (ves_icall_System_AppDomain_GetData): Ditto.
437
438 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
439
440         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
441         EnumBuilder.
442
443         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
444         Return NULL when the domain does not have entry_assembly set.
445
446         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
447         Add a 'resource_modules' argument.
448         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
449
450         * reflection.c (mono_reflection_create_runtime_class): Move setting
451         of wastypebuilder here, so mono_get_type_object () returns a MonoType
452         for enums too.
453
454         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
455         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
456         Throw an ArgumentNullException if 'ptr' is null.
457
458         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
459         assemblies here. Fixes #69020.
460
461 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
462
463         * reflection.c (build_compressed_metadata): Fix the previous patch for
464         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
465         the stack.
466
467 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
468
469         * assembly.c (mono_assembly_names_equal): Allow a match if one of
470         the cultures is false. Fixes #69090.
471
472         * reflection.c (build_compressed_metadata): Fix invalid memory read 
473         detected by valgrind.
474         
475         * reflection.c (mono_reflection_get_type): Avoid triggering a 
476         TypeResolve multiple times for the same type. Fixes #65577.
477
478 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
479
480         * marshal.c: Avoid using ldftn to call managed functions. It is
481         much slower than just a call.
482
483         * reflection.c (mono_module_get_object): free the basename we
484         allocate here from glib.
485         
486         * reflection.c (ensure_runtime_vtable): make sure to free
487         overrides.  Also, we were allocating an array of MonoMethod not an
488         array of MonoMethod*.
489
490         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
491
492         * image.c (mono_image_close): free image->guid here.
493
494 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
495
496         * reflection.c: Fix some spec conformance issues with the PE file
497         structures so mcs compiled apps run on the Net 2.0 beta.
498
499 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
500
501         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
502         Implement this. Fixes #67264.
503
504         * debug-helpers.h debug-helpers.c marshal.c: Move 
505         mono_find_method_by_name to debug-helpers.c.
506
507 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
508
509         * object.c (mono_release_type_locks): type_initialization_hash is
510         a GHashTable.
511
512         * reflection.c object.c object-internals.h: Fix warnings.
513
514         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
515         without accessors. Fixes #61561.
516
517         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
518         application base from the root domain if not set. Fixes #65641.
519         (mono_runtime_init): Fix warning.
520
521 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
522
523         * appdomain.c: call mono_thread_pool_init.
524         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
525         of worker threads based on the number of CPUs and the environment
526         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
527         for non-windows (windows) systems.
528
529 2004-10-27  Chris Toshok  <toshok@ximian.com>
530
531         * mono-debug-debugger.c (write_class): don't call mono_class_init
532         here, as even with the check for (!klass->init_pending), we get
533         into a situation where we're hitting cycles in class
534         initialization.  Fixes #68816.
535
536 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
537
538         * image.c: Avoid overwriting values in the loaded_images_hash when an
539         assembly is loaded multiple times. Fixes #61152.
540
541         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
542         so multiple satellite assemblies for the same name can be loaded.
543         Fixes #68259.
544
545         * mono_domain_assembly_preload: Actually return the loaded assembly, 
546         not NULL.
547
548         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
549         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
550
551         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
552         pending finalizers are not invoked after the appdomain has been 
553         unloaded. Fixes #67862.
554
555 2004-10-22  Martin Baulig  <martin@ximian.com>
556
557         * mono-debug-debugger.c
558         (mono_debugger_runtime_invoke): Don't box valuetypes.
559
560 2004-10-22  Chris Toshok  <toshok@ximian.com>
561
562         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
563         don't hide private methods.
564
565 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
566
567         * icall.c: Allows the runtime to "share" (when known) the public key
568         token of an assembly. This avoid the need to recalculate the token 
569         (from the public key) in managed code.
570
571 2004-10-21  Chris Toshok  <toshok@ximian.com>
572
573         * debug-helpers.c (append_class_name): argh, revert last patch.
574         
575 2004-10-21  Chris Toshok  <toshok@ximian.com>
576
577         * debug-helpers.c (append_class_name): use '+' as the delimiter,
578         not '/', so that it matches what the debugger uses to look up
579         methods.
580
581 2004-10-21  Martin Baulig  <martin@ximian.com>
582
583         * mono-debug-debugger.c (mono_debugger_throw_exception): New
584         public method; this is called each time an exception is thrown and
585         allows the debugger to use exception catch points.
586
587 2004-10-21  Martin Baulig  <martin@ximian.com>
588
589         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
590         the stack pointer and the exception object in some struct and pass
591         that to the debugger.
592
593 2004-10-21  Chris Toshok  <toshok@ximian.com>
594
595         * mono-debug-debugger.c (do_write_class): add instance/static
596         event support.  We don't expose "raise" or "other" yet.
597         (event_is_static): new method.
598
599 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
600
601         * mono-debug-debugger.c
602         (mono_debugger_handle_exception): Remove
603         bogus return value for fussy compilers.
604
605 2004-10-20  Martin Baulig  <martin@ximian.com>
606
607         * mono-debug-debugger.c
608         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
609         (mono_debugger_handled_exception): Likewise.
610
611 2004-10-20  Martin Baulig  <martin@ximian.com>
612
613         * mono-debug-debugger.h (MonoDebuggerEvent): Added
614         MONO_DEBUGGER_EVENT_EXCEPTION.
615
616         * mono-debug-debugger.c (mono_debugger_handle_exception): New
617         public function to send the debugger a notification for an
618         exception and inform it about a catch/finally clause.
619
620 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
621
622         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
623         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
624         fix 2.95 build. 
625
626         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
627
628 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
629
630         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
631         marshalled as [In,Out]. Fixes #58325.
632
633 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
634
635         * reflection.c (mono_method_body_get_object): Implement some fields.
636
637 2004-10-12  Martin Baulig  <martin@ximian.com>
638
639         * reflection.c (mono_reflection_bind_generic_parameters): Small
640         fix, correctly retrieve our parent from a generic instance.
641
642 2004-10-12  Martin Baulig  <martin@ximian.com>
643
644         * metadata.c (mono_metadata_generic_param_equal): We always have
645         an owner.
646
647         * class.c
648         (mono_class_from_generic_parameter): We need to have an owner.
649         (my_mono_class_from_generic_parameter): Likewise.
650
651         * reflection.c (mono_reflection_setup_generic_class): Renamed to
652         mono_reflection_create_generic_class() and added a new
653         mono_reflection_setup_generic_class().  
654         (mono_reflection_initialize_generic_param): If we're a nested
655         generic type and inherited from the containing class, set our
656         owner to the outer class.
657
658 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
659
660         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
661
662         * reflection.c (mono_method_body_get_object): New function to create
663         a MethodBody object.
664
665         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
666
667 2004-10-11  Martin Baulig  <martin@ximian.com>
668
669         * metadata.c (_mono_metadata_type_equal): Renamed to
670         do_mono_metadata_type_equal() and made static.
671
672 2004-10-11  Martin Baulig  <martin@ximian.com>
673
674         * appdomain.c: Bump corlib version number to 28.
675
676 2004-10-10  Martin Baulig  <martin@ximian.com>
677
678         * class-internals.h
679         (MonoGenericInst): Added `MonoGenericContainer *container'.
680         (MonoGenericMethod): Likewise.
681         (MonoGenericContext): Likewise.
682         (MonoGenericParam): Added `MonoGenericContainer *owner'.
683
684         * metadata.c
685         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
686         (do_mono_metadata_parse_generic_inst): Likewise.
687         (mono_metadata_parse_type_full): New public method.  This is the actual
688         mono_metadata_parse_type() implementation - with an additional
689         `MonoGenericContainer *' argument.
690         (mono_metadata_parse_array_full): Likewise.
691         (mono_metadata_parse_signature_full): Likewise.
692         (mono_metadata_parse_method_signature_full): Likewise.
693         (mono_metadata_parse_mh_full): Likewise.
694         (mono_type_create_from_typespec): Likewise.
695         (mono_metadata_interfaces_from_typedef_full): New public method;
696         this is similar to the other _full() methods, but we take a
697         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
698         (mono_metadata_parse_generic_param): Take an additional
699         `MonoGenericContainer *' argument and lookup the MonoGenericParam
700         from that container.
701         (mono_metadata_generic_param_equal): New static method to compare
702         two type parameters.
703         (_mono_metadata_type_equal): New static method; takes an
704         additional `gboolean signature_only' argument - if true, we don't
705         compare the owners of generic parameters.
706         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
707         with a TRUE argument - do a signature-only comparision.
708
709         * loader.c: Use the new _full() methods and pass the
710         MonoGenericContainer to them.
711
712         * object-internals.h (MonoReflectionTypeBuilder): Added
713         `MonoGenericContainer *generic_container' field.
714         (MonoReflectionMethodBuilder): Likewise.
715
716 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
717
718         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
719         case initial images of dynamic assemblies.
720
721         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
722
723         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
724
725         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
726         length of event->other array.
727         (typebuilder_setup_events): Ditto.
728
729         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
730         'assembly_by_name' and add an 'assemblies' list.
731
732         * assembly.h assembly.c: Add a new search hook for determining whenever
733         an assembly is already loaded. Use this instead of searching in the
734         loaded_assemblies list.
735
736         * domain.c appdomain.c: Implement the new search hook so loaded 
737         assemblies are now scoped by appdomain. Fixes #67727.
738
739 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
740
741         * threads.c (mono_thread_attach): Initialize synch_lock field so
742         mono_thread_detach works again.
743
744         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
745         'lib' too. Fixes #63130.
746
747 2004-10-06  Jackson Harper  <jackson@ximian.com>
748
749         * culture-info-tables.h: regenerated.
750
751 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
752
753         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
754         implemented by other interfaces in the result. Fixes #65764.
755         
756         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
757         Handle unloadable modules without crashing.
758
759         * image.c (load_modules): Revert the previous patch since modules must
760         have a fixed index inside the array.
761         
762         * image.c (load_modules): Don't include native modules in the modules
763         array.
764
765 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
766
767         * reflection.h: Add param_defaults field.
768
769         * reflection.c: Add support for parameter defaults in dynamic methods.
770         Fixes #64595.
771
772         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
773         an empty string when a type has no namespace. Fixes #64230.
774
775 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
776
777         * tabledefs.h: Added "internal" security actions to support non-CAS
778         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
779         Note: they do not seems to be used anymore in 2.0 (new metadata format)
780
781 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
782
783         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
784         constructor of abstract class. Fixes #61689.
785
786 2004-10-04  Martin Baulig  <martin@ximian.com>
787
788         * class-internals.h (MonoGenericContainer): New type.
789         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
790         `MonoGenericContainer *generic_container'.
791         (MonoClass): Replaced `gen_params' and `num_gen_params' with
792         `MonoGenericContainer *generic_container'.
793
794         * metadata.c (mono_metadata_load_generic_params): Return a
795         `MonoGenericContainer *' instead of a `MonoGenericParam *';
796         removed the `num' argument.
797
798 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
799
800         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
801         for dynamic images.
802
803         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
804         machine fields.
805
806         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
807
808         * reflection.c: Save pe_kind and machine values into the generated
809         image file.
810
811         * appdomain.c: Bump corlib version number.
812
813         * object-internals.h: Reorganize layout of LocalBuilder.
814
815         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
816         New helper function.
817
818         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
819         created MonoType for dynamic types. Fixes #66180.
820
821 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
822
823         * threadpool.c: the ares hashtable needs a critical section around it.
824         this prevents some nasty segfaults
825
826 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
827
828         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
829         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
830         bug 67324).
831         
832 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
833
834         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
835         
836 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
837
838         * image.c: Always canonicalize image file names, to avoid loading
839         the same assembly twice when referenced using a relative path.
840
841 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
842
843         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
844
845         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
846
847         * marshal.c: Fix warnings.
848
849 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
850
851         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
852         attempting to marshal the delegate_trampoline as the method_addr.
853         This patch has a static hashtable of marshalled delegates so that 
854         we can map delegate_trampoline addresses back to delegates.  This
855         allows a delegate passed to managed code to be passed back into native
856         code.  Fixes #67039
857
858 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
859
860         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
861
862         * reflection.c (method_encode_code): Align method headers properly.
863         Fixes #66025.
864
865 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
866
867         * marshal.c: In the runtime invoke wrapper, reset the abort
868         exception if it is cached. This avoids the automatic rethrowal of 
869         the exception after the catch of the wrapper. Also check for pending
870         interruptions before calling the managed method. This is done using
871         the new method emit_thread_force_interrupt_checkpoint, since the
872         normal checkpoint method is ignored when running the invoke wrapper.
873         * object.c: If the abort exception is rethrown, set the abort_exc
874         field of the thread, so it will be rethrown aftere every catch.
875         * threadpool.c: Only run an interruption checkpoint if what has been
876         requested is a stop of the thread (aborts will be ignored).
877         * threads.c: By default, a thread will now never be interrumped while
878         running the runtime invoke wrapper (this ensures that runtime_invoke
879         will always return to the caller if an exception pointer is provided).
880         There is a new special method mono_thread_force_interruption_checkpoint()
881         to force an interruption checkpoint even if running a protected
882         wrapper, which is used by the same runtime invoke wrapper to do a check
883         at a safe point.
884
885 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
886
887         * object.c, object-internals.h: Implemented mono_release_type_locks,
888         which releases the cctor locks held by a thread.
889         * threads.c, threads.h: In thread_cleanup, release cctor locks held
890         by a thread. Added mono_thread_exit() method to be used to safely stop
891         a thread.
892
893 2004-09-28  Raja R Harinath  <rharinath@novell.com>
894
895         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
896         Move null check before dereference.  Avoid indexing beyond the end
897         of the 'modules' array.
898
899 2004-09-28  Raja R Harinath  <rharinath@novell.com>
900
901         * metadata-internals.h (MonoImage): Add module_count field.
902         * image.c (load_modules): Set image->module_count.
903         (mono_image_load_file_for_image): Use image->module_count.
904         * reflection.c (mono_image_load_module): Append to image->modules array 
905         of dynamic assembly.
906         (mono_module_get_object): Fix loop to actually increment index.
907         Use image->module_count.
908         * assembly.c (mono_assembly_load_references): Use image->module_count.
909         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
910         Likewise.
911
912 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
913
914         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
915         Avoid assert on generic types.
916
917 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
918
919         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
920
921         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
922
923         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
924         function to convert a MarshalSpec structure to its managed counterpart.
925
926         * reflection.c: Fix warnings.
927         
928         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
929         field.
930
931         * icall.c (mono_create_icall_signature): Fix build.
932
933 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
934
935         * icall.c: Add MakePointType icall.
936
937         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
938         warnings.
939
940 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
941
942         * threadpool.c: reuse allocated slots in the queue.
943
944 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
945
946         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
947
948         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
949
950         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
951         previous change.
952
953         * tabledefs.h: Add constants for pinvoke attributes BestFit and
954         ThrowOnUnmappableChar.
955
956         * icall.c (ves_icall_Type_GetPacking): New icall.
957
958 2004-09-24  Martin Baulig  <martin@ximian.com>
959
960         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
961
962 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
963
964         * appdomain.c:
965         (mono_domain_set): allow setting a domain that is being unloaded.
966         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
967         being unloaded.
968
969 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
970
971         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
972         the GetCustomAttributes icall.
973
974 2004-09-23  Martin Baulig  <martin@ximian.com>
975
976         * object-internals.h (MonoReflectionGenericParam): Replaced
977         'has_ctor_constraint', `has_reference_type' and `has_value_type'
978         with `guint32 attrs'.
979
980 2004-09-23  Martin Baulig  <martin@ximian.com>
981
982         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
983
984 2004-09-23  Martin Baulig  <martin@ximian.com>
985
986         * object-internals.h (GenericParameterAttributes): New enum.
987
988 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
989
990         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
991         
992         * class.c (init_events): Fill out event->other field.
993
994         * class.c: Fix warnings.
995
996         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
997
998 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
999
1000         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1001         walk which doesn't supply the IL offset.
1002
1003 2004-09-22  Martin Baulig  <martin@ximian.com>
1004
1005         * reflection.c (mono_reflection_setup_internal_class): If we're
1006         System.ValueType, System.Object or System.Enum, set
1007         `klass->instance_size' and create the vtable.
1008         (mono_reflection_create_internal_class): If we're an enum type,
1009         get the base class from our current corlib.
1010
1011 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1012
1013         * reflection.h (MonoResolveTokenError): New type.
1014
1015         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1016         icall.
1017
1018         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1019
1020 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1021
1022         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1023         Support also calling constructors, but only for already allocated objects.
1024
1025 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1026
1027         * reflection.c (type_get_qualified_name): If the klass is null
1028         return the typename to avoid a NullRefEx.
1029         (encode_cattr_value): Get the qualified name of the boxed type,
1030         not the underlying enumtype.  Fixes #62984.
1031
1032 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1033
1034         * marshal.c: Fix problems with previous checkin.
1035
1036 2004-09-21    <vargaz@freemail.hu>
1037
1038         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1039         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1040
1041         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1042
1043 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1044
1045         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1046         should only return a type for pointers, arrays, and passbyref types.
1047         Fixes bug #63841.
1048
1049 2004-09-21  Martin Baulig  <martin@ximian.com>
1050
1051         * domain.c (mono_debugger_check_runtime_version): New public
1052         function.
1053
1054         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1055
1056 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1057
1058         * reflection.c: Added missing sort to the declarative security 
1059         attributes table. MS implementation stops seeing the attributes if the
1060         token number regress in the table (as shown by ildasm and permview).
1061
1062 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1063
1064         * object-internals.h (MonoReflectionModule): Add 'token' field.
1065         
1066         * reflection.c (mono_reflection_get_token): Add support for Module
1067         and Assembly.
1068         (mono_module_get_object): Set 'token' field.
1069         (mono_module_file_get_object): Set 'token' field.
1070
1071         * icall.c: Add new Assembly and Module icalls.
1072
1073         * appdomain.c: Bump corlib version.
1074
1075 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1076
1077         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1078         tokens of metadata objects.
1079
1080         * reflection.h reflection.c (mono_reflection_get_token): New function
1081         to obtain the token of a metadata object.
1082
1083         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1084
1085 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1086
1087         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1088         
1089         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1090
1091 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1092
1093         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1094         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1095         AssemblyBuilder to access the permissions set in the class lib.
1096         * reflection.c: Added security attributes encoding step in 
1097         mono_image_build_metadata.
1098         * tabledefs.h: Added new security actions defined in 2.0:
1099         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1100
1101 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1102
1103         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1104         macro parameter.
1105
1106 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1107  
1108         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1109           finalized. There where random SIGSEVs at program termination, when
1110           an object being finalized was trying to do a string comparison and
1111           the current culture was already finalized.
1112  
1113 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1114
1115         * threads.c: call thread_cleanup before finishing the thread if we get
1116         there.
1117
1118 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1119
1120         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1121         assemblies from the parent. Fixes #65665.
1122
1123 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1124
1125         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1126         modifiers.
1127
1128 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1129
1130         * reflection.h: add prototype for mono_get_dbnull_object
1131         * reflection.c: add prototypes for get_default_param_value_blobs 
1132         and mono_get_object_from_blob for fussier compilers
1133
1134 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1135  
1136         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1137         false deadlock checks in class initialization.
1138  
1139 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1140
1141         * image.c (mono_image_addref): Fix comment.
1142
1143         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1144         possible.
1145
1146 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1147
1148         * reflection.c (mono_param_get_objects): Modified to return
1149         ParameterInfo.DefaultValue object.
1150
1151         (get_default_param_value_blobs):
1152         (mono_get_object_from_blob):
1153         (mono_get_dbnull_object): New helper routines. 
1154
1155         * object.c (mono_get_constant_value_from_blob): New helper routine
1156         carved out from get_default_field_value ()
1157
1158         * object-internals.h (mono_get_constant_value_from_blob): Added
1159         function declaration.
1160
1161 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1162
1163         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1164         referenced assemblies. Fixes #62135.
1165
1166         * exception.h exception.c (mono_get_exception_file_not_found2): New
1167         helper function.
1168
1169 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1170
1171         * class.h class.c: Add mono_type_get_underlying_type ().
1172
1173 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1174
1175         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1176         Fix GetTypes() to support dynamically created assemblies.
1177
1178 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1179
1180         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1181         
1182         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1183         previous patch.
1184
1185         * reflection.h reflection.c loader.c: Allow dynamic construction of
1186         pinvoke methods. Fixes #65571.
1187         
1188         * reflection.c (mono_reflection_get_type): Revert previous change since
1189         it causes regressions.
1190
1191 2004-09-08  Martin Baulig  <martin@ximian.com>
1192
1193         * class.c (class_compute_field_layout): Don't call
1194         mono_class_layout_fields() for open generic instances.
1195
1196 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1197         * threads.c appdomain.c: fix typo in GC macro
1198
1199 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1200
1201         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1202         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1203
1204 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1205
1206         * image.c (mono_image_close): Applied patch from 
1207         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1208         assembly is loaded multiple times from data.
1209         
1210         * image.c (mono_image_open): Fix warning.
1211
1212 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1213
1214         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1215         once. Fixes #58334.
1216         
1217         * reflection.c (mono_reflection_create_runtime_class): Initialize
1218         klass->nested_classes. Fixes #61224.
1219
1220 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1221
1222         * threads.c: sched_yield() on exit, to allow threads to quit.
1223
1224 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1225
1226         * object.c (mono_unhandled_exception): Remove leftover debug code.
1227
1228 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1229
1230         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1231
1232 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1233
1234         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1235         
1236         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1237
1238 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1239
1240         * marshal.c (emit_marshal_array): Null terminate string arrays.
1241         
1242         * marshal.c (raise_auto_layout_exception): Fix warning.
1243
1244         * reflection.c (mono_param_get_objects): Initialize the default value
1245         with DBNull.Value, not null. Fixes #62123.
1246
1247 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1248
1249         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1250         throw an exception with a cute explanation.
1251
1252 2004-09-06  Dick Porter  <dick@ximian.com>
1253
1254         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1255         Close the new process's thread handle, as we don't use it.  The
1256         handle stays around forever otherwise.
1257
1258 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1259
1260         * object.c (arith_overflow): Fix warning.
1261
1262         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1263         calling conventions in method refs. Fixes #65352.
1264
1265         * reflection.c: Fix warnings.
1266
1267 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1268
1269         * icall.c: Add a new icall for Array.Clear
1270
1271 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1272
1273         * object.c: When allocating an array, we have to throw
1274         an overflow exception if any of the lengths are < 0.
1275
1276 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1277
1278         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1279         properly. Also move implementation of string array marshalling to 
1280         managed code. Fixes #42316.
1281
1282 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1283
1284         * assembly.c: provide more information when loading an assembly fails.
1285
1286 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1287
1288         * filewatcher.c: don't expect the development fam package to be
1289         installed.
1290
1291 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1292
1293         * marshal.c: Make a copy of the signature cookie since it will be
1294         freed by the caller.
1295         
1296         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1297
1298         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1299
1300         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1301         marshal specs.
1302
1303         * marshal.c: More refactoring.
1304         
1305         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1306         smaller functions.
1307
1308 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1309
1310         * object.c: In mono_message_invoke, fill the output parameter array after
1311           calling the managed method (it was done before the call). This fixes
1312           bug #59299.
1313
1314 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1315
1316         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1317         as well.
1318
1319 2004-09-02  Martin Baulig  <martin@ximian.com>
1320
1321         * class.c (mono_class_instance_size): Don't allow generic type
1322         definitions or open generic instances.
1323         (mono_class_array_element_size): If we're a value type, call
1324         mono_class_instance_size() on the original class.
1325
1326         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1327         handle generic instances.
1328
1329         * mono-debug-debugger.c (write_type): Handle generic instances
1330         like classes.
1331
1332 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1333
1334         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
1335         the allocation request fails. Fixes #65089.
1336
1337         * object.c (mono_runtime_free_method): Do not call mono_free_method.
1338         
1339         * object.c (mono_runtime_free_method): New function to free a dynamic
1340         method.
1341
1342         * marshal.c (mono_delegate_free_ftnptr): New function to free the
1343         delegate trampoline.
1344
1345         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
1346         with hasthis as dynamic,
1347
1348         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
1349
1350         * domain.c (mono_jit_info_table_remove): New function to remove an
1351         entry from the jit info table.
1352
1353         * class-internals.h (MonoMethod): Add 'dynamic' field.
1354
1355         * loader.c: Fix warnings.
1356
1357 2004-09-01  Martin Baulig  <martin@ximian.com>
1358
1359         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
1360         instead of mono_debugger_lock() because the latter one is a no-op
1361         unless running in the debugger.
1362
1363 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1364
1365         * class.c (class_compute_field_layout): Classes with auto-layout or
1366         reference fields are not blittable.
1367         
1368 2004-09-01  Dick Porter  <dick@ximian.com>
1369
1370         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
1371         mono_image_get_filename() to get the assembly location.
1372
1373         * icall.c:
1374         * metadata.h: Fix compile warnings
1375
1376 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1377
1378         * class.c (class_compute_field_layout): System.Object is blittable.
1379
1380         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
1381         as in/out. Fixes #59909.
1382
1383 2004-09-01  Martin Baulig  <martin@ximian.com>
1384
1385         * metadata.h (MONO_TYPE_ISREFERENCE): Call
1386         mono_metadata_generic_inst_is_valuetype() if we're a generic
1387         instance to check whether our underlying type is a reference type.
1388
1389 2004-09-01  Martin Baulig  <martin@ximian.com>
1390
1391         * metadata.c (mono_type_size): If we're a generic instance, call
1392         mono_class_value_size() for value types.
1393
1394 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
1395
1396         * marshal.c: Implement more custom marshalling functionality. Fixes
1397         #64915.
1398
1399 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1400
1401         * mono-debug.c, debug-mono-symfile.c: add some locking love.
1402
1403 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
1404
1405         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
1406
1407         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
1408
1409         * icall.c: Fix some warnings.
1410
1411         * threads.c (abort_appdomain_thread): Fix unref errors.
1412         (mono_thread_current): Fix THREAD_DEBUG define.
1413
1414 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
1415
1416         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
1417
1418         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
1419
1420 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
1421
1422         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
1423         string arrays.
1424
1425 2004-08-28  Martin Baulig  <martin@ximian.com>
1426
1427         * metadata.c
1428         (mono_metadata_generic_inst_is_valuetype): New public function.
1429
1430         * metadata.h (MONO_TYPE_ISSTRUCT): Call
1431         mono_metadata_generic_inst_is_valuetype() if we're a generic
1432         instance to check whether our underlying type is a valuetype.
1433
1434 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
1435
1436         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
1437         #63768.
1438
1439 2004-08-25  Martin Baulig  <martin@ximian.com>
1440
1441         * loader.c (mono_get_method_from_token): Abstract methods can also
1442         be generic and thus have type parameters.
1443
1444         * metadata-internals.h
1445         (MonoDynamicImage): Added `GPtrArray *gen_params'.
1446
1447         * reflection.c (mono_image_get_generic_param_info): Don't create a
1448         metadata row, just add an entry to the `gen_params' array.
1449         (build_compressed_metadata): Sort the `gen_params' array and then
1450         actually create the metadata.
1451
1452 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1453
1454         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
1455
1456 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
1457
1458         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
1459
1460 2004-08-24  Martin Baulig  <martin@ximian.com>
1461
1462         * class.cs (mono_class_is_subclass_of): Like an interface, a
1463         generic instance also derives from System.Object.
1464
1465 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
1466
1467         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
1468         custom modifiers to be in any order. Fixes #61990.
1469
1470 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
1471
1472         * object.c: Register mono_object_new_fast icall.
1473         
1474         * object.c (mono_class_get_allocation_ftn): Return to calling
1475         mono_object_new_fast, since it seems faster to compute the object 
1476         size in unmanaged code than passing it as a parameter.
1477
1478         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
1479
1480         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
1481         this function with Boehm as the oom handler, so we don't have to check
1482         the result of GC_malloc.
1483
1484         * object.c: Remove checks for oom.
1485
1486         * object.h object.c (mono_class_get_allocation_ftn): New function to
1487         return the icall which can be used to allocate an instance of a given
1488         class. 
1489
1490         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
1491
1492         * class-internals.h: Add 'enabled' field.
1493
1494 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
1495
1496         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
1497
1498 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
1499         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
1500         value 0x0010.
1501
1502 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
1503
1504         * appdomain.c: use the Tls function for appdomain too,
1505         at Zoltan's request. Actually return in mono_context_get
1506
1507         * appdomain.c, profiler.c, threads.c: use __thread
1508
1509 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
1510
1511         * appdomain.c threads.c: Call GC_CreateThread on windows.
1512
1513         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
1514         multiple libraries since this don't work on windows.
1515
1516 2004-08-18  Martin Baulig  <martin@ximian.com>
1517
1518         * class-internals.h
1519         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
1520         MonoMethodHeader.
1521
1522         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
1523         MonoMethodNormal since we also need it for abstract and interface
1524         methods.
1525
1526         * reflection.c
1527         (build_compressed_metadata): Sort the GenericParam table.
1528         (mono_image_create_token): Added `gboolean create_methodspec'
1529         argument; this is false when generating a MethodImpl token.
1530         (reflection_methodbuilder_to_mono_method): Abstract and interface
1531         methods may also have generic parameters.
1532
1533 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
1534
1535         * appdomain.c: thread local alloc
1536
1537 2004-08-17  Martin Baulig  <martin@ximian.com>
1538
1539         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
1540
1541         * icall.c
1542         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
1543         argument.
1544
1545         * class.c (mono_type_get_full_name): New public function.
1546         (mono_type_get_name): Don't include the type arguments.
1547
1548 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
1549
1550         * Makefile.am: Build static versions of libmetadata and libmonoruntime
1551         for inclusion into the mono executable.
1552
1553 2004-08-16  Martin Baulig  <martin@ximian.com>
1554
1555         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
1556         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
1557
1558 2004-08-14  Martin Baulig  <martin@ximian.com>
1559
1560         * class.c (dup_type): Also copy the `byref' field.
1561
1562 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
1563
1564         * reflection.c (create_dynamic_mono_image): Revert the last change 
1565         since it breaks bootstrap.
1566
1567 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
1568
1569         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
1570
1571         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
1572         not free them with g_free.
1573
1574 2004-08-11  Martin Baulig  <martin@ximian.com>
1575
1576         * reflection.c (mono_reflection_setup_internal_class): Also call
1577         mono_class_setup_mono_type() if we already have a `tb->type.type'.
1578
1579 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
1580
1581         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
1582         called during default (first) AppDomain creation. Keep track of
1583         Evidence when loading assemblies.
1584
1585 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
1586
1587         * opcodes.c, opcodes.h: reduce runtime relocations.
1588
1589 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
1590
1591         * culture-info.h, locales.c: fixes and chages to sue the new
1592         optimized format of the locale data.
1593         * culture-info-tables.h: regenerated.
1594
1595 2004-08-06  Geoff Norton <gnorton@customerdna.com>
1596         
1597         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
1598
1599 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
1600
1601         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
1602         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
1603         * domain-internals.h: icall declaration.
1604         * icall.c: icall registration.
1605         * object-internals.h: New fields in MonoAssembly for CAS.
1606
1607 2004-08-05  Duncan Mak  <duncan@ximian.com>
1608
1609         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
1610         CEE_LDELEM_ANY.
1611
1612 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
1613
1614         * reflection.c: fix to deal with object[] arrays in custom ctors
1615         (bug #62550).
1616
1617 2004-08-05  Martin Baulig  <martin@ximian.com>
1618
1619         * class.c (mono_class_array_element_size): Added support for
1620         generic instances and correctly handle "recursive" types.
1621
1622 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
1623
1624         * assembly.c: Fix warnings.
1625
1626 2004-08-04  Martin Baulig  <martin@ximian.com>
1627
1628         * class.c
1629         (mono_type_get_name_recurse): Added `gboolean include_arity'
1630         argument specifying whether or not we should include the generic
1631         arity in the type name.
1632         (_mono_type_get_name): New static function.
1633         (mono_class_setup_vtable): If we're a generic instance, don't
1634         include the generic arity in the names of explicit method
1635         implementations.        
1636
1637 2004-08-03  Martin Baulig  <martin@ximian.com>
1638
1639         * class.c (mono_type_get_name_recurse): Enclose the generic type
1640         arguments in `<', '>'.
1641
1642 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
1643
1644         * gc.c: make GC warning messages use the trace API, they are just
1645         noise to most of the users.
1646
1647 2004-08-03  Martin Baulig  <martin@ximian.com>
1648
1649         * debug-mono-symfile.c (read_string): Correctly read the string.
1650
1651 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
1652
1653         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
1654         
1655         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
1656         icalls.
1657         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
1658
1659 2004-07-30  Martin Baulig  <martin@ximian.com>
1660
1661         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
1662         Reflect latest symbol writer changes.   
1663
1664 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
1665
1666         * object.c: always create an object if null is passed
1667         to Invoke() where a valuetype is expected.
1668
1669 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
1670
1671         * marshal.c (mono_marshal_init): make managed
1672         signatures match native ones better for 64bits.
1673
1674 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1675
1676         * appdomain.c: hack to build correctly the private bin path on windows.
1677         Fixes bug #61991.
1678
1679 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
1680
1681         * assembly.c: Load mscorlib from the correct framework directory
1682           (mono/<version>/mscorlib.dll).
1683         * appdomain.h: Added prototypes for new functions.
1684         * internals.h: Added some prototypes.
1685         * domain.c: When initializing the runtime, get from the executable and
1686           the configuration files the runtime version that the app supports.
1687           Added support methods for reading app.exe.config. Added list of versions
1688           supported by the JIT. Added two new methods: mono_init_from_assembly,
1689           which initializes the runtime and determines the required version from
1690           the provided exe file, and mono_init_version, which initializes
1691           the runtime using the provided version.
1692         * icall.c: Get machine.config from version-specific directory.
1693         * reflection.c: When generating an image, embed the version number
1694           of the current runtime.
1695
1696 2004-07-28  Dick Porter  <dick@ximian.com>
1697
1698         * socket-io.c
1699         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
1700         returned sockaddr size before creating the remote address object.
1701         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
1702         61608.
1703
1704 2004-07-28  Dick Porter  <dick@ximian.com>
1705
1706         * locales.c (string_invariant_compare_char): Fix invariant char
1707         compares between upper and lower cases.  Fixes bug 61458.
1708
1709 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
1710         
1711         * marshal.c: actually cache stelem.ref wrappers.
1712         
1713 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
1714
1715         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
1716         sections and remove the mono_cli_rva_map () function.
1717
1718 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
1719
1720         * debug-mono-symfile.c: fix one more endianess issue, from a patch
1721         by Geoff Norton (<gnorton@customerdna.com>).
1722
1723 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
1724
1725         * class.c: fix class loads for pointer types (typeof(int) !=
1726         typeof(int*)).
1727
1728 2004-07-27  Martin Baulig  <martin@ximian.com>
1729
1730         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
1731         reading the debugging information from an external ".mdb" file.
1732
1733 2004-07-24  Martin Baulig  <martin@ximian.com>
1734
1735         * reflection.c (mono_image_get_type_info): Only write a class
1736         layout entry if we actually have a size or a packing size.
1737
1738 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
1739
1740         * reflection.c (type_get_fully_qualified_name): 
1741         insert cast to get type checking of ?: with non-gcc compilers
1742
1743 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
1744
1745         * rand.c: use g_getenv for both lookups of
1746         MONO_EGD_SOCKET
1747
1748 2004-07-17  Martin Baulig  <martin@ximian.com>
1749
1750         * reflection.c (mono_reflection_bind_generic_method_parameters):
1751         Set `gmethod->reflection_info'.
1752
1753 2004-07-17  Martin Baulig  <martin@ximian.com>
1754
1755         * class.c (mono_class_create_from_typedef): Insert the newly
1756         created class into the hash table before computing the interfaces
1757         since we could be called recursively.
1758
1759 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
1760
1761         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
1762         function to implement stelem.ref in managed code
1763         * class-internals.h, debug-helpers.c: a new wrapper type
1764         for the above.
1765
1766 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
1767
1768         * gc.c: allow GC handles to work even when no GC is compiled in.
1769         Fix part of bug #61134 (GetAddrOfPinnedObject).
1770
1771 2004-07-13  Peter Williams  <peter@newton.cx>
1772  
1773         * process.c (complete_path): Make sure we don't attempt to execute
1774         directories.
1775  
1776 2004-07-12  Geoff Norton <gnorton@customerdna.com>
1777
1778         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
1779           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
1780           and will add/subtract the hour if needed
1781
1782 2004-07-12  Martin Baulig  <martin@ximian.com>
1783
1784         * reflection.c (mono_field_get_object): If we have
1785         `field->generic_info', take the attributes from
1786         `field->generic_info->generic_type'.    
1787
1788 2004-07-12  Martin Baulig  <martin@ximian.com>
1789
1790         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
1791         This function must be called before initializing the runtime.
1792         (mono_debug_init_1): New function; call this after initializing
1793         the runtime, but before loading the assembly.  It tells the
1794         debugger to load corlib and the builtin types.
1795
1796         * mono-debug-debugger.c: Did some larger changes in the debugging
1797         code; support recursive class declarations, make sure we actually
1798         add all classes.
1799
1800 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1801
1802         * debug-helpers.c: undo my previous patch and fixed the real issue in
1803         ../mini/exceptions-x86.c
1804
1805 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1806
1807         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
1808         when no HOME env. variable was set and a NullRef was thrown in a .cctor
1809         called from other .cctors.
1810
1811 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
1812
1813         * loader.c: Removed the mono_loader_wine_init hack now that we are
1814         doing a managed version of Windows.Forms.
1815
1816 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
1817
1818         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
1819         threadpool.c, threads.c: remove static data from rootset.
1820
1821 2004-07-09  Dick Porter  <dick@ximian.com>
1822
1823         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
1824         Don't do any more processing if the matched length was 0.  It was
1825         increasing the size of the string before.  Fixes bug 61167.
1826
1827 2004-07-09  Dick Porter  <dick@ximian.com>
1828
1829         * socket-io.h:
1830         * socket-io.c
1831         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1832         Add support for SO_PEERCRED if its available.
1833
1834 2004-07-09  Peter Bartok <pbartok@novell.com>
1835         * loader.c: winelib.exe.so error message is now only displayed if
1836         MONO_DEBUG is set. To help us avoid questions when people are trying
1837         out the new Managed.Windows.Forms.
1838
1839 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
1840
1841         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
1842         for isinst and castclass wrappers.
1843
1844         * class-internals.h icall.c: Move registration and lookup of JIT icalls
1845         to libmetadata from the JIT, so they could be used by the marshalling
1846         code and the interpreter.
1847
1848         * marshal.c: Register marshalling related JIT icalls here instead of
1849         in mini.c. Use CEE_MONO_ICALL instead of the family of 
1850         CEE_MONO_PROC<x> opcodes to call marshalling functions.
1851
1852         * metadata.h: Remove unneeded marshalling conversions.
1853
1854         * opcodes.c: Update for new opcodes.
1855         
1856 2004-07-08  Martin Baulig  <martin@ximian.com>
1857
1858         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
1859         (mono_debug_get_domain_data): Make this function static.
1860
1861 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
1862
1863         * gc.c, object.h: add nice GC handle API for embedders.
1864
1865 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
1866
1867         * reflection.c: more changes for the new api
1868
1869         * object.c: When we reflect on a field w/ a constant value, it
1870         will not have a memory location, so we must access metadata. Also,
1871         allow easier reading of strings so that we can read them from
1872         the constant data.
1873
1874         * class.c (mono_class_layout_fields): no need for literal fields here.
1875
1876         * class-internals.h: api changes for const fields
1877
1878         * icall.c (ves_icall_get_enum_info): use new apis for const fields
1879
1880 2004-07-06  Martin Baulig  <martin@ximian.com>
1881
1882         * mono-debug.h: Increment version number to 44.
1883
1884         * mono-debug.c (mono_debug_add_wrapper): The second argument is
1885         now a gpointer, rewrote this whole method.
1886
1887         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
1888         function.  Add information about the wrapper in a new "misc table".
1889
1890         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
1891         for the new misc table.
1892
1893 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
1894
1895         * metadata-internals.h image.c: Add a cache for helper signatures.
1896
1897         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
1898
1899 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
1900
1901         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
1902         delegates from a delegate. Fixes #61033.
1903         
1904         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
1905         marshalling of stringbuilder arrays. Fixes #59900.
1906
1907 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
1908
1909         * icall.c: Add EnumBuilder:setup_enum_type icall.
1910
1911 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
1912
1913         * icall.c: Added a new icall for the property version of
1914         OffsetOfStringData.
1915
1916 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
1917
1918         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
1919         it has a constant size across platforms.
1920
1921         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
1922         stack trace.
1923
1924 2004-06-29  Martin Baulig  <martin@ximian.com>
1925
1926         * mono-debug.c (mono_debug_add_method): Protect the whole function
1927         in mono_debugger_lock(), not just parts of it.
1928
1929 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1930
1931         * reflection.c: make sure padding bytes in heaps are zeroed.
1932
1933 2004-06-24  David Waite  <mass@akuma.org>
1934
1935         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
1936         image.c, loader.c, locales.c, marshal.c, metadata.c,
1937         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
1938         string-icalls.c, threads.c: change to C90-style comments from C99 /
1939         C++ -style
1940
1941 2004-06-24  Dick Porter  <dick@ximian.com>
1942
1943         * threads.c
1944         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
1945         return createdNew.  Fixes bug 60412.
1946
1947         * threads-types.h: 
1948         * icall.c: Add createdNew parameter to CreateMutex icall
1949
1950 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
1951
1952         * reflection.c, object-internals.h: save default value in params.
1953
1954 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1955
1956         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
1957         no need to build a new path combining that with the application base.
1958         Fixes bug #60442.
1959
1960 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
1961
1962         * reflection.c: fixed minor standard compliance issues.
1963
1964 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
1965
1966         * reflection.c: fixed issue with encoding some custom attributes
1967         (arrays in properties and fields, bug #60411).
1968
1969 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1970
1971         * reflection.c: fix start address when copying the public key token.
1972
1973 2004-06-23  Martin Baulig  <martin@ximian.com>
1974
1975         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
1976         the `exc' object in a static object to put it into the GC's root set.
1977
1978 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
1979
1980         * reflection.c: make mono_reflection_setup_internal_class ()
1981         callable a second time to setup a new parent class.
1982
1983 2004-06-23  Dick Porter  <dick@ximian.com>
1984
1985         * threads.c: Check for WAIT_IO_COMPLETION return values.
1986
1987 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
1988
1989         * appdomain.c: Removed the g_free on the public key token. Now copy 
1990         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
1991         * assembly.c: Added public key token string value when loading 
1992         assemblies. Fix bug #60439.
1993         * icall.c: Added missing informations (like public key) in 
1994         GetReferencedAssemblies. Fix #60519.
1995         * image.h: Changed definition for public key token from const char*
1996         public_tok_value to guchar public_key_token [17];
1997         * reflection.c: Updated for changes to public key token.
1998
1999 2004-06-22  Lluis Sanchez Gual
2000
2001         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2002         for the field in base classes.
2003
2004 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2005
2006         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2007         mark headers as not supported, they are installed only for use by the
2008         debugger.
2009
2010 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2011
2012         * *.c, *.h: avoid namespace pollution in public headers.
2013
2014 2004-06-21  Martin Baulig  <martin@ximian.com>
2015
2016         * exception.c (mono_get_exception_security): It's in
2017         "System.Security", not in "System".
2018
2019         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2020         the exception classes.
2021
2022 2004-06-21  Martin Baulig  <martin@ximian.com>
2023
2024         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2025         Protect the exception object from being finalized.
2026
2027 2004-06-21  Martin Baulig  <martin@ximian.com>
2028
2029         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2030         public function.
2031
2032 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2033
2034         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2035         if it was not loaded before. Fix parts of #60439.
2036
2037 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2038
2039         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2040         code that was broken since Ben's change: wrappers are now
2041         dependent on the method signature only again.
2042
2043 2004-06-21  Martin Baulig  <martin@ximian.com>
2044
2045         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2046         added interface support.
2047
2048 2004-06-21  Martin Baulig  <martin@ximian.com>
2049
2050         * class.c (mono_vtable_get_static_field_data): New public method.
2051
2052 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2053
2054         * filewatcher.c : Windows build fix to be compliant with API changes.
2055
2056 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2057
2058         * class.h, class.c: more accessors.
2059         * metadata.h, metadata.c: prepare for hiding MonoType and
2060         MonoMethodSignature: people should use the accessors from now on
2061         outside of the tree.
2062
2063 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2064
2065         * *.c, *.h: more API cleanups.
2066
2067 2004-06-18  Jackson Harper  <jackson@ximian.com>
2068
2069         * assembly.c: Trace loading assemblies.
2070         * loader.c: Trace loading native libraries.
2071         * mono-config.c: Trace loading config files.
2072         
2073 2004-06-18  Dick Porter  <dick@ximian.com>
2074
2075         * locales.c: Tell ICU the lengths of strings, it can cope with
2076         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2077
2078 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2079
2080         * image.c: swapped name/filename;
2081
2082 2004-06-18  Martin Baulig  <martin@ximian.com>
2083
2084         * mono-debug-debugger.c (write_class): Write the parent class at
2085         the end of the header.
2086
2087 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2088
2089         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2090
2091 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2092
2093         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2094         (bundle_obj): New conditional define.
2095         (BUILT_SOURCES): Remove.
2096         ($(bundle_srcs)): Make parallel-make safe.
2097         (libmonoruntime_la_LIBADD): Make unconditional.
2098         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2099         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2100
2101 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2102
2103         * culture-info-tables.h: It was inconsistent with the latest
2104           supp info files.
2105
2106 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2107
2108         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2109         be loaded.
2110
2111         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2112         with gcc 2.95.
2113
2114 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2115
2116         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2117         cleaned up public header threads.h.
2118
2119 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2120
2121         * Makefile.am, *.c, *.h: more API cleanups.
2122
2123 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2124
2125         * Makefile.am: removed monosn from compilation.
2126         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2127         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2128         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2129         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2130         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2131         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2132
2133 2004-06-15  Jackson Harper  <jackson@ximian.com>
2134
2135         * assembly.c: Make locales lower case when searching the GAC for
2136         assemblies. gacutil will always make locales lowercase when
2137         installing so this effectively makes them case insensitive.
2138         
2139 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2140
2141         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2142         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2143           parameter which allows to choose whether the wait can be interrupted or 
2144           not. Also added the method mono_monitor_enter(), which locks the monitor
2145           using an infinite wait and without allowing interruption.
2146           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2147           interrupted.
2148         * object.h: Added new fields in MonoThread. suspend_event holds the event
2149           used to susped/resume the thread. synch_lock is the lock object to use for
2150           modifying the thread state.
2151         * threads.c: Use the new synch_lock object for locking, instead of "this",
2152           which can generate deadlocks.
2153           Moved thread state change in Thread.Sleep and Thread.Join from managed
2154           to unmanaged code. This avoids a deadlock when the thread was suspended
2155           just after acquiring the thread lock.
2156           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2157           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2158           which is not fully implemented in the io-layer.
2159         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2160
2161 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2162
2163         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2164         threads-types.h: more API cleanups.
2165
2166 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2167
2168         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2169         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2170         threadpool.c, threads.c: first pass at the exported API cleanup.
2171
2172 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2173
2174         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2175
2176 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2177
2178         * icall.c: added internalGetHome.
2179
2180 2004-06-14  Dick Porter  <dick@ximian.com>
2181
2182         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2183         possible to return successfully when '.' or '..' were the only
2184         entries in a directory, but were skipped.  The MonoIOStat was not
2185         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2186         Fixes bug 59574.
2187
2188 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2189
2190         * reflection.c: make binaries run on .Net 1.1 by default.
2191
2192 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2193
2194         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2195
2196 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2197
2198         * marshal.c: keep track of struct size with explicit layout
2199         (bug #59979).
2200
2201 2004-06-12  Martin Baulig  <martin@ximian.com>
2202
2203         * mono-debug-debugger.c: Comment out a debugging g_message().
2204
2205 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2206
2207         * reflection.c, reflection.h: do not free custom attrs that are cached.
2208         * icall.c: use braces to make code clearer.
2209
2210 2004-06-11  Martin Baulig  <martin@ximian.com>
2211
2212         * class.h (MonoInflatedField): New type.
2213         (MonoClassField): Replaced `MonoType *generic_type' with
2214         `MonoInflatedField *generic_info'.
2215
2216         * icall.c
2217         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2218
2219 2004-06-11  Martin Baulig  <martin@ximian.com>
2220
2221         * reflection.c (mono_image_create_method_token): Correctly encode
2222         varargs methods.
2223
2224 2004-06-11  Martin Baulig  <martin@ximian.com>
2225
2226         * metadata.c (mono_metadata_parse_method_signature): When parsing
2227         a MethodDef which has VarArgs, also set sentinelpos if we don't
2228         have any parameters.
2229
2230 2004-06-11  Martin Baulig  <martin@ximian.com>
2231
2232         * verify.c (mono_method_verify): In CEE_CALL, use
2233         mono_method_get_signature() to get the method's signature, unless
2234         we're a PInvoke method.
2235
2236 2004-06-10  Jackson Harper  <jackson@ximian.com>
2237
2238         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2239         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2240         logical name as the supplied path is just a prefix to the gac not
2241         the direct path to it.
2242         
2243 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2244
2245         * reflection.c: make the token for a created method match
2246         the token of the MethodBuilder it was created from
2247         (IKVM requires this behaviour now).
2248
2249 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2250
2251         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2252         reflection.c, socket-io.c: leak fixes.
2253
2254 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2255
2256         * icall.c: handle sentinel pos in vararg methods in position different
2257         from 0.
2258
2259 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2260
2261         * culture-info-tables.h: freshly generated.
2262
2263 2004-06-09  Martin Baulig  <martin@ximian.com>
2264
2265         * loader.c (mono_get_method_constrained): Call `mono_class_init
2266         (constrained_class)'.   
2267
2268 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2269
2270         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2271         any methods. Fixes #59629.
2272
2273 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2274
2275         * culture-info-tables.h: reflecting locale-builder updates.
2276
2277 2004-06-08  Dick Porter  <dick@ximian.com>
2278
2279         * object.h:
2280         * locales.c: Fixed compile warnings, including a real bug in
2281         CompareInfo_internal_compare.
2282         
2283 2004-06-08  Dick Porter  <dick@ximian.com>
2284
2285         * locales.c
2286         (ves_icall_System_Globalization_CompareInfo_internal_index):
2287         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2288         Double-check the resuls of usearches, because ICU currently
2289         ignores most of the collator settings here.  Fixes bug 59720.
2290         
2291 2004-06-08  Dick Porter  <dick@ximian.com>
2292
2293         * locales.c
2294         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2295         Fix memory leak and segfault-causing typo.  No idea how this one
2296         lasted so long without being noticed.
2297
2298 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2299
2300         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2301         any methods. Fixes #59629.
2302
2303 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2304
2305         * assembly.c:
2306         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2307         own the critical section before). Removed dead code (that's done
2308         in the preload hook).
2309
2310         (mono_assembly_load_with_partial_name): call the preload hook.
2311
2312 2004-06-08  Martin Baulig  <martin@ximian.com>
2313
2314         * metadata.c (mono_metadata_signature_alloc): Default
2315         `sentinelpos' to -1.
2316
2317         * reflection.c (mono_image_get_array_token): Likewise.
2318
2319 2004-06-08  Martin Baulig  <martin@ximian.com>
2320
2321         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2322
2323         * metadata.c (mono_metadata_parse_method_signature): When parsing
2324         a MethodDef which has VarArgs, set sentinelpos.
2325
2326         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2327         `gint16' since we're using -1 for non-varargs methods.
2328
2329         * reflection.c
2330         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
2331         (method_encode_signature): Added varargs support.
2332         (method_builder_encode_signature): Likewise.
2333         (mono_image_get_varargs_method_token): New static method.
2334         (mono_image_create_method_token): New public method; this is
2335         called via an icall instead of mono_image_create_token() when
2336         calling a varargs method.       
2337
2338 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
2339
2340         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
2341
2342 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2343
2344         * culture-info-tables.h : Reflecting the latest locale-builder that
2345           fixed empty array representation ({} to {0}).
2346
2347 2004-06-07  Jackson Harper  <jackson@ximian.com>
2348
2349         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
2350         looking up extra gac paths. This allows MONO_GAC_PATH to act
2351         exactly like a prefix.
2352         
2353 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2354
2355         * reflection.c (mono_reflection_type_from_name): Make a copy of the
2356         type name before modifying it. Fixes #59405.
2357
2358 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2359
2360         * culture-info.h: added fields for "all datetime patterns".
2361         * locales.c: (  ves_icall_System_Globalization_CultureInfo
2362           _construct_datetime_format ()): fill xxx_patterns fields.
2363         * object.h: added fields for "all datetime patterns" to
2364           MonoDateTimeFormatInfo.
2365         * culture-info-tables.h: reflecting locale-builder updates.
2366
2367 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2368
2369         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
2370         the event has no add and remove methods. Fixes #59629.
2371
2372 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
2373
2374         * object.c: Fixed possible integer overflow when allocating large
2375         strings.
2376
2377 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2378
2379         * culture-info-tables.h: reflecting locale-builder updates.
2380
2381 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2382
2383         * culture-info-tables.h: reflecting locale-builder updates.
2384
2385 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
2386
2387         * culture-info-tables.h: reflecting locale-builder updates.
2388
2389 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
2390
2391         * threads.c: Made Thread.Sleep abortable.
2392
2393 2004-06-02  Martin Baulig  <martin@ximian.com>
2394
2395         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
2396
2397         * debug-mono-symfile.h: Bumped symbol file version number to 37.
2398
2399 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
2400
2401         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
2402
2403 2004-05-30  Jackson Harper  <jackson@ximian.com>
2404
2405         * reflection.c: Do not hardcode assembly versions or public key
2406         tokens anymore. All of this except the corlib section was dead
2407         code anyways.
2408         
2409 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
2410
2411         * object.c (mono_runtime_invoke_array): Automatically create boxed
2412         objects for byref valuetypes if needed. Fixes #59300.
2413         
2414         * object.c (mono_method_return_message_restore): Handle 
2415         MONO_TYPE_OBJECT as well.
2416
2417 2004-05-28  Jackson Harper  <jackson@ximian.com>
2418
2419         * reflection.c: The modified type encoding was causing build
2420         problems. Reverted for now.
2421         
2422 2004-05-28  Jackson Harper  <jackson@ximian.com>
2423
2424         * reflection.c/h: Take an assembly ref so that we dont create
2425         fully qualified names when encoding types in the same assembly as
2426         the custom attribute being emitted.
2427         * appdomain.c: Increment version number.
2428         
2429 2004-05-26  Duncan Mak  <duncan@ximian.com>
2430
2431         * icall.c
2432         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
2433         Set the full version number (major, minor, build, revision).
2434
2435 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
2436
2437         * marshal.c (emit_struct_conv): increment src/dst after blit
2438         (mono_marshal_get_managed_wrapper,
2439         mono_marshal_get_native_wrapper): make sure we have marshalling
2440         info before marshalling params (info computation affects
2441         blittable)
2442
2443         * class.c (class_compute_field_layout): correctly deal with
2444         blittable
2445         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
2446         value types (as per what windows dows by default)
2447         (mono_class_setup_mono_type): System.ValueType is blittable
2448         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
2449         blittable
2450
2451         * marshal.c (mono_marshal_load_type_info): flag types  as
2452         non-blittable if the native layout doesn't match the managed
2453         layout
2454
2455 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2456
2457         * appdomain.c: don't add stuff in the private search path that is
2458         above the application base. If application base is not set, there's
2459         no private search path.
2460
2461 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
2462
2463         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
2464         byref struct arguments in native->managed marshalling.
2465
2466 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
2467
2468         * marshal.c (mono_marshal_get_runtime_invoke): correctly
2469         cache methods using signature (special case for methods
2470         that are value type or string class)
2471         
2472         * image.c (mono_image_close): clean up allocated GSList's
2473         in runtime_invoke_cache.
2474
2475 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2476
2477         * mono-config.c: set the correct path for mono_cfg_dir on windows when
2478         there's no MONO_CFG_DIR environment variable defined.
2479
2480 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2481
2482         * threads.c: windows version must be >= 0x0500 to include OpenThread.
2483
2484 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
2485
2486         * threadpool.c: Really wait for 500ms after the async call, even if the wait
2487           is interrumped.
2488         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
2489           before waiting for it, and call CloseHandle after the wait to unref it.
2490           This will make sure that handles are not disposed too early.
2491
2492 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2493
2494         * appdomain.c:
2495         * appdomain.h:
2496         * icall.c: removed
2497         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
2498         needed now.
2499
2500         * object.c: se the application_base only for the domain that runs
2501         Main. Fixes bug #59216,
2502
2503 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2504
2505         * appdomain.c:
2506         * object.c: only the domain in which Main is run have
2507         SetupInformation.ConfigurationFile set, so moved a few lines from
2508         appdomain.c to object.c.
2509
2510 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2511
2512         * appdomain.c: we tried to load [name].(dll|exe), but according
2513         to bug #57710, we must also try [culture]/[name].(dll|exe) and
2514         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
2515         There's a test case attached to bug #58922.
2516
2517 2004-05-27  Dick Porter  <dick@ximian.com>
2518
2519         * icall.c:
2520         * file-io.c: Implemented icalls for locking and unlocking regions
2521         in a file.
2522         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
2523         FALSE on error (fixes both compiler warning and real bug.)
2524
2525 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
2526
2527         * culture-info-tables.h: reflecting locale-builder updates.
2528
2529           (Added missing ChangeLog entry for 05/26)
2530
2531 2004-05-27  Jackson Harper  <jackson@ximian.com>
2532
2533         * locales.c: Fix some cut and paste errors.
2534         
2535 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2536
2537         * mono-config.c: set the correct path for config. directory on windows.
2538
2539 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
2540
2541         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
2542           on win32.
2543
2544 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
2545
2546         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
2547         from pinvoke functions.
2548         
2549         * marshal.c (mono_ftnptr_to_delegate): Implement this.
2550
2551 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
2552
2553         * culture-info-tables.h: reflecting locale-builder updates.
2554
2555 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
2556
2557         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
2558         #59086.
2559
2560 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
2561
2562         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
2563         * icall.c: Modified icalls for RNG.
2564         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
2565         Windows (CryptoAPI).
2566
2567 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
2568
2569         * locales.c: Fix build.
2570
2571 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
2572
2573         * culture-info-tables.h: reflecting locale-builder updates.
2574
2575 2004-05-25  Jackson Harper  <jackson@ximian.com>
2576
2577         * locales.c: When creating the current culture use the $LANGs
2578         specific culture. So DateTimeFormat and NumberFormat entries are created.
2579         
2580 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
2581
2582         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
2583         a char array as parameter.
2584
2585 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
2586
2587         * image.c: In mono_image_open(), always use an absolute path name to
2588           look for already loaded images.
2589
2590 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
2591
2592         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
2593         missing in the windows build (like older cygwin include files).
2594
2595 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
2596
2597         * icall.c: Fixed check for possible integer overflow in Buffer_
2598         BlockCopy icall. Replaced comments style // by /* */.
2599
2600 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
2601
2602         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
2603         
2604         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
2605         check after MONO_VTADDR. Fixes pinvoke2.exe.
2606
2607         * marshal.h marshal.c metadata.h: Add beginnings of support for
2608         ftnptr -> delegate marshalling.
2609
2610 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
2611
2612         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
2613         * threads.c: Fix warnings.
2614
2615 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
2616
2617         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
2618         * icall.c: Registered icalls for Suspend and Resume.
2619         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
2620           Thread.Abort.
2621         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
2622         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
2623         * process.c: Use WaitForSingleObjectEx.
2624         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
2625           checkpoints.
2626         * threads.c, threads.h: Make use of new Ex wait methods. Improved
2627           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
2628           for Suspend and Resume. Added new mono_thread_stop, used for stoping
2629           background threads. Added basic support for Abort in Windows.
2630           Start new threads using a managed delegate invoke wrapper. This wrapper
2631           has an interruption checkpoint that is needed since an interruption
2632           can be requested before the thread leaves the unmanaged code that starts 
2633           the thread.
2634         * marshal.c: Added interruption checkpoint after every native call, and
2635           also before managed calls for wrappers called from unmanaged code to
2636           go into managed code.
2637         * object.h: Added new field in MonoThread to keep track of interruption
2638           requests.
2639
2640 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
2641
2642         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
2643         calls.
2644
2645 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2646
2647         * appdomain.c:
2648         * assembly.c:
2649         * gc.c:
2650         * locales.c:
2651         * mono-config.c:
2652         * rand.c: getenv -> g_getenv (windows!)
2653
2654         * process.c: complete_path is also used on non-windows platforms.
2655
2656 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2657
2658         * icall.c: new signature for Process_Start.
2659
2660         * process.[ch]: new signature for Process_Start. If we're on windows
2661         and UseShellExecute is false, we have to search for the program by
2662         ourselves if we don't get a full path.
2663
2664 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
2665
2666         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
2667         marshalling and call CleanUpNativeData if needed. Fixes #58646.
2668
2669 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2670
2671         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
2672         Fixes bug #58373.
2673
2674 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2675
2676         * process.c: use double quotes to quote program name and arguments on
2677         windows. Fixes bug #58575.
2678
2679 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2680
2681         * file-io.c: don't return "." and ".." when using windows Find*File.
2682
2683 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
2684
2685         * marshal.c: Don't pass wrappers to message init because method 
2686         addressed used to lookup metadata. part of remoting[2|3] fix.
2687
2688 2004-05-15  Jackson Harper  <jackson@ximian.com>
2689
2690         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
2691         path is essentially the same as MONO_PATH except that it points to
2692         GACs instead of lib directories.
2693         * loader.h: The user gac is gone so we dont need function to
2694         enable/disable it.
2695         * mono-config.c: user gac option is now gone.
2696         
2697 2004-05-15  Jackson Harper  <jackson@ximian.com>
2698
2699         * culture-info.h: Make defines more consistent, add calendar data
2700         to the culture info table.
2701         * culture-info-tables.h: Add basic calendar data. Basically
2702         everyone gets default gregorian until all the data is
2703         updated.
2704         * locales.c: Use the new consistent defines. Set calendar data for
2705         culture info objects.
2706         * object.h: add a field for calendar data to CultureInfo
2707         
2708 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
2709
2710         * image.c: image->runtime_invoke_cache is keyed on signatures now.
2711         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
2712         a signature.
2713         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
2714         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
2715         an extra param that is the pointer of the method to invoke. The IL for
2716         the invoke method is no longer specific to the method, but to the
2717         signature of the method. Thus, we can share the same code for multiple
2718         methods. This reduces the number of methods that have to be compiled.
2719
2720 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
2721
2722         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
2723
2724         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2725
2726         * icall.c: Optimize Buffer.BlockCopy.
2727
2728 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2729
2730         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
2731         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
2732         quote). Changed them to "MMMM yyyy".
2733
2734 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
2735
2736         * rand.c
2737         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
2738
2739 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
2740
2741         * reflection.h: Updated after changes to managed structures.
2742
2743         * appdomain.c: Bump corlib version.
2744
2745 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2746
2747         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
2748         windows.
2749
2750 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2751
2752         * Makefile.am: link to ../os/libmonoos.la on windows.
2753
2754         * assembly.c:
2755                 -If MONO_DEBUG, warn about non-existing directories in
2756                 MONO_PATH.
2757                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
2758                 compile time variable.
2759                 -Removed init_default_path and call mono_set_rootdir from
2760                 libmonoos.a instead (windows only).
2761
2762         * assembly.h: declare mono_assembly_getrootdir().
2763
2764         * domain.c:
2765         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
2766
2767         * loader.c: s/getenv/g_getenv/
2768
2769 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
2770
2771         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
2772
2773         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
2774
2775         * metadata.h: Add new marshalling conversions.
2776
2777         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
2778         function.
2779
2780         * reflection.c (mono_reflection_get_type): Lookup the type in all
2781         modules of a multi-module assembly. Fixes #58291.
2782
2783 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
2784
2785         * threads.c: Before aborting a background, set the StopRequested
2786         state.  This avoids throwing the Abort exception.
2787         In mono_thread_manage, don't continue with the shutdown until all
2788         aborted threads have actually stopped.
2789
2790 2004-05-10  Jackson Harper  <jackson@ximian.com>
2791
2792         * locales.c: Remove the modifier from culture names.
2793         
2794 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2795
2796         * Makefile.am: monosn is not installed any more. It has been deprecated
2797         in favor of sn.
2798
2799 2004-05-07  Jackson Harper  <jackson@ximian.com>
2800
2801         * locales.c
2802         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
2803         Fix array construction, add bailout if the length is 0.
2804
2805 2004-05-07  Dick Porter  <dick@ximian.com>
2806
2807         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
2808         machine doesn't have a DNS entry.  Patch by Urs Muff
2809         (umuff@quark.com), fixes bug 57928.
2810
2811 2004-05-06  Jackson Harper  <jackson@ximian.com>
2812
2813         * reflection.c: Handle null PublicTokens properly. alloc mem for
2814         assembly names culture so we dont crash when freeing it.
2815         
2816 2004-05-06  Jackson Harper  <jackson@ximian.com>
2817
2818         * assembly.c: Check the usergac when loading with partial names.
2819         
2820 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
2821
2822         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
2823         does nothing for now (not required for Linux/Windows) but the class
2824         library can call it (and a newer or modified runtime could need it).
2825         * icall.c: Registred icall.
2826
2827 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2828
2829         * loader.c: prints a message on module loading error we set MONO_DEBUG
2830         environment variable.
2831
2832 2004-05-05  Jackson Harper  <jackson@ximian.com>
2833
2834         * appdomain.c: Handle PublicKeyToken=null properly.
2835         
2836 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
2837
2838         * environment.c|h: Added icall ves_icall_System_Environment_
2839         GetOSVersionString to get the current OS version as a string.
2840         * icall.c: Registred icall.
2841
2842 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
2843
2844         * object.c: in mono_object_get_virtual_method(), take into account that
2845         non-virtual methods don't have a slot in the vtable. Check needed when
2846         the object is a proxy.
2847
2848 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
2849
2850         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
2851         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
2852
2853         * object.c (mono_class_compute_gc_descriptor): Fix warning.
2854
2855         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
2856         passed when a valuetype is expected.
2857
2858         * object.c (mono_unhandled_exception): Only set the exit code if the
2859         exception happens in the main thread. Fixes thread5.exe.
2860
2861         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
2862         invalid names. Fixes #58047.
2863
2864 2004-05-03  Jackson Harper  <jackson@ximian.com>
2865
2866         * assembly.c: This line was committed accidently and is unneeded.
2867         
2868 2004-05-03  Jackson Harper  <jackson@ximian.com>
2869
2870         * icall.c: Add new icall for Assembly::LoadWithPartialName
2871         * assembly.c/.h: new function that probes the GAC to load partial
2872         assembly names by Paolo Molaro.
2873         
2874 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2875
2876         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
2877         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
2878         (type_get_fully_qualified_name): Added PublicKeyToken when building a
2879         full type name.
2880
2881 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2882
2883         * appdomain.c: fixed check for 'neutral' culture and removed warning.
2884         * reflection.c: fix bug when parsing a full type name and Version is not
2885         the last thing in the string.
2886
2887 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
2888
2889         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
2890         crashes when it is freed.
2891
2892 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2893
2894         * assembly.c: print the compat warning to stderr.
2895
2896 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
2897
2898         * assembly.c (mono_assembly_load_references): Add a compatibility
2899         hack to run old applications that might be still referencing the
2900         3300-based assemblies, only do this for System.xxx.
2901
2902 2004-05-01  Jackson Harper  <jackson@ximian.com>
2903
2904         * appdomain.c: If the culture is neutral we set it to "".
2905         
2906 2004-04-29  Jackson Harper  <jackson@ximian.com>
2907
2908         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
2909
2910 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2911  
2912         * string-icalls.c: added low overhead function for copying chars
2913         * icall.c: added needed icall for the above function
2914  
2915 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2916
2917         * icall.c: fix return value of get_global_assembly_cache.  Implemented
2918         Environment.GetLogicalDrives.
2919
2920 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
2921
2922         * rand.c: try and talk to egd or prngd
2923         for random bytes if opening devices fail.
2924
2925 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
2926
2927         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
2928         alignment for the type using the native alignment of its members 
2929         instead of using klass->min_align.
2930
2931         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
2932
2933 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2934
2935         * file-io.c:
2936         * socket-io.c: added check for sys/aio.h.
2937
2938 2004-04-28  Dick Porter  <dick@ximian.com>
2939
2940         * threads.c: Don't abort a thread thats already aborting, when
2941         terminating everything.
2942
2943 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2944
2945         * icall.c: added 2 new async calls for Socket.
2946
2947         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
2948         IO on *nix systems.
2949
2950         * threadpool.c: removed unused variable.
2951
2952 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
2953
2954         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
2955
2956 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2957
2958         * locales.c: put back string_invariant_tolower () and
2959         string_invariant_toupper ().
2960
2961 2004-04-26 David Waite <mass@akuma.org>
2962
2963         * file-io.h:
2964         * socket-io.h:
2965         * threads.h:
2966         * unicode.h: remove comma from end of enumeration declarations
2967
2968 2004-04-26 David Waite <mass@akuma.org>
2969
2970         * debug-mono-symfile.h:
2971         * decimal.c:
2972         * mono_debug.h:
2973         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
2974
2975
2976 2004-04-26  Jackson Harper  <jackson@ximian.com>
2977
2978         * appdomain.c: Increment version number.
2979         
2980 2004-04-26  Jackson Harper  <jackson@ximian.com>
2981
2982         * appdomain.c: Set assembly references public token value when
2983         PublicKeyToken is specified, not the hash_value. Free public token
2984         values when free assembly name data. Previously the public key
2985         token was hex decoded, however we are using hex encoded public key
2986         tokens, so this is not neccasary.
2987         * assembly.c: Lookup assemblies in the gac if their public token
2988         value is set. Add function to allow enabling user gac
2989         lookups. Specify whether or not the assembly was loaded from the
2990         GAC. Compare full assembly names when checking the cache for
2991         assemblies (Temporarily disabled see comment in code). Remove
2992         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
2993         specifies trace-loader they get extra info to stdout on the
2994         loading of assemblies.
2995         * image.h: Add a field for an assembly references public token
2996         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
2997         whether an assembly has been loaded from the GAC.
2998         * image.c: Remove a corlib -> mscorlib name mapping.
2999         * loader.h: Add function to enable/disable the user gac.
3000         * mono-config.c: Check if the usergac is enabled in the config
3001         file.
3002         * icall.c: New icall to determine whether or not an assembly has
3003         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3004         * tabldefs.h: Add constant for assemblyref flag that specifies a
3005         full public key is used instead of a public token.
3006         * reflection.c: Remove mscorlib -> corlib mappings. Set
3007         PublicTokenValue instead of hash value. This value is a hex
3008         string so it does not need to be expanded.
3009
3010 2004-04-26  Martin Baulig  <martin@ximian.com>
3011
3012         * mono-debug-debugger.c (mono_debugger_initialize): Set
3013         `mono_debugger_initialized' before calling mono_debug_lock().
3014
3015 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3016
3017         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3018           InternalToUpper/InternalToLower.
3019         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3020           removed invariant culture shortcut.  This is now done in managed code.
3021         * locales.c: (string_invariant_toupper/tolower) removed.
3022
3023 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3024
3025         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3026         Added Poll internal call.
3027
3028         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3029         call for Poll. Select was too heavy for polling a single socket.
3030
3031         * threadpool.[ch]: added mono_threadpool_cleanup.
3032         * threads.c: use it. Don't use Thread_Abort on windows.
3033
3034 2004-04-23  Martin Baulig  <martin@ximian.com>
3035
3036         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3037
3038 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3039
3040         * icall.c: Registred new icalls for key pair protection and added an
3041         icall for Environment.GetFolderPath on Windows.
3042         * security.c|h: Added new icalls for key pair protection.
3043
3044 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3045
3046         * socket-io.c: don't display the non-supported family warning for known
3047         families. Now this is not displayed on windows when checking support
3048         for IPv4/IPv6.
3049
3050 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3051
3052         * class.c: don't display the layout warning for static fields.
3053
3054 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3055
3056         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3057         * locales.c, locales.h: Added new icalls for culture-specific
3058         Char.ToLower and Char.ToUpper.
3059
3060 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3061
3062         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3063         by David Waite.
3064
3065 2004-04-20  Martin Baulig  <martin@ximian.com>
3066
3067         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3068         of the type name before passing it to mono_reflection_type_from_name().
3069
3070 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3071
3072         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3073         encodings here. Fixes #56965.
3074
3075 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3076
3077         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3078         fix test on strstr result not that I can see anything that
3079         relies on the result.
3080
3081 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3082
3083         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3084         Fixes #57081.
3085
3086         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3087
3088         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3089         function to determine which marshalling to use for strings. Fixes
3090         #56965.
3091
3092         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3093
3094         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3095
3096 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3097
3098         * icall.c: #include mono-config.h
3099
3100 2004-04-15  Jackson Harper  <jackson@ximian.com>
3101
3102         * culture-info-tables.h: Fix date formats for en-US culture.
3103         
3104 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3105
3106         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3107         ThreadPool.SetMinThreads.
3108         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3109         ThreadPool.SetMinThreads.
3110
3111 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3112
3113         * mono-config.c: also load the .config file in the directory
3114         where the assembly was found.
3115
3116 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3117
3118         * assembly.c: load per-assembly config files.
3119         * icall.c: decrapified code to get the config dir and moved to
3120         mono-config.c.
3121         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3122         per-assembly config files. When doing a dll map lookup give precedence
3123         to the per-assembly data.
3124
3125 2004-04-14  Martin Baulig  <martin@ximian.com>
3126
3127         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3128         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3129         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3130
3131         * mono-debugger-debugger.c: While the debugger is locked, remember
3132         whether the symbol tables have changes and send one single
3133         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3134
3135 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3136
3137         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3138
3139         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3140         function.
3141
3142         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3143         account when marshalling string arrays. Fixes #56965.
3144
3145 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3146
3147         * icall.c: Add new icalls mapping for security.
3148         * security.c|h: Add internal calls for WindowsIdentity,
3149         WindowsImpersonationContext and WindowsPrincipal.
3150
3151 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3152
3153         * class.c: Added comment to ensure the System.MonoDummy class
3154         is removed when no longer necessary
3155
3156 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3157
3158         * appdomain.c: Pass arguments to the bootstraping exceptions to
3159         minimize JITed methods at boot
3160
3161         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3162         second string to be null.
3163
3164         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3165         Change the protocol to minimize the JIT methods at startup.  Now
3166         it Returns the internal codepage, if the value of "int_code_page"
3167         is 1 at entry, and we can not compute a suitable code page
3168         number, returns the code page as a string.
3169
3170 2004-04-13  Jackson Harper  <jackson@ximian.com>
3171
3172         * culture-info-tables.h: Fix number of decimal digits for all
3173         english locales.
3174
3175 2004-04-13  Jackson Harper  <jackson@ximian.com>
3176
3177         * icall.c: Clairfy out of sync error message. It is not always
3178         your corlib that is out of sync.
3179
3180 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3181
3182         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3183         properties when only the set accessor is overriden. Fixes #55874.
3184
3185 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3186
3187         * assembly.c (mono_assembly_load_references): Make this thread safe.
3188         Fixes #56327.
3189
3190 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3191
3192         * monosn.c: Add missing initialization calls.
3193
3194 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3195
3196         * locales.c:
3197         ves_icall_System_Globalization_CultureInfo_construct_number_format
3198         Fix g_assert so it compiles on fussier compilers re int/ptr
3199         mismatch
3200
3201 2004-04-08  Dick Porter  <dick@ximian.com>
3202
3203         * socket-io.h:
3204         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3205         53992.  Also rearrange the code so that the internal calls return
3206         an error value and exceptions are thrown from managed code.
3207
3208         * icall.c: Add type info to the socket icalls.
3209
3210 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3211
3212         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3213         owes me a beer.
3214
3215 2004-04-07  Martin Baulig  <martin@ximian.com>
3216
3217         * class.c (mono_class_from_generic_parameter): Don't default
3218         `klass->parent' to `mono_defaults.object_type'.
3219
3220 2004-04-07  Martin Baulig  <martin@ximian.com>
3221
3222         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3223         `param->pklass->reflection_info'.       
3224
3225 2004-04-07  Jackson Harper  <jackson@ximian.com>
3226
3227         * culture-info-tables.h: Fix date separator symbol.
3228         
3229 2004-04-07  Martin Baulig  <martin@ximian.com>
3230
3231         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3232         from System.Type to System.MonoType.
3233
3234 2004-04-07  Martin Baulig  <martin@ximian.com>
3235
3236         * reflection.h
3237         (MonoReflectionGenericParam): Added `has_reference_type' and
3238         `has_value_type' fields.
3239
3240         * reflection.c (mono_image_get_generic_param_info): Encode the
3241         correct flags if we have the `class' or `struct' constraint.
3242
3243 2004-04-07  Martin Baulig  <martin@ximian.com>
3244
3245         * reflection.h
3246         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3247
3248 2004-04-07  Jackson Harper  <jackson@ximian.com>
3249
3250         * appdomain.c: Revert extra patches, just wanted to bump the
3251         version number.
3252         
3253 2004-04-07  Jackson Harper  <jackson@ximian.com>
3254
3255         * Makefile.am: Add culture-info private headers.
3256         * icall.c: Add new icalls for contructing locales.
3257         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3258         * locales.h: Declare new culture info construction methods.
3259         * object.h: Add new fields used to avoid the CultureMap to
3260         MonoCultureInfo.
3261         * culture-info.h: Definition of structs used in the culture info
3262         tables.
3263         * culture-info-tables.h: Autogenerated tables that contain culture
3264         info data. This file was generated with the locale-builder tool.
3265         * appdomain.c: Incement corlib version number.
3266         
3267 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3268
3269         * appdomain.c: (mono_runtime_init) move mono_thread_init
3270         to before mono_object_new calls so critical sections
3271         are initialized before use.
3272
3273 2004-04-07  Martin Baulig  <martin@ximian.com>
3274
3275         * icall.c
3276         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3277         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3278         (ves_icall_MonoGenericParam_initialize): Removed.
3279         (monogenericparam_icalls): Removed.
3280         (generictypeparambuilder_icalls): Added new table for
3281         System.Reflection.Emit.GenericTypeParameterBuilder.
3282
3283         * reflection.c
3284         (mono_reflection_define_generic_parameter): Removed.
3285         (mono_reflection_initialize_generic_parameter): This is now called
3286         from GenericTypeParameterBuilder's .ctor.
3287
3288 2004-04-06  Martin Baulig  <martin@ximian.com>
3289
3290         * class.c (mono_class_init): Don't inflate nested classes in a
3291         generic instance.
3292         (mono_type_get_name_recurse): Include the generic arguments for
3293         generic instances and generic type declarations.
3294         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3295         (_mono_class_get_instantiation_name): Removed.
3296         (mono_class_create_generic): Always use `gklass->name' as our name.
3297
3298         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3299
3300         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3301         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3302         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3303         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3304         closed generic methods here.
3305
3306         * reflection.c
3307         (mono_reflection_generic_inst_get_nested_types): Removed.
3308         (inflate_mono_method): Copy the generic parameters from the
3309         MonoMethodHeader into out MonoGenericMethod.
3310
3311 2004-04-06  Martin Baulig  <martin@ximian.com>
3312
3313         * row-indexes.h
3314         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3315
3316         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3317
3318         * reflection.c (build_compressed_metadata): If we have any entries
3319         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3320         set the header version to 1.1.
3321
3322 2004-04-06  Martin Baulig  <martin@ximian.com>
3323
3324         * class.c (mono_class_init): If we're a generic instance,
3325         initialize our nested classes, too.
3326         (_mono_class_get_instantiation_name): Deal with the new `!%d'
3327         suffix. 
3328
3329 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3330
3331         * process.c: quote the argument passed to the shell on windows.
3332
3333 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
3334
3335         * threads.c (mono_alloc_special_static_data): Allow this to be
3336         called during startup.
3337
3338 2004-04-02  Martin Baulig  <martin@ximian.com>
3339
3340         * icall.c
3341         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
3342
3343 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
3344
3345         * icall.c: Fix build.
3346
3347 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
3348
3349         * Makefile.am: Added security.c|h.
3350         * icall.c: Added icall for get_UserName;
3351         * security.c: New file for security related icalls. Added function
3352         get_UserName for System.Environment (fix #56144).
3353         * security.h: New. Header file for security.c
3354
3355 2004-04-02  Dick Porter  <dick@ximian.com>
3356
3357         * icall.c: Deleted the icalls that were obsoleted some time ago
3358         by the ICU string code, and which were mixed into the icall
3359         rearranging.  Fixes bug 55969.
3360
3361         * string-icalls.h: 
3362         * string-icalls.c: Deleted the code that those icalls reference.
3363
3364 2004-04-01  Martin Baulig  <martin@ximian.com>
3365
3366         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
3367
3368         * class.c (mono_class_from_generic_parameter): Don't set 
3369         TYPE_ATTRIBUTE_INTERFACE.
3370         (my_mono_class_from_generic_parameter): Likewise.
3371
3372 2004-04-01  Martin Baulig  <martin@ximian.com>
3373
3374         * loader.c (find_method): Added an optional `MonoClass *ic'
3375         argument to search in a specific interface.
3376         (mono_get_method_constrained): New public function.
3377
3378 2004-04-01  Martin Baulig  <martin@ximian.com>
3379
3380         * reflection.c (mono_image_get_generic_field_token): Use the
3381         `handleref' cache here.
3382
3383 2004-04-01  Martin Baulig  <martin@ximian.com>
3384
3385         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
3386
3387         * reflection.c (create_generic_typespec): Use the `typespec' hash
3388         here, not the `typeref' one.    
3389
3390 2004-04-01  Martin Baulig  <martin@ximian.com>
3391
3392         * class.c (mono_class_inflate_generic_type): Moved the
3393         functionality into a new static inflate_generic_type() which
3394         returns NULL if it didn't do anything.  Only increment the
3395         `mono_stats.inflated_type_count' if we actually inflated
3396         something.
3397         (mono_class_get_full): Check the classes type to see whether we
3398         need to inflate it; also inflate MONO_TYPE_(M)VAR.
3399
3400 2004-04-01  Jackson Harper  <jackson@ximian.com>
3401
3402         * reflection.c: Set culture for assembly references.
3403         
3404 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
3405
3406         * reflection.[ch], icall.[ch], Fix support for pinning variables.
3407
3408 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3409
3410         * assembly.c:
3411         (do_mono_assembly_open): the critical section also covers
3412         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
3413
3414 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3415
3416         * threads.c:
3417         (mono_manage_threads): abort the background threads when finishing.
3418         Fixes bug #47232.
3419
3420 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3421
3422         * gc.c: only close the done_event handle if there was no timeout.
3423         C-ified comments.
3424
3425 2004-03-30  Martin Baulig  <martin@ximian.com>
3426
3427         * icall.c (icall_entries): It's called "System.Activator", not
3428         "System.Activation".    
3429
3430 2004-03-30  Martin Baulig  <martin@ximian.com>
3431
3432         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
3433         (mono_class_create_from_typespec): Likewise.
3434
3435 2004-03-30  Martin Baulig  <martin@ximian.com>
3436
3437         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
3438         `has_ctor_constraint' and `initialized'.
3439
3440 2004-03-30  Martin Baulig  <martin@ximian.com>
3441
3442         * reflection.c (encode_new_constraint): New static function to add
3443         the constructor constraint attribute to a type parameter.
3444         (encode_constraints): Call encode_new_constraint() if necessary.
3445
3446         * reflection.h
3447         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
3448
3449         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
3450         
3451 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
3452
3453         * reflection.c, icall.c: add support for pinning variables. 
3454
3455 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
3456
3457         * marshal.c (mono_marshal_get_managed_wrapper):
3458         init bool local with zero rather than null.
3459
3460 2004-03-29  Martin Baulig  <martin@ximian.com>
3461
3462         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
3463         the "official" behavior here.
3464         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
3465
3466 2004-03-29  Martin Baulig  <martin@ximian.com>
3467
3468         * icall.c: Reflect latest API changes.
3469
3470 2004-03-29  Martin Baulig  <martin@ximian.com>
3471
3472         * loader.c (mono_get_method_from_token): Also call
3473         mono_metadata_load_generic_params () for abstract and interface
3474         methods; replace the type arguments in the method signature with
3475         the ones which are loaded from the metadata.
3476
3477 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
3478
3479         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
3480         of the lock is not the current thread. MS.NET don't do it, in spite of
3481         what the documentation says. See bug #56157.
3482
3483 2004-03-28  Martin Baulig  <martin@ximian.com>
3484
3485         * class.c (mono_class_init): Don't call init_properties() and
3486         init_events() for generic instances; set `prop->parent' when
3487         inflating properties.
3488
3489         * reflection.c (mono_generic_inst_get_object): Call
3490         `mono_class_init (ginst->klass)'.
3491         (mono_type_get_object): Only create a MonoGenericInst if your
3492         generic type is a TypeBuilder.
3493         (do_mono_reflection_bind_generic_parameters): Only set
3494         `ginst->is_dynamic' if our generic type is a TypeBuilder.
3495
3496 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
3497
3498         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
3499         Fixes #56091.
3500
3501 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3502
3503         * icall.c: added Kill_internal icall.
3504         * process.[ch]: added Kill_internal icall.
3505
3506 2004-03-25  Martin Baulig  <martin@ximian.com>
3507
3508         * class.h (MonoStats): Added `generic_instance_count',
3509         `inflated_method_count', `inflated_type_count' and
3510         `generics_metadata_size'.       
3511
3512 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3513
3514         * reflection.c: no warnings now.
3515
3516 2004-03-25  Martin Baulig  <martin@ximian.com>
3517
3518         * class.c (mono_class_get_full): New public function; does a
3519         mono_class_get(), but also takes a `MonoGenericContext *'.
3520
3521         * loader.c (mono_field_from_memberref): Renamed to
3522         `field_from_memberref', made static and added `MonoGenericContext *'
3523         argument.
3524         (mono_field_from_token): Added `MonoGenericInst *' argument.
3525         (method_from_memberef): Likewise.
3526         (mono_get_method_from_token): Likewise.
3527         (mono_get_method_full): New public function; does a
3528         mono_get_method(), but also takes a `MonoGenericContext *'.
3529
3530         * verify.c (mono_method_verify): Get the method's generic context
3531         and pass it to mono_field_from_token(), mono_get_method_full() and
3532         mono_class_get_full().
3533
3534 2004-03-25  Martin Baulig  <martin@ximian.com>
3535
3536         * class.c (mono_class_inflate_generic_type): Take a
3537         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
3538         `MonoGenericMethod *'.
3539
3540 2004-03-25  Martin Baulig  <martin@ximian.com>
3541
3542         * loader.h (MonoMethodInflated): Store the MonoGenericContext
3543         instead of the MonoGenericMethod here.
3544
3545 2004-03-25  Martin Baulig  <martin@ximian.com>
3546
3547         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
3548         each time we create a new MonoGenericInst, we also create a new
3549         context which points back to us.
3550
3551         * class.c (inflate_method): Use `ginst->context' instead of
3552         creating a new context.
3553
3554         * loader.c (method_from_memberref): Use
3555         `klass->generic_inst->context' instead of creating a new context.
3556
3557 2004-03-25  Martin Baulig  <martin@ximian.com>
3558
3559         * class.h (MonoGenericContext): New struct.
3560         (MonoGenericMethod): Removed `generic_inst'.
3561
3562         * class.c (mono_class_inflate_generic_method): Take a
3563         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
3564
3565 2004-03-25  Martin Baulig  <martin@ximian.com>
3566
3567         * loader.h (MonoMethodInflated): New typedef.
3568
3569         * metadata.h (MonoMethodSignature): Removed `gen_method', make
3570         `generic_param_count' consume just 30 bits, added `is_inflated'
3571         and `has_type_parameters' flags (one bit each).
3572
3573         * class.c (mono_class_inflate_generic_method): Create a
3574         MonoMethodInflated instead of a MonoMethodNormal and set
3575         `is_inflated' in the method signature.
3576
3577         * class.h (MonoGenericMethod): Removed `generic_method'.
3578
3579 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
3580
3581         * image.c: Make sure the name of a MonoImage is always an absolute path.
3582           This fixes bug #54415.
3583
3584 2004-03-24  Martin Baulig  <martin@ximian.com>
3585
3586         * class.c (mono_class_setup_vtable): If we're a generic instance,
3587         use our generic type's vtable size.
3588
3589 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
3590
3591         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
3592         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
3593         problems.
3594
3595 2004-03-23  Martin Baulig  <martin@ximian.com>
3596
3597         * class.h (MonoDynamicGenericInst): Added `int count_events' and
3598         `MonoEvent *events'.
3599
3600         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
3601         (typebuilder_icalls): Added "get_event_info"; calls
3602         mono_reflection_event_builder_get_event_info(). 
3603
3604         * reflection.c (mono_reflection_generic_inst_initialize): Added
3605         `MonoArray *events'.
3606         (mono_reflection_event_builder_get_event_info): New function.
3607
3608 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
3609
3610         * object.h: add mono_type_initialization_init
3611
3612         * object.c (mono_runtime_class_init): 
3613         implement class constructor synchronization rules
3614         to cope with threading issues.  
3615         add mono_type_initialization_init
3616
3617         * appdomain.c (mono_runtime_init): call 
3618         mono_type_initialization_init
3619
3620         * class.h: removing initializing field from MonoVTable
3621
3622 2004-03-23  Martin Baulig  <martin@ximian.com>
3623
3624         * class.c (my_mono_class_from_generic_parameter): Use
3625         `param->name' if it's not NULL. 
3626
3627 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
3628
3629         * class.c: do not insert non-virtual methods in the vtable.
3630         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
3631         that means the method is non-virtual. This never would have
3632         happened before.
3633
3634 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
3635
3636         * profiler.c: Added lock for accessing coverage_hash.
3637
3638 2004-03-22  Martin Baulig  <martin@ximian.com>
3639
3640         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
3641         `method->method->signature->generic_param_count != 0' to make it
3642         work for interface methods.
3643
3644 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3645
3646         * process.c: quote the string passed to the shell using g_shell_quote.
3647
3648 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3649
3650         * threads.c:
3651         (mono_threads_manage): don't remove the finalizer thread and self
3652         from the threads hash table so that mono_thread_manage can be called
3653         more than once.
3654
3655 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3656
3657         * process.c: quote the arguments when UseShellExecute is true. Fixes
3658         bug #55790.
3659
3660 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3661
3662         * threads.c: set mono_thread_detach as a cleanup routine for every
3663         thread. This way it's always executed upon thread termination, either
3664         aborted or finished normally. No more xsp hangs!
3665
3666 2004-03-17  Martin Baulig  <martin@ximian.com>
3667
3668         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
3669         `int count_nested' and a `MonoType **nested'.
3670
3671         * reflection.c (mono_reflection_bind_generic_parameters): Moved
3672         most of the functionality into a new static
3673         do_mono_reflection_bind_generic_parameters() and don't take a
3674         `MonoType *nested_in' argument any more.  Don't compute nested
3675         types here.
3676         (mono_reflection_generic_inst_get_nested_types): New public method
3677         to get nested types.
3678
3679         * class.c (mono_class_create_generic): Set `klass->nested_in' if
3680         we're a nested class.
3681
3682         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
3683         mono_reflection_generic_inst_get_nested_types() to compute the
3684         nested types.
3685
3686 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
3687
3688         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
3689         descriptive error message under windows.
3690         
3691 2004-03-17  Martin Baulig  <martin@ximian.com>
3692
3693         * class.c (dup_type): Added `const MonoType *original' argument;
3694         copy the attrs from the original type.
3695
3696 2004-03-17  Martin Baulig  <martin@ximian.com>
3697
3698         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
3699         `m->generic_inst_cache' here.
3700
3701 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
3702
3703         * exception.h exception.c: Add stack_overflow_exception.
3704
3705 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3706
3707         * threadpool.c:
3708         (overlapped_callback): call SetEvent *after* invoking the callback.
3709         No need to call CloseHandle.
3710
3711 2004-03-16  Martin Baulig  <martin@ximian.com>
3712
3713         * reflection.c (mono_image_get_fieldref_token): Take a
3714         `MonoReflectionField *' instead of a `MonoClassField *' and a
3715         `MonoClass *'; store the `MonoReflectionField *' in the hash.
3716
3717 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3718
3719         * appdomain.c: don't add the culture to the filename we're looking for
3720         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
3721
3722 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3723
3724         * locales.c: don't ignore symbols when doing case insensitive compares.
3725         Thanks Dick! Fixes bug #54046.
3726
3727         * threads.c: surround 'threads' usage with enter/leave in
3728         mono_thread_manage.
3729
3730 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
3731
3732         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
3733         implicitly marshalled as [Out]. Fixes #55450.
3734
3735         (mono_marshal_get_runtime_invoke): Zero out the result if there is
3736         an exception.
3737
3738 2004-03-16  Martin Baulig  <martin@ximian.com>
3739
3740         * class.c (mono_class_from_generic_parameter): Use the actual
3741         parameter name. 
3742
3743 2004-03-16  Martin Baulig  <martin@ximian.com>
3744
3745         * reflection.c (type_get_signature_size): New static function.
3746         Compues the size of the type in a method signature.
3747         (method_get_signature_size): New static function; calls
3748         type_get_signature_size() to compute the actual size of the
3749         method's signature.
3750         (method_encode_signature): Use method_get_signature_size() to get
3751         the signature's size rather than using `nparams * 10'.
3752
3753 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3754
3755         * file-io.h: define here WapiOverlapped on windows. I don't want the
3756         regular OVERLAPPED one.
3757
3758         * file-io.c:
3759         * threadpool.c: somehow, BindIoCompletionCallback is not found.
3760         Disabling AIO on windows.
3761
3762 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3763
3764         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
3765         bug #55385.
3766
3767 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3768
3769         * appdomain.c: upgraded corlib version.
3770
3771         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
3772         and BeginWrite. Allow opening files for asynchrnous operations.
3773
3774         * file-io.h: new struct that maps FileStreamAsyncResult.
3775         * icall.c: added new icalls.
3776         * process.[ch]: support setting child process environment variables
3777         and use the SHELL or COMSPEC when UseShellExecute is true.
3778
3779         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
3780         callback for async. IO is here and also BindHandle.
3781
3782         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
3783         from here.
3784
3785 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
3786
3787         * reflection.c (create_custom_attr): Allow len == 0.
3788
3789         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
3790         computation on big-endian machines.
3791
3792 2004-03-13  Martin Baulig  <martin@ximian.com>
3793
3794         * class.h (MonoGenericInst): Added `int count_ifaces'.
3795
3796         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
3797         `ginst->count_ifaces' instead `klass->interface_count' since we
3798         may get called before the vtable is created.
3799
3800         * loader.c (mono_method_get_param_names): If we're a generic
3801         instance, return and don't initialize the class.
3802
3803         * reflection.c (mono_reflection_setup_generic_class): Don't call
3804         ensure_runtime_vtable().
3805         (mono_reflection_bind_generic_parameters): Set
3806         `ginst->count_ifaces'.
3807
3808 2004-03-11  Jackson Harper <jackson@ximian.com>
3809
3810         * icall.c:
3811         * unicode.c:
3812         * unicode.h: Remove unused System.Char icalls.
3813         
3814 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
3815
3816         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
3817         code when we P/Invoke the first library in Windows.Forms, instead
3818         of when we first open the assembly.
3819
3820         * assembly.c: Drop the lookup from here.
3821
3822 2004-03-10  Martin Baulig  <martin@ximian.com>
3823
3824         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
3825         class for properties, fields and events.  Finally fixes #54945.
3826
3827 2004-03-10  Martin Baulig  <martin@ximian.com>
3828
3829         * metadata.c (mono_metadata_class_equal): New static function;
3830         checks whether two generic instances or two generic parameters are
3831         equal.
3832         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
3833         compare classes.        
3834
3835 2004-03-10  Martin Baulig  <martin@ximian.com>
3836
3837         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
3838
3839         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
3840         argument and write it into the `reflection_info' field.
3841
3842         * icall.c
3843         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
3844         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
3845
3846 2004-03-09  Jackson Harper  <jackson@ximian.com>
3847
3848         * char-conversions.h: use 8 bits for numeric data its all we need
3849         * icall.c: numeric data is only 8 bits now.
3850
3851 2004-03-09  Martin Baulig  <martin@ximian.com>
3852
3853         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
3854
3855         * class.c (init_properties, init_events): Initialize the new
3856         `parent' field.
3857
3858         * reflection.c (typebuilder_setup_properties): Likewise.
3859         (typebuilder_setup_events): Likewise.
3860
3861         * reflection.h (MonoEventInfo): Replaced `parent with
3862         `declaring_type' and `reflected_type'.
3863
3864         * icall.c (ves_icall_get_property_info): Distinguish between
3865         declaring and reflected type.
3866         (ves_icall_get_event_info): Likewise.
3867
3868 2004-03-09  Martin Baulig  <martin@ximian.com>
3869
3870         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
3871         (ves_icall_Type_GetField): Correctly set field->klass.
3872
3873 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
3874
3875         * loader.h: Fix warning.
3876
3877 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
3878
3879         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
3880         library routine if present.  Notice that it will still continue
3881         executing even if its missing, for those working on the Gtk#
3882         edition of Windows.Forms.
3883
3884         * assembly.c (do_mono_assembly_open): If loading the
3885         System.Windows.Forms call mono_loader_wini_init.
3886
3887 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
3888
3889         * class.h: Added MonoRemoteClass struct.
3890         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
3891         function for MonoStrings.
3892         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
3893         Added internal call for getting the proxy type.
3894         * marshal.c: Get the type of transparent proxies from its remote_class.
3895         Added methods that generate the IL for type checks and casts:
3896         mono_marshal_get_isinst, mono_marshal_get_castclass, 
3897         mono_marshal_get_proxy_cancast.
3898         * marshal.h: Declaration of the previous new methods.
3899         * object.c: Added new moethods for creating and updating MonoRemoteClass
3900         instances: mono_remote_class, mono_upgrade_remote_class, 
3901         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
3902         * verify.c: FIx transparent_proxy_fields layout.
3903         * appdomain.c: Bump corlib version.
3904
3905 2004-03-04  Jackson Harper  <jackson@ximian.com>
3906
3907         * icall.c: Add icall to access char conversion tables.
3908         * char-conversions.h: Character conversion tables.
3909         * Makefile.am: Add char-conversions.h private header file.
3910         
3911 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
3912
3913         * appdomain.c (unload_thread_main): Increase unloading timeout to
3914         10 sec as a temporary workaround for Nant problems.
3915
3916 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
3917
3918         * gc.c: Add checks for GC_enable and GC_disable.
3919
3920         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
3921         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
3922         (bug #54988).
3923         
3924 2004-02-27  Martin Baulig  <martin@ximian.com>
3925
3926         * reflection.c (mono_reflection_bind_generic_parameters): Take a
3927         `MonoReflectionType *' instead of a `MonoType *'.
3928
3929 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
3930
3931         * gc.c (run_finalize): Avoid finalizing the object representing the
3932         finalizer thread.
3933         (finalizer_thread): Fix warning.
3934
3935 2004-02-25  Martin Baulig  <martin@ximian.com>
3936
3937         * class.c (_mono_class_get_instantiation_name): Added `int offset'
3938         argument for nested types.
3939         (mono_class_create_generic): Added support for nested generictypes.
3940
3941         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
3942         `GList *nested'.
3943
3944         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
3945
3946         * reflection.c (method_encode_signature): Increase the minimum
3947         value of `size' from 10 to 11.
3948         (mono_reflection_bind_generic_parameters): Take `int type_argc'
3949         and `MonoType **types' arguments instead of the `MonoArray
3950         *types'; added `MonoType *nested_in'.  Recursively instantiate
3951         nested classes. 
3952
3953 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
3954
3955         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
3956         stack_overflow_ex members which are used by exception handling.
3957
3958         * appdomain.c (mono_runtime_init): Initialize the new members.
3959
3960         * gc.c (mono_gc_enable): New helper function.
3961         * gc.c (mono_gc_disable): New helper function.
3962
3963 2004-02-23  Martin Baulig  <martin@ximian.com>
3964
3965         * icall.c: I must have been really stupid - make it actually work
3966         this time ;-)
3967
3968 2004-02-23  Martin Baulig  <martin@ximian.com>
3969
3970         * loader.c (method_from_memberref): Only inflate the method if
3971         it's in another klass.
3972
3973 2004-02-23  Martin Baulig  <martin@ximian.com>
3974
3975         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
3976         (mono_class_init): If we're a generic instance and an interface,
3977         compute `class->interface_id'; also create `class->interfaces'
3978         here and inflate them.
3979
3980         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
3981         `ginst->is_open'.
3982         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
3983
3984         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
3985
3986 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
3987
3988         * reflection.c (method_encode_code): Improved the error message
3989         generated by the exception.
3990
3991 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3992
3993         * icall.c: Martin did not do what he said in the ChangeLog for
3994         2004-02-18, but put back the changes for properties and events.
3995         Commenting those changes out again and adding comment to bug #54518.
3996         
3997         * process.c: removed warning.
3998
3999 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4000
4001         * marshal.c (emit_struct_conv): Print an error message instead of
4002         asserting when a type does not have the StructLayout attribute.
4003
4004 2004-02-20  Martin Baulig  <martin@ximian.com>
4005
4006         * reflection.c (mono_type_get_object): Also use the cache for
4007         generic instances.
4008         (mono_reflection_bind_generic_parameters): Always compute
4009         `ginst->ifaces'.        
4010
4011 2004-02-20  Martin Baulig  <martin@ximian.com>
4012
4013         * class.h (MonoGenericMethod): Removed `klass'.
4014
4015         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4016         *klass' argument.
4017
4018 2004-02-20  Martin Baulig  <martin@ximian.com>
4019
4020         * reflection.c (method_encode_methodspec): Actually use the
4021         uninflated signature for the memberref.
4022
4023 2004-02-20  Martin Baulig  <martin@ximian.com>
4024
4025         * class.h (MonoGenericMethod): Removed `declaring'.
4026
4027         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4028         is NULL, compute it here.
4029
4030 2004-02-20  Martin Baulig  <martin@ximian.com>
4031
4032         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4033
4034         * metadata.c (mono_metadata_generic_inst_hash): New method.
4035         (mono_metadata_generic_inst_equal): New method.
4036
4037         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4038         `klass->image->generic_inst_cache' cache to avoid creating
4039         duplicate MonoGenericInst's.
4040
4041         * class.c (mono_class_inflate_generic_type): Use the cache.
4042
4043 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4044
4045         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4046
4047 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4048
4049         * icall.c: added Socket.WSAIoctl icall.
4050
4051         * socket-io.[ch]: implemented
4052         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4053
4054 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4055
4056         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4057
4058 2004-02-18  Urs C Muff  <umuff@quark.com>
4059
4060         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4061         this work on PPC and other big-endian architectures.
4062
4063         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4064         fields with an underscore to make sure they're only accessed by
4065         the read32() macro.
4066
4067 2004-02-18  Martin Baulig  <martin@ximian.com>
4068
4069         * icall.c: Put the klass->refclass changes back for methods and
4070         fields, but not for properties and events.  We're currently not
4071         distinguishing between DeclaringType and ReflectedType for
4072         properties and events, that's what caused the regressions.
4073
4074 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4075
4076         * object.c:
4077         (mono_async_result_new): the handle can be NULL.
4078
4079         * threadpool.c: Use an event instead of a semaphore, don't initialize
4080         it until needed. This saves quite a few semaphores from being created
4081         when using the threadpool.
4082
4083 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4084
4085         * object.c (mono_string_is_interned_lookup): Fix interning of long
4086         strings. Fixes #54473.
4087
4088         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4089
4090         * icall.c: Revert the klass->refclass changes since they introduce
4091         regressions (bug #54518).
4092
4093 2004-02-18  Martin Baulig  <martin@ximian.com>
4094
4095         * class.c (mono_class_init): If we're a generic instance and don't
4096         come from a TypeBuilder, inflate our members here.
4097         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4098         (mono_class_create_generic): New public method.
4099         (mono_class_initialize_generic): Removed.
4100         (get_instantiation_name): Renamed to
4101         _mono_class_get_instantiation_name() and made it public.
4102
4103 2004-02-18  Martin Baulig  <martin@ximian.com>
4104
4105         * class.c (mono_class_inflate_generic_type): Clear the new
4106         instance's `nginst->klass' when inflating a generic instance.
4107         (mono_class_is_subclass_of): Added (basic) support for generic
4108         instances.
4109
4110 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4111
4112         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4113         MonoMempool to hold compiled native code.
4114
4115 2004-02-17  Martin Baulig  <martin@ximian.com>
4116
4117         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4118         `properties'.
4119
4120         * reflection.c (mono_reflection_generic_inst_initialize): Added
4121         `MonoArray *properties' argument.
4122
4123         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4124
4125 2004-02-17  Martin Baulig  <martin@ximian.com>
4126
4127         * icall.c (ves_icall_Type_GetFields): Renamed to
4128         ves_icall_Type_GetFields_internal() and added a
4129         `MonoReflectionType *rtype' argument; pass it to
4130         mono_field_get_object() to set the field's "reflected" type.
4131         (ves_icall_Type_GetConstructors): Likewise.
4132         (ves_icall_Type_GetEvents): Likewise.
4133         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4134         argument; pass it to mono_method_get_object() to set the method's
4135         "reflected" type.       
4136
4137 2004-02-17  Martin Baulig  <martin@ximian.com>
4138
4139         * class.h (MonoDynamicGenericInst): New type.
4140         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4141
4142         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4143         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4144         (ves_icall_MonoGenericInst_GetFields): New interncall.
4145
4146         * class.c (mono_class_from_generic): Don't call
4147         mono_class_initialize_generic() if this is a dynamic instance;
4148         ie. it's being created from a TypeBuilder.
4149         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4150         `class->byval_arg.type'.
4151
4152         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4153         to `inflate_method' and made static.
4154         (mono_reflection_inflate_field): Removed.
4155         (mono_reflection_generic_inst_initialize): New public method.
4156
4157         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4158         `ctors' and `fields'; added `initialized'.
4159
4160 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4161
4162         * debug-helpers.c (mono_method_full_name): Fix output for empty
4163         namespaces.
4164
4165 2004-02-12  Martin Baulig  <martin@ximian.com>
4166
4167         * class.h (MonoClassField): Added `MonoType *generic_type'.
4168
4169         * reflection.c (mono_image_get_fieldref_token): Added support for
4170         instantiated generic types.
4171         (field_encode_inflated_field): Removed.
4172         (mono_image_get_inflated_field_token): Removed.
4173         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4174
4175         * reflection.h (MonoReflectionInflatedField): Removed.
4176
4177 2004-02-12  Martin Baulig  <martin@ximian.com>
4178
4179         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4180         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4181
4182         * reflection.c (mono_image_get_methodspec_token): Take a
4183         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4184         (mono_image_create_token): Check whether we have a
4185         `method->signature->gen_method' and call
4186         mono_image_get_methodspec_token() if appropriate.
4187         (inflated_method_get_object): Removed.
4188         (mono_reflection_bind_generic_method_parameters): Return a
4189         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4190         (mono_reflection_inflate_method_or_ctor): Likewise.
4191
4192         * reflection.h (MonoReflectionInflatedMethod): Removed.
4193
4194 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4195
4196         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4197         for custom valuetype marshalling.
4198
4199         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4200
4201 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4202
4203         * icall.c: fixed WSAGetLastError_internal name.
4204
4205 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4206
4207         * threads.c (mono_thread_attach): Allow this to be called multiple
4208         times for a thread.
4209         
4210         * threads.c (build_wait_tids): Do not wait for ourselves.
4211
4212         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4213         appdomain list is empty.
4214
4215         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4216         memory returned by mono_string_builder_to_utf16, since it points into
4217         managed memory. Thanks to Bernie Solomon for noticing this.
4218
4219         * icall.c: Add AppDomainSetup icalls.
4220
4221         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4222
4223         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4224         types.
4225
4226         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4227         custom attributes to the method_aux struct. Also fix array indexes etc.
4228
4229         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4230         
4231 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4232
4233         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4234         (both static and runtime) and reduce startup time.
4235
4236 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4237
4238         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4239         AsAny marshalling conversion instead of crashing.
4240
4241         * marshal.c: Fix warnings.
4242
4243 2004-02-09  Martin Baulig  <martin@ximian.com>
4244
4245         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4246
4247         * reflection.h (MonoReflectionInflatedMethod): Removed the
4248         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4249
4250         * reflection.c (method_encode_methodspec): Removed the `method'
4251         argument; we get it from `gmethod->declaring'.
4252         (inflated_method_get_object): Removed the `declaring' argument.
4253
4254 2004-02-09  Martin Baulig  <martin@ximian.com>
4255
4256         * class.h (MonoGenericMethod): New type.
4257         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4258         `generic_method'.
4259
4260         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4261         a `MonoGenericMethod *gen_method' one.
4262
4263         * class.c (mono_class_inflate_generic_type): Take an additional
4264         `MonoGenericMethod * argument.  This is only non-NULL if we're
4265         inflating types for a generic method.   
4266         (mono_class_inflate_generic_signature): Renamed to
4267         inflate_generic_signature() and made static; take a
4268         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4269         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4270         instead of a `MonoGenericInst *' one.
4271         (mono_class_inflate_generic_method): Likewise.
4272
4273         * reflection.c (encode_generic_method_sig): Take a
4274         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4275         (method_encode_methodspec): Likewise.
4276         (inflated_method_get_object): Likewise. 
4277
4278         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4279         field with a `MonoGenericMethod *gmethod' one.  
4280
4281 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4282
4283         * class.h (mono_class_has_parent): add parens to expansion
4284         so you can ! this.
4285
4286 2004-02-08  Martin Baulig  <martin@ximian.com>
4287
4288         * image.h (MonoImage): Removed `generics_cache'.
4289
4290         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4291         instead of a `MonoType *' argument; removed the `inflate_methods'
4292         argument.  Don't inflate methods here.
4293
4294         * loader.c (find_method): If it's a generic instance, call
4295         mono_class_init() on the `sclass->generic_inst->generic_type'.
4296
4297         * metadata.c (mono_type_size): Make this work on uninitialized
4298         generic instances; call it on the `ginst->generic_type's class.
4299
4300         * reflection.c (mono_reflection_bind_generic_parameters): Call
4301         mono_class_from_generic() to create the `ginst->klass'.
4302
4303 2004-02-08  Martin Baulig  <martin@ximian.com>
4304
4305         * class.h (MonoClass): Changed type of `generic_inst' from
4306         `MonoType *' to `MonoGenericInst *'.
4307
4308 2004-02-08  Martin Baulig  <martin@ximian.com>
4309
4310         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4311         mono_type_get_object(), this is now creating a `MonoGenericInst'
4312         for MONO_TYPE_GENERICINST.
4313         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4314         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4315
4316         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4317         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4318         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4319         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4320         and reflected type.
4321
4322         * reflection.h (MonoReflectionInflatedMethod): Removed
4323         `declaring_type' and `reflected_type'.
4324
4325 2004-02-08  Martin Baulig  <martin@ximian.com>
4326
4327         * class.h (MonoGenericInst): Added `MonoType *parent' and
4328         `MonoType **ifaces'.
4329
4330         * reflection.h (MonoReflectionGenericInst): Removed `klass',
4331         `parent' and `interfaces'.
4332
4333         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4334         `MonoType *' argument and return a `MonoType *'.
4335
4336         * icall.c
4337         (ves_icall_MonoGenericInst_GetParentType): New interncall.
4338         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
4339
4340 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4341
4342         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
4343         valuetype marshalling.
4344
4345 2004-02-06  Martin Baulig  <martin@ximian.com>
4346
4347         * class.c
4348         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
4349         (my_mono_class_from_generic_parameter): Likewise.
4350
4351 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4352
4353         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
4354         contents of the symbol files lazily.
4355
4356         * object.h (MonoThread): Add 'name' and 'name_len' fields.
4357
4358         * threads.h threads.c icall.c: New icalls for getting and setting the
4359         threads name.
4360
4361 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
4362
4363         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
4364         Raise an exception when the domain is not found.
4365
4366 2004-02-03  Martin Baulig  <martin@ximian.com>
4367
4368         * reflection.c (mono_image_get_methodspec_token): Use the
4369         uninflated signature; fixes gen-33.
4370
4371 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
4372
4373         * gc.c threads.c: Make the finalizer thread a normal managed thread so
4374         the finalizer code can use thread functionality.
4375
4376         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
4377         the finalizer thread.
4378
4379         * threads.c: Make some functions more robust.
4380
4381         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
4382
4383         * metadata.h: Add new marshalling conventions.
4384
4385         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
4386         stringbuilder marshalling. Fixes #53700.
4387
4388         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
4389
4390         * reflection.c (mono_image_get_type_info): Save declarative security
4391         info.
4392
4393         * reflection.c (mono_image_get_field_info): Handle uninitialized 
4394         unmanaged fields as well.
4395
4396         * appdomain.c: Bump corlib version.
4397
4398 2004-02-01  Martin Baulig  <martin@ximian.com>
4399
4400         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
4401         method type arguments.  
4402
4403 2004-01-30  Duncan Mak  <duncan@ximian.com>
4404
4405         * marshal.h: Add prototype for
4406         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
4407         and
4408         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
4409         fix the build.
4410
4411 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
4412
4413         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
4414         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
4415
4416 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4417
4418         * marshal.c (mono_marshal_get_native_wrapper): Add support for
4419         custom marshalling of valuetypes.
4420
4421         * marshal.c: Fix some warnings.
4422
4423 2004-01-29  Martin Baulig  <martin@ximian.com>
4424
4425         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
4426         for generic method parameters.
4427
4428         * reflection.c (method_encode_methodspec): Write the uninflated
4429         signature into the methodspec table.
4430         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
4431         is always the uninflated method.
4432         (reflection_methodbuilder_to_mono_method): Copy the generic
4433         parameters from the MethodBuilder into `header->gen_params'.
4434
4435 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4436
4437         * class.c (mono_class_from_generic_parameter): Fix warning.
4438
4439 2004-01-27  Martin Baulig  <martin@ximian.com>
4440
4441         * class.c (mono_class_from_generic_parameter): Don't create
4442         `klass->methods' here.  
4443
4444 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
4445
4446         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
4447         extension since it does not work with libraries named lib<FOO>.dll.so.
4448
4449 2004-01-25  Martin Baulig  <martin@ximian.com>
4450
4451         * class.c (mono_class_inflate_generic_type): Added support for
4452         MONO_TYPE_GENERICINST.
4453
4454         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
4455         inflate methods on open constructed types.      
4456
4457 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4458
4459         * object.c: fire ProcessExit event in the root AppDomain after running
4460         Main. Fixes bug #53299.
4461
4462 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
4463
4464         * socket-io.c: include the new socket-wrappers.h header.
4465         Use the wrappers instead of the unix socket functions to make the code
4466         more clear.
4467
4468 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
4469
4470         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
4471
4472         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4473         Fixes #22532.
4474
4475 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
4476
4477         * reflection.c (mono_image_create_pefile): Handle the case when the
4478         entry point is not a MethodBuilder.
4479
4480         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4481         field to ReflectionMethod since it is not allways a builder.
4482
4483         * reflection.c (type_get_fully_qualified_name): New helper function to
4484         return the fully qualified name of a type.
4485
4486         * reflection.c (encode_marshal_blob): Always emit the fully qualified
4487         type name for custom marshallers.
4488
4489         * reflection.c (mono_marshal_spec_from_builder): Ditto.
4490
4491         * class.c (mono_class_setup_vtable): If a parent class already 
4492         implements an interface, use the implementing methods from that class.
4493         Fixes #53148.
4494
4495 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4496
4497         * threadpool.c: just return instead of ExitThread to allow for thread
4498         clean up earlier.
4499
4500 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
4501
4502         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
4503         when closing resource modules.
4504
4505         * reflection.c (mono_image_create_pefile): Handle the case when the
4506         entry point is not a MethodBuilder.
4507
4508         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4509         field to ReflectionMethod since it is not allways a builder.
4510
4511 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
4512
4513         * marshal.c (mono_marshal_get_managed_wrapper): 
4514         mono_marshal_alloc takes native int so CONV_I
4515         the arg for 64bits.
4516
4517 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
4518
4519         * reflection.c (fixup_cattrs): New function to fixup the methoddef
4520         tokens in the cattr table. Fixes #53108.
4521
4522 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4523
4524         * loader.c: don't trim ".dll" before looking up in the config file.
4525         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
4526
4527 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
4528
4529         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
4530         Return the module which contains the resource as well.
4531         (ves_icall_System_Reflection_Module_Close): New icall.
4532
4533         * appdomain.c: Bump corlib version number.
4534
4535         * image.c (mono_image_addref): New public function.
4536
4537         * assembly.c: Call mono_image_addref.
4538
4539         * reflection.c (mono_module_get_object): Increase reference count of 
4540         the image.
4541
4542         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4543         Fixes #22532.
4544
4545         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
4546         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
4547         proper exceptions on DllImport problems.
4548
4549 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
4550
4551         * class.c, metadata.c: eliminate CSIZE macro.
4552
4553 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
4554
4555         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
4556         * object.h: Added async_callback field in MonoAsyncResult.
4557         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
4558         * verify.c: Added async_callback in MonoAsyncResult layout.
4559
4560 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
4561
4562         * reflection.c (mono_reflection_get_custom_attrs): Add support
4563         for Modules.
4564
4565 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
4566
4567         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
4568         marshalling.
4569         (mono_marshal_method_from_wrapper): Add null pointer check.
4570
4571 2004-01-16  Martin Baulig  <martin@ximian.com>
4572
4573         * debug-mono-symfile.h: Set version number to 36 and reflect
4574         latest symbol writer changes.
4575
4576 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
4577
4578         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
4579         multi-dimensional arrays.
4580         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
4581         (mono_class_from_mono_type): Use bounded_array_class_get.
4582         
4583         * class.c (mono_bounded_array_class_get): New function which takes
4584         a 'bounded' bool argument to distinguish vectors from one dimensional
4585         arrays.
4586
4587         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
4588         bounded_array_class_get if the array has bounds.
4589
4590         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
4591         Search modules loaded using AssemblyBuilder:AddModule as well.
4592
4593 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4594
4595         * appdomain.c: increased corlib version.
4596         * filewatcher.c: removed g_print.
4597         * icall.c:
4598         (get_property_info): only allocate what is actually requested.
4599         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
4600
4601 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4602
4603         * Makefile.am: added filewatcher.[ch]
4604         * filewatcher.[ch]: FileSystemWatcher runtime support.
4605         * icall.c: added new FSW icalls.
4606
4607 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
4608
4609         * string-icalls.c: fix stringbuilder regression as suggested by
4610         Iain McCoy <iain@mccoy.id.au>.
4611
4612 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
4613
4614         * process.c (process_read_stringtable_block): Recognize '007f' as
4615         a language neutral stringtable block.
4616
4617 2004-01-12  Patrik Torstensson
4618
4619         * object.h (MonoStringBuilder) : Changed layout to support our
4620         new stringbuilder class.
4621         * marshal.c: Change marshalling to support the new layout of 
4622         string builder.
4623         * appdomain.c: increased version number because new layout of
4624         string builder.
4625
4626 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
4627
4628         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
4629         assembly name as an string instead of an AssemblyName, since it is
4630         easier to extract info from it.
4631
4632         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
4633         the culture subdirectories too. Fixes #52231.
4634
4635 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4636
4637         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
4638         It takes 2 new parameters with an optional name for the method to look
4639         for and case ignoring info.
4640
4641         * threadpool.c: removed unused variable.
4642
4643 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4644
4645         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
4646         It takes 2 new parameters with an optional name for the property to look
4647         for and case ignoring info.
4648         Fixes bug #52753.
4649
4650 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
4651
4652         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
4653         Fix #52451.
4654
4655 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4656
4657         * appdomain.c:
4658         * assembly.c: escape the uri before passing it to g_filename_from_uri.
4659         Fixes bug #52630.
4660
4661 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
4662
4663         * reflection.c: Add support for more than one unmanaged resource.
4664
4665         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
4666         in field->def_value, as done in all other cases.
4667
4668         * reflection.c (mono_reflection_get_custom_attrs): Add support for
4669         TypeBuilders.
4670
4671         * reflection.c (mono_reflection_create_runtime_class): Remove 
4672         errorneous assignment to klass->element_class, since it is already
4673         done in mono_reflection_setup_internal_class.
4674
4675 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4676
4677         * gc.c: added missing LeaveCriticalSection.
4678         * icall.c: indented a couple of lines.
4679         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
4680         if we call EndInvoke inside a callback. Fixes bug #52601.
4681
4682 2004-01-07  Martin Baulig  <martin@ximian.com>
4683
4684         * mono-debug-debugger.h
4685         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
4686
4687 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
4688
4689         * appdomain.c: Use messages in NotImplementedException.
4690
4691         * exception.c (mono_get_exception_not_implemented): Now this takes
4692         a message argument.
4693
4694         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
4695         exception instead of g_asserting an aborting when something is not
4696         implemented.
4697
4698         Add some inline docs.
4699
4700 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
4701
4702         * reflection.h: Update after changes to object layout.
4703
4704         * reflection.c: Implement saving of unmanaged aka win32 resources.
4705
4706         * appdomain.c: Bump version number.
4707
4708         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
4709         Handle missing domains gracefully.
4710
4711 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
4712
4713         * file-io.c : On Windows, there are much more invalid_path_chars.
4714
4715 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
4716
4717         * class.h, object.c: prepare for GetType () speedup.
4718
4719 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
4720
4721         * profiler.c: workaround for --profile null reference exception on
4722           cygwin. Patch by Patrik Torstensson.
4723
4724 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
4725
4726         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
4727         make work for unaligned access.
4728
4729 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
4730
4731         * class.c: small cleanup (class->fields [i] -> field).
4732         * image.c: check address of metadata is valid.
4733
4734 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
4735
4736         * assembly.h assembly.c (mono_assembly_loaded): New public function to
4737         search the list of loaded assemblies.
4738
4739         * reflection.c (mono_reflection_type_from_name): Use 
4740         mono_assembly_loaded instead of mono_image_loaded.
4741
4742         * reflection.c: Fix warnings.
4743
4744 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
4745
4746         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
4747         is dynamic. This is needed since an assembly can contain both dynamic and
4748         non-dynamic images.
4749
4750         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
4751         assembly->dynamic.
4752
4753         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
4754
4755         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
4756         to store modules loaded using AddModule.
4757
4758         * reflection.c (mono_image_fill_file_table): Generalize this so it works
4759         on Modules.
4760
4761         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
4762
4763         * reflection.c (mono_image_fill_export_table_from_module): New function to
4764         fill out the EXPORTEDTYPES table from a module.
4765
4766         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
4767         into a separate function. Also handle loaded non-dynamic modules.
4768
4769         * reflection.c (mono_image_basic_init): Fix memory allocation.
4770
4771         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4772
4773         * assembly.c (mono_assembly_load_references): Make this public.
4774
4775 2003-12-19  Martin Baulig  <martin@ximian.com>
4776
4777         * class.c (mono_class_initialize_generic): Made this static, take
4778         a `MonoGenericInst *' instead of a `MonoClass *'.
4779         (mono_class_from_generic): Call mono_class_initialize_generic()
4780         unless we're already initialized or being called from
4781         do_mono_metadata_parse_generic_inst().
4782
4783         * class.h (MonoGenericInst): Added `initialized' and
4784         `init_pending' flags.
4785
4786         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
4787         `mono_class_init (gklass)' or mono_class_initialize_generic()
4788         here; set `generic_inst->init_pending' while parsing the
4789         `type_argv'.
4790
4791 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
4792
4793         * locales.c: include string.h for memxxx prototypes
4794
4795 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
4796
4797         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
4798         constructor when accessing literal fields.
4799
4800 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
4801
4802         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4803
4804         * reflection.c (assembly_add_resource_manifest): New function to fill
4805         the MANIFESTRESOURCE table.
4806
4807         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
4808
4809         * reflection.h: Update to changes in class layout.
4810
4811         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
4812         Reenable call to mono_runtime_is_shutting_down ().
4813
4814         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
4815         determine if the runtime is shutting down.
4816
4817 2003-12-16  Jackson Harper <jackson@ximian.com>
4818
4819         * icall.c: comment out call to mono_runtime_is_shutting_down to
4820         fix build.
4821         
4822 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
4823
4824         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
4825         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
4826
4827 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
4828
4829         * reflection.c: move definition of swap_with_size
4830         to before its first call
4831
4832 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
4833
4834         * appdomain.c (mono_runtime_is_shutting_down): New public function.
4835
4836         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
4837         icall.
4838
4839         * object.c: Fix warnings.
4840
4841         * icall.c (ves_icall_Type_Get...): Only consider inherited static
4842         members if FlattenHierarchy is set.
4843
4844         * reflection.c (mono_image_add_decl_security): New function to emit
4845         declarative security.
4846
4847         * reflection.h reflection.c: Add support for declarative security.
4848
4849         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
4850         
4851 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
4852
4853         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
4854         
4855         * appdomain.c verify.c: Moved corlib version checking into its own
4856         function in appdomain.c since it needs to create vtables etc.
4857
4858 2003-12-13  Patrik Torstensson <p@rxc.se>
4859
4860         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
4861         instead of unwrapped server.
4862
4863 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
4864
4865         * verify.c (check_corlib): Fix field index.
4866
4867 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
4868
4869         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
4870         GetGacPath icall.
4871
4872 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
4873
4874         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
4875         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
4876         cope with sizeof(size_t) != sizeof(guint32).
4877
4878 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4879
4880         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
4881         in case of failure.
4882
4883 2003-12-10  Mark Crichton <crichton@gimp.org>
4884
4885         * icall.c: removed the GetNonZeroBytes.  We now handle this case
4886         in managed code.
4887
4888         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
4889
4890 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
4891
4892         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
4893         marked as deleted.
4894
4895 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
4896
4897         * verify.c (check_corlib): Handle the case when the version field is 
4898         initialized by a static constructor.
4899
4900 2003-12-08  Patrik Torstensson  <p@rxc.se>
4901
4902     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
4903
4904 2003-12-08  Martin Baulig  <martin@ximian.com>
4905
4906         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
4907         a MonoReflectionGenericParameter, also take the parameter index
4908         and name as arguments.
4909         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
4910         (ves_icall_MonoGenericParam_initialize): New interncall.
4911         (ves_icall_Type_make_byref_type): New interncall.
4912
4913         * reflection.h (MonoReflectionGenericParam): Derive from
4914         MonoReflectionType, not just from MonoObject.  Added `refobj' and
4915         `index' fields.
4916
4917         * reflection.c (mono_reflection_define_generic_parameter): Create
4918         and return a new MonoReflectionGenericParam; don't initialize the
4919         constraints here.
4920         (mono_reflection_initialize_generic_parameter): New public method;
4921         initializes the constraints and creates the `param->pklass'.
4922
4923 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
4924
4925         * reflection.h reflection.c: Use the new fields 'num_types', 
4926         'num_fields' and 'num_methods' to track the number of types etc.
4927
4928         * verify.c (check_corlib): Check corlib version number.
4929
4930 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
4931
4932         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
4933         function works on all methods.
4934
4935 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
4936
4937         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
4938         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
4939         the custom_type_info flag of the transparent proxy.
4940         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
4941         objects that supports IRemotingTypeInfo.
4942         * object.h: Added custom_type_info field in transparent proxy.
4943
4944 2003-12-06  Martin Baulig  <martin@ximian.com>
4945
4946         * class.c (mono_class_create_from_generic): Removed.
4947         (mono_class_from_generic): Check `ginst->klass' before doing
4948         anything else.  This is important to fully support "recursive"
4949         generic types.
4950
4951         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
4952         empty `generic_inst->klass' before doing anything else.
4953
4954 2003-12-06  Dick Porter  <dick@ximian.com>
4955
4956         * verify.c: 
4957         * object.h:
4958         * icall.c:
4959         * locales.c: Use C structs to access class fields.  Don't do a
4960         conversion between MonoString and UChar because both are
4961         platform-endian UTF-16.  Compare now takes startindex and count
4962         parameters.  Add a char overload for IndexOf.  Speed up the
4963         invariant string IndexOf.
4964
4965 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
4966
4967         * Makefile.am (monosn_LDADD): Fix parallel build.
4968
4969 2003-12-04  Martin Baulig  <martin@ximian.com>
4970
4971         * icall.c
4972         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
4973         (ves_icall_Type_make_array_type): New interncall.       
4974
4975 2003-12-04  Martin Baulig  <martin@ximian.com>
4976
4977         * locales.c: also change it in the !HAVE_ICU case.
4978
4979 2003-12-04  Dick Porter  <dick@ximian.com>
4980
4981         * icall.c:
4982         * locales.c: construct_compareinfo is now in CompareInfo, not
4983         CultureInfo.
4984
4985 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
4986
4987         * image.c (mono_image_load_file_for_image): Cache loaded images in the
4988         image->files array.
4989
4990         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
4991         table as well.
4992
4993         * assembly.c (mono_assembly_load_references): Only load references
4994         once.
4995
4996         * class.c (mono_class_from_name): Avoid linear search of the 
4997         EXPORTEDTYPE table.
4998
4999         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5000
5001 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5002
5003         * image.h (MonoImage): Add 'field_cache' field.
5004
5005         * loader.c (mono_field_from_token): Cache field lookups.
5006         
5007         * reflection.c (mono_module_get_object): Fix name property.
5008
5009         * icall.c (ves_icall_get_enum_info): Update after changes to 
5010         mono_metadata_get_constant_index ().
5011
5012         * icall.c: Get rid of get_type_info icall, use a separate icall for
5013         each type property to avoid needless memory allocations. Fixes #51514.
5014
5015         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5016         to avoid needless binary searches.
5017
5018         * class.c (class_compute_field_layout): Move the initialization of
5019         field->def_value to mono_class_vtable ().
5020
5021         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5022         non-corlib types.
5023
5024         * object.c (mono_object_allocate): Make it inline.
5025
5026         * object.c (mono_object_allocate_spec): Make it inline.
5027         
5028 2003-12-02  Dick Porter  <dick@ximian.com>
5029
5030         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5031         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5032
5033 2003-12-01  Dick Porter  <dick@ximian.com>
5034
5035         * threads.c: Fix signature and call in CreateMutex and
5036         CreateEvent.
5037
5038 2003-12-01  Dick Porter  <dick@ximian.com>
5039
5040         * icall.c: 
5041         * locales.c: Implement string compares and searching
5042
5043         * object.h: Add extra Thread field
5044
5045 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5046
5047         * reflection.c (fixup_method): Add support for MonoCMethod.
5048
5049 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5050
5051         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5052
5053         * reflection.c (assembly_name_to_aname): Allow extra characters in
5054         assembly names. Fixes #51468.
5055
5056 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5057
5058         * exception.c (mono_exception_from_name_domain): New helper function.
5059
5060         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5061         exception object in the correct domain.
5062
5063         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5064         formatting + make a copy a the input data.
5065
5066         * loader.c (mono_get_method_from_token): Methods which contain
5067         native code do not have entries in the ImplMap.
5068
5069         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5070         Thanks to Gonzalo for spotting this.
5071         
5072         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5073         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5074
5075         * assembly.h (mono_assembly_load_from): Split the second part of 
5076         assembly loading into a new public function.
5077
5078         * exception.h (mono_get_exception_bad_image_format): New function.
5079
5080 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5081
5082         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5083         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5084         
5085         * icall.c: Add new icall for creating dynamic methods.
5086
5087         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5088
5089         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5090
5091         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5092         create a dynamic method.
5093
5094         * reflection.c (resolve_object): New helper function.
5095
5096         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5097         which manipulate it so they can also work on dynamic methods.
5098
5099         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5100         creating the MonoReflectionMethodAux structure if it is not needed.
5101         
5102         * reflection.h verify.c: Update after changes to object layout.
5103
5104         * reflection.c (method_builder_encode_signature): Fix compilation on
5105         gcc 2.95.x.
5106
5107 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5108
5109         * appdomain.h: Added support for context static fields. Added static_data
5110           field to MonoAppContext and renamed thread_static_fields to a more
5111           generic special_static_fields in MonoAppDomain, since it can now contain
5112           context static fields.
5113         * domain.c: Updated hashtable name.
5114         * object.c: Replaced field_is_thread_static() for a more generic
5115           field_is_special_static() which also checks for context static attribute.
5116           In mono_class_vtable(), added support for static context fields.
5117         * threads.c: Changed methods that manage thread static fields to more
5118           generic methods so they can be reused both for thread and context static
5119           data.
5120         * threads.h: Declared some new methods.
5121
5122 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5123
5124         * reflection.h: Update after changes to the managed types.
5125
5126         * reflection.c (encode_custom_modifiers): New helper function.
5127
5128         * reflection.c (method_encode_signature): Emit custom modifiers.
5129
5130         * reflection.c (field_encode_signature): Emit custom modifiers.
5131
5132 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5133
5134         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5135
5136         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5137         implementation.
5138
5139         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5140         icall.
5141
5142         * object.c (mono_field_get_value_object): New function.
5143
5144         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5145         specific.
5146
5147 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5148
5149         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5150         return a preallocated out-of-memory exception instance.
5151
5152         * object.c (out_of_memory): Use the new function.
5153
5154         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5155         flag is before the custom modifiers. Fixes #49802.
5156
5157 2003-11-16  Martin Baulig  <martin@ximian.com>
5158
5159         * class.c (mono_class_is_open_constructed_type): Implemented the
5160         MONO_TYPE_GENERICINST case.
5161
5162 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5163
5164         * assembly.c (mono_assembly_fill_assembly_name): New function to
5165         fill out the MonoAssemblyName structure.
5166         (mono_assembly_open): Use the new function.
5167
5168         * icall.c (fill_reflection_assembly_name): New helper function.
5169
5170         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5171         new function.
5172
5173         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5174
5175 2003-11-15  Martin Baulig  <martin@ximian.com>
5176
5177         * class.c (mono_class_is_open_constructed_type): New public
5178         function; checks whether a type is an open constructed type,
5179         ie. whether it still contains type parameters.
5180         (mono_class_inflate_generic_type): If we're a type parameter and
5181         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5182         type.
5183
5184         * class.h (MonoGenericInst): Added `guint32 is_open'.
5185
5186         * loader.c (method_from_methodspec): Check whether we're an open
5187         or closed constructed type and set `ginst->is_open'.
5188
5189         * reflection.c (mono_reflection_bind_generic_parameters): Check
5190         whether we're an open or closed constructed type and set
5191         `ginst->is_open'.
5192         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5193         from open constructed types.
5194
5195 2003-11-15  Martin Baulig  <martin@ximian.com>
5196
5197         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5198         a generic instance (instead of a generic type declaration) with
5199         unbound generic parameters, bind them to our actual types.
5200
5201 2003-11-14  Martin Baulig  <martin@ximian.com>
5202
5203         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5204
5205         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5206         an interface type, populate `res->interfaces' with instantiated
5207         versions of all the interfaces we inherit.
5208
5209 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5210
5211         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5212         when MONO_PATH is set but doesn't contain the install dir.
5213
5214 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5215
5216         * icall.c:
5217         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5218         it's also implemented in base classes. Fixes bug #50927.
5219
5220 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5221
5222         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5223         if this method is called from a finalizer. Fixes #50913.
5224
5225 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5226
5227         * threads.c: Implement VolatileRead/VolatileWrite
5228
5229         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5230
5231 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5232
5233         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5234         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5235         2.95.3.
5236
5237         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5238         from Peter Ross (pro@missioncriticalit.com).
5239         
5240 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5241
5242         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5243
5244 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5245
5246         * assembly.c (mono_assembly_load_references): Disable check because it
5247         triggers on older corlibs which lots of people have.
5248
5249 2003-11-12  Jackson Harper  <jackson@ximian.com>
5250
5251         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5252         load corlib.dll if mscorlib.dll is not found.
5253         * assembly.h: Remove corlib name define.
5254         * class.c:
5255         * domain.c:
5256         * image.c: Change corlib name to mscorlib.
5257         
5258 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5259
5260         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5261
5262 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5263
5264         * appdomain.h: Added loader_optimization here to sync with the C#
5265         code, and add disallow_binding_redirects field.
5266
5267 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5268
5269         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5270
5271         * reflection.c (mono_image_build_metadata): Fix crash on modules
5272         with no types.
5273
5274         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5275
5276         * icall.c (ves_icall_get_method_info): Return callingConvention as
5277         well.
5278
5279         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5280         namespaces from the EXPORTEDTYPE table as well.
5281
5282         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5283         from all modules inside the assembly.
5284         
5285 2003-11-11  Martin Baulig  <martin@ximian.com>
5286
5287         * reflection.c (mono_reflection_bind_generic_parameters): Make
5288         this work for interfaces.
5289
5290 2003-11-11  Martin Baulig  <martin@ximian.com>
5291
5292         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5293
5294 2003-11-11  Martin Baulig  <martin@ximian.com>
5295
5296         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5297         "MonoInflatedMethod" and "MonoInflatedCtor".
5298
5299 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5300
5301         * reflection.c (resolution_scope_from_image): Use the assembly table
5302         from the manifest module, since other modules don't have it.
5303
5304         * debug-helpers.c (mono_type_full_name): New helper function.
5305
5306         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5307
5308         * image.c (mono_image_load_file_for_image): New public function which
5309         is a replacement for the load_file_for_image in class.c.
5310
5311         * assembly.c (mono_assembly_load_module): A wrapper for the function
5312         above which does assembly association and reference loading too.
5313
5314         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5315
5316 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5317
5318         * appdomain.c: not all of the attributes for the full assembly name
5319         are required and the order doesn't matter. Fixes bug #50787.
5320
5321 2003-11-10  Dick Porter  <dick@ximian.com>
5322
5323         * locales.c: Use platform-endian UTF16
5324
5325 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5326
5327         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5328         
5329 2003-11-10  Martin Baulig  <martin@ximian.com>
5330
5331         * metadata.c
5332         (mono_metadata_load_generic_params): Make this actually work.
5333
5334         * reflection.c (mono_reflection_bind_generic_parameters): If our
5335         parent is a generic instance, pass all the `types' to it, no
5336         matter whether it has the same number of type parameters or not.
5337
5338 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5339
5340         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5341
5342         * assembly.c (mono_assembly_load_references): Move the image<->assembly
5343         assignment code to this function so it gets called recursively for all
5344         modules.
5345
5346         * image.c (load_modules): Remove the assembly assignment since it is
5347         now done by mono_assembly_load_references.
5348         
5349         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5350         Add 'module' argument.
5351         (mono_module_get_types): New helper function.
5352         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
5353
5354 2003-11-08  Martin Baulig  <martin@ximian.com>
5355
5356         * class.c (mono_class_inflate_generic_method): Interface method
5357         don't have a header.
5358
5359         * reflection.c (mono_image_get_methodspec_token): Take an
5360         additional `MonoGenericInst *' argument instead of reading it from
5361         the header; this is necessary to support interfaces.
5362         (mono_image_create_token): Pass the `MonoGenericInst *' from the
5363         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
5364         (inflated_method_get_object): Take an additional `MonoGenericInst *'
5365         argument.
5366
5367         * reflection.h (MonoReflectionInflatedMethod): Added
5368         `MonoGenericInst *ginst'.
5369
5370 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
5371
5372         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
5373
5374 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
5375
5376         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
5377
5378 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
5379
5380         * reflection.c 
5381         (reflection_methodbuilder_from_method_builder):
5382         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
5383         initialize a ReflectionMethodBuilder structure.
5384         (mono_image_get_methodbuilder_token):
5385         (mono_image_get_ctorbuilder_token): New functions to emit memberref
5386         tokens which point to types in another module inside the same assembly.
5387
5388         * reflection.c: Use the new helper functions.
5389         
5390         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
5391
5392         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
5393         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
5394
5395         * reflection.c (resolution_scope_from_image): Emit a moduleref if
5396         neccesary.
5397
5398         * reflection.c (mono_image_build_metadata): Emit metadata only for the
5399         current module. Emit the manifest only for the main module.
5400
5401         * reflection.c (mono_image_create_token): Add assertion when a 
5402         memberref needs to be created.
5403
5404         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
5405
5406         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
5407         larger buffer for the custom attribute blob. Fixes #50637.
5408         
5409 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5410
5411         * threadpool.c: notify listener on async processing handles after
5412         invoking the async callback. Thanks to Zoltan.
5413
5414 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5415
5416         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
5417         avoid code duplication.
5418
5419         * reflection.h (MonoDynamicImage): New type which is currently unused,
5420         but will be used through the ref.emit code in place of 
5421         MonoDynamicAssembly.
5422
5423         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5424         object layout.
5425
5426         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
5427         a MonoDynamicImage instead of just a MonoImage.
5428         
5429         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
5430         icalls to ModuleBuilder but keep their semantics, so they will work
5431         with moduleb->assemblyb. This will change later.
5432         
5433 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5434
5435         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5436         object layout.
5437
5438         * reflection.c (mono_image_build_metadata): Avoid creation of a default
5439         main module, since it is now done by the managed code.
5440
5441 2003-11-03  Martin Baulig  <martin@ximian.com>
5442
5443         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
5444         `ginst->klass' here.
5445         (method_encode_methodspec): Don't use the `ginst->generic_method's
5446         klass if it's a generic instance, use `ginst->klass' in this case.
5447
5448 2003-11-03  Martin Baulig  <martin@ximian.com>
5449
5450         * reflection.c (mono_image_get_generic_method_param_info):
5451         Removed, use mono_image_get_generic_param_info() instead.
5452         (mono_image_get_type_info): Write the GenericParam table before
5453         the Method table.  This is neccessary because in the GenericParam
5454         table, type parameters of the class (ie. '!0' etc.) must come
5455         before the ones from its generic methods (ie. '!!0' etc).
5456
5457 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5458
5459         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
5460
5461 2003-11-02  Martin Baulig  <martin@ximian.com>
5462
5463         * reflection.c (create_generic_typespec): Take a
5464         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
5465         the generic parameters from it.
5466
5467 2003-11-02  Martin Baulig  <martin@ximian.com>
5468
5469         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
5470         instead of a `MonoClassField *' since we just need the type.
5471         (create_generic_typespec): New static function.  Creates a
5472         TypeSpec token for a generic type declaration.
5473         (mono_image_get_generic_field_token): New static function.
5474         (mono_image_create_token): If we're a FieldBuilder in a generic
5475         type declaration, call mono_image_get_generic_field_token() to get
5476         the token.
5477
5478 2003-11-02  Martin Baulig  <martin@ximian.com>
5479
5480         * reflection.h
5481         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
5482         `MonoReflectionGenericInst *declaring_type' and
5483         `MonoReflectionGenericInst *reflected_type' fields.
5484
5485         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
5486         `MonoReflectionGenericInst *declaring_type' and a
5487         `MonoReflectionGenericInst *reflected_type' argument instead of a
5488         single `MonoReflectionGenericInst *type' one.  Set
5489         `res->declaring_type' and `res->reflected_type' from them.
5490         (mono_reflection_inflate_field): Likewise.      
5491
5492 2003-11-02  Martin Baulig  <martin@ximian.com>
5493
5494         * class.c (mono_class_setup_vtable): Don't store generic methods
5495         in the vtable.  
5496
5497 2003-11-02  Martin Baulig  <martin@ximian.com>
5498
5499         * reflection.h (MonoReflectionGenericInst): Added
5500         `MonoReflectionType *declaring_type'.
5501
5502         * reflection.c (mono_reflection_bind_generic_parameters): Use
5503         `if (tb->parent)' instead of `klass->parent'.
5504
5505 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
5506
5507         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
5508         with an empty ASSEMBLY table.
5509
5510         * reflection.c (mono_image_build_metadata): Avoid using the same loop
5511         variable in the inner and outer loops.
5512
5513 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
5514
5515         * metadata.h (mono_metadata_make_token): Put parentheses around macro
5516         argument.
5517
5518         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
5519         
5520         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
5521         icalls. Instead, do everything in managed code. This is needed since
5522         it is hard to restore the original domain etc. in unmanaged code in the
5523         presence of undeniable exceptions.
5524
5525         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
5526         New icalls to push and pop appdomain refs.
5527
5528 2003-10-31  Martin Baulig  <martin@ximian.com>
5529
5530         * class.c (inflate_generic_type): Renamed to
5531         mono_class_inflate_generic_type() and made it public.
5532
5533         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
5534         New interncall.
5535
5536         * loader.c (mono_field_from_memberref): Also set the retklass for
5537         typespecs.
5538
5539         * fielder.c (mono_image_get_inflated_field_token): New static
5540         method; creates a metadata token for an inflated field.
5541         (mono_image_create_token, fixup_method): Added support for
5542         "MonoInflatedField".
5543         (fieldbuilder_to_mono_class_field): New static function.
5544         (mono_reflection_inflate_field): New public function.
5545
5546         * reflection.h
5547         (MonoReflectionGenericInst): Added `MonoArray *fields'.
5548         (MonoReflectionInflatedField): New typedef.     
5549
5550 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
5551
5552         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
5553         for Solaris and other platforms without s6_addr16
5554
5555 2003-10-30  Martin Baulig  <martin@ximian.com>
5556
5557         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
5558         argument instead of two.
5559         (mono_class_inflate_generic_signature): Likewise.
5560         (inflate_generic_header): Likewise.
5561         (mono_class_inflate_generic_method): Likewise.  In addition, if
5562         `ginst->klass' is set, it becomes the new `method->klass'.
5563
5564         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
5565         field.
5566
5567         * reflection.c (encode_generic_method_sig): Write a 0xa as the
5568         first byte. [FIXME]
5569         (method_encode_methodspec): If we have generic parameters, create
5570         a MethodSpec instead of a MethodRef.
5571         (fixup_method): Added support for "MonoInflatedMethod" and
5572         "MonoInflatedCtor".
5573         (mono_image_create_token): Added support for "MonoInflatedMethod"
5574         and "MonoInflatedCtor".
5575         (inflated_method_get_object): New static function; returns a
5576         managed "System.Reflection.MonoInflatedMethod" object.
5577         (mono_reflection_bind_generic_method_parameters): Return a
5578         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
5579         (mono_reflection_inflate_method_or_ctor): Likewise.
5580         (mono_image_get_generic_method_param_info): Initialize unused
5581         fields to zero.
5582         (mono_image_get_generic_param_info): Likewise.
5583
5584         * reflection.h (MonoReflectionInflatedMethod): New public
5585         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
5586         "S.R.MonoInflatedCtor" classes.
5587
5588         * loader.c (method_from_memberref): If we're a TypeSpec and it
5589         resolves to a generic instance, inflate the method.
5590
5591 2003-10-28  Dick Porter  <dick@ximian.com>
5592
5593         * object.c (mono_runtime_run_main): Convert command-line arguments
5594         into utf8, falling back to the user's locale encoding to do so.
5595
5596 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
5597
5598         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
5599         at this time.
5600
5601         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
5602
5603         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
5604         up icalls at method definition time. Partially fixes #33569.
5605
5606 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
5607
5608         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
5609         marshalling of arrays. Fixes #50116.
5610
5611         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
5612
5613         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
5614         points to a vtable in the dying appdomain.
5615
5616         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
5617         listeners into unmanaged code inside the lock.
5618
5619         * object.c (mono_class_vtable): Turn off typed allocation in non-root
5620         domains and add some comments.
5621
5622 2003-10-25  Martin Baulig  <martin@ximian.com>
5623
5624         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
5625
5626         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
5627
5628         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
5629         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
5630         currently parsing.  Create the generic class and store it in
5631         `generic_inst->klass' before parsing the type arguments.  This is
5632         required to support "recursive" definitions; see mcs/tests/gen-23.cs
5633         for an example.
5634         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
5635         to support recursive typespec entries.
5636
5637         * class.c (mono_class_setup_parent): If our parent is a generic
5638         instance, we may get called before it has its name set.
5639         (mono_class_from_generic): Splitted into
5640         mono_class_create_from_generic() and mono_class_initialize_generic().
5641
5642 2003-10-25  Martin Baulig  <martin@ximian.com>
5643
5644         * icall.c (ves_icall_Type_BindGenericParameters): Return a
5645         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
5646         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
5647         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
5648
5649         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
5650         (create_typespec): Likewise.
5651         (mono_reflection_bind_generic_parameters): Return a
5652         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
5653         (mono_reflection_inflate_method_or_ctor): New public function.
5654
5655         * reflection.h (MonoReflectionGenericInst): New typedef.        
5656
5657 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
5658
5659         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
5660         inside the domain lock. Fixes #49993.
5661         
5662         * object.c (mono_class_vtable): When typed allocation is used, 
5663         allocate vtables in the GC heap instead of in the mempool, since the
5664         vtables contain GC descriptors which are used by the collector even
5665         after the domain owning the mempool is unloaded.
5666
5667         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
5668
5669         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
5670         reflect what it does. Also invalidate mempools instead of freeing
5671         them if a define is set.
5672
5673         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
5674         of the appdomain.
5675         
5676         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
5677         hold the finalizable objects in this domain.
5678
5679         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
5680         appdomain.
5681
5682         * appdomain.c (mono_domain_set): New function to set the current
5683         appdomain, but only if it is not being unloaded.
5684
5685         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
5686         appdomain which is being unloaded.
5687         
5688         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
5689         unloading of the root appdomain.
5690
5691         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
5692         icall to execute a method in another appdomain. Intended as a 
5693         replacement for InternalSetDomain, which can confuse the code 
5694         generation in the JIT.
5695
5696         * appdomain.c (mono_domain_is_unloading): New function to determine
5697         whenever an appdomain is unloading.
5698
5699         * appdomain.c (mono_domain_unload): New function to correctly unload
5700         an appdomain.
5701
5702         * assembly.c (mono_assembly_load_references): Check that an assembly
5703         does not references itself.
5704
5705         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
5706         domain manually, it asks the finalizer thread to do it, then waits for
5707         the result. Also added a timeout.
5708
5709         * icall.c: Register the new icalls.
5710
5711         * threads.h threads.c: Export the mono_gc_stop_world and 
5712         mono_gc_start_world functions.
5713         
5714         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
5715         function to fill out the mempool with 0x2a.
5716
5717 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
5718
5719         * reflection.h (MonoReflectionMethodAux): New structure to store
5720         information which is rarely used, thus is not in the MonoMethod
5721         structure.
5722
5723         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
5724         store the aux info.
5725
5726         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
5727         and marshalling info into the aux structure.
5728
5729         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
5730         from the aux structure.
5731
5732         * loader.c (mono_method_get_param_names): Retrieve the param names from
5733         the aux structure.
5734         
5735 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
5736
5737         * exception.h exception.c: Add AppDomainUnloadedException && fix 
5738         warning.
5739
5740 2003-10-21  Dick Porter  <dick@ximian.com>
5741
5742         * socket-io.c
5743         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
5744         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
5745
5746 2003-10-21  Martin Baulig  <martin@ximian.com>
5747
5748         * reflection.c (mono_reflection_bind_generic_parameters):
5749         `klass->parent' is NULL for interfaces.
5750
5751 2003-10-21  Martin Baulig  <martin@ximian.com>
5752
5753         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5754
5755 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
5756
5757         * exception.c (mono_exception_from_name_msg): New helper function for
5758         creating exceptions and initializing their message field.
5759
5760         * exception.c: Simplify functions using the new helper.
5761
5762         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
5763         New function.
5764
5765         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
5766         mono_raise_exception, since otherwise gcc doesn't generate the function
5767         epilog for raise_exception, confusing the stack unwinding in the JIT.
5768         Fixes #45043.
5769
5770         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
5771         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
5772         Fixes #49499.
5773
5774 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5775
5776         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
5777         utf8.
5778
5779 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
5780
5781         * icall.c: Removed GetUninitializedObject method because
5782           AllocateUninitializedClassInstance does the same.
5783
5784 2003-10-18  Martin Baulig  <martin@ximian.com>
5785
5786         * class.c (inflate_generic_signature): Renamed to
5787         mono_class_inflate_generic_signature() and made it public.
5788         (my_mono_class_from_generic_parameter): New static function; if we
5789         don't already have the generic parameter's MonoClass, create a
5790         very simple one which is just used internally in the runtime and
5791         not passed back to managed code.
5792
5793         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
5794
5795         * metadata.h (MonoMethodSignature): Moved the
5796         `MonoGenericParam *gen_params' to the MonoMethodHeader.
5797         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
5798
5799         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
5800         ves_icall_MonoMethod_GetGenericArguments(); this is now an
5801         interncall on the MonoMethod class, not on MethodInfo.
5802         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
5803         calling mono_reflection_bind_generic_method_parameters() directly.
5804
5805         * loader.c (mono_method_get_signature): If this is a MethodSpec;
5806         return the already computed `method->signature'.
5807         (method_from_methodspec): New static function to load a method
5808         from a MethodSpec entry.
5809         (mono_get_method_from_token): Call the new method_from_methodspec()
5810         for MethodSpec tokens.  
5811         (mono_get_method_from_token): If we're a generic method, load the
5812         type parameters.
5813
5814         * reflection.c (mono_image_get_memberref_token): Allow
5815         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
5816         table.
5817         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
5818         (mono_image_create_token): First check whether it's a generic
5819         method (so we'd need to create a MethodSpec), then do the other
5820         two alternatives.
5821         (mono_reflection_bind_generic_method_parameters): Return a
5822         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
5823         called directly from the interncall.
5824
5825 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
5826
5827         * reflection.c (load_public_key): Move loading of the public key
5828         into managed code.
5829
5830         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
5831
5832         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
5833         fields.
5834
5835         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
5836         culture, hash_alg and public_key. Fixes #49555.
5837
5838 2003-10-17  Martin Baulig  <martin@ximian.com>
5839
5840         * class.h (MonoGenericInst): Moved this declaration here and added
5841         `MonoMethod *generic_method'.
5842
5843         * icall.c
5844         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
5845         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
5846
5847         * metadata.c (mono_metadata_type_equal): Two types of
5848         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
5849         index; ie. don't compare the address of the `MonoGenericParam'
5850         structure.
5851         (mono_metadata_load_generic_params): Removed the `MonoMethod
5852         *method' argument.
5853
5854         * metadata.h (MonoGenericInst): Moved declaration to class.h.
5855         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
5856
5857         * reflection.c (method_encode_signature): Encode the number of
5858         generic parameters.
5859         (encode_generic_method_sig): New static function.
5860         (method_encode_methodspec): New static function; creates an entry
5861         in the MethodSpec table for a generic method.
5862         (mono_image_get_methodspec_token): New static function.
5863         (mono_image_create_token): Call mono_image_get_methodspec_token()
5864         for generic methods.
5865         (mono_reflection_bind_generic_method_parameters): New public
5866         function.  Instantiates a generic method.
5867
5868 2003-10-16  Martin Baulig  <martin@ximian.com>
5869
5870         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
5871         *gen_params' here from MonoMethodHeader.
5872
5873         * metadata.c (mono_metadata_parse_method_signature): If we have
5874         generic parameters, initialize `method->gen_params' and then set
5875         the correct `type->data.generic_param' in all the parameters.
5876
5877 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
5878
5879         * threads.c (mono_threads_get_default_stacksize): New function to 
5880         return the default stacksize.
5881
5882         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
5883         termination of the finalizer thread, since the previous method had
5884         race conditions. Fixes #49628.
5885
5886         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
5887         as for the other managed threads.
5888
5889 2003-10-16  Martin Baulig  <martin@ximian.com>
5890
5891         * class.c (inflate_generic_signature): Copy `generic_param_count'
5892         and `gen_params'.
5893
5894         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
5895         New interncall.
5896
5897         * metadata.c (mono_metadata_parse_method_signature): Actually set
5898         the `method->generic_param_count' here.
5899         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
5900
5901 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
5902
5903         * object.h: Add a new field to TypedRef to simplify the implementation
5904         of the REFANY opcodes in the JIT.
5905
5906         * icall.c: Make use of the new field.
5907
5908         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
5909         dynamically.
5910
5911 2003-10-15  Martin Baulig  <martin@ximian.com>
5912
5913         * class.c (mono_class_from_gen_param): Renamed to
5914         mono_class_from_generic_parameter() and moved most of the
5915         functionality from mono_reflection_define_generic_parameter()
5916         here; ie. we create a "real" class here.
5917         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
5918         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
5919         previously been called.
5920
5921         * class.h (MonoGenericParam): Moved the declaration of this struct
5922         here from metadata.h and added `MonoMethod *method'.
5923
5924         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
5925         interncall.
5926
5927         * loader.c (mono_get_method_from_token): If we have any generic
5928         parameters, call mono_metadata_load_generic_params() to read them
5929         from the MONO_TABLE_GENERICPAR.
5930
5931         * metadata.c (mono_metadata_load_generic_params): Added
5932         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
5933
5934         * metadata.h (MonoMethodSignature): Replaced
5935         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
5936         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
5937
5938         * reflection.c (mono_reflection_define_generic_parameter): Moved
5939         most of the functionality into the new
5940         mono_class_from_generic_parameter(); set the `method' field if
5941         we're a method parameter.       
5942
5943 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
5944
5945         * marshal.c (emit_struct_conv): if native size is 0
5946         emit no code.
5947
5948 2003-10-14  Martin Baulig  <martin@ximian.com>
5949
5950         * icall.c: The generics API has changed in the spec since it was
5951         added to System.Type; these modifications make it match the spec
5952         again.
5953         (ves_icall_Type_GetGenericParameters): Renamed to
5954         `ves_icall_Type_GetGenericArguments'.
5955         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
5956         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
5957         `ves_icall_MonoType_get_HasGenericArguments'.
5958         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
5959         `ves_icall_MonoType_get_IsGenericParameter'.
5960         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
5961         this is no interncall anymore.
5962         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
5963         `ves_icall_TypeBuilder_get_IsGenericParameter'.
5964
5965 2003-10-14  Martin Baulig  <martin@ximian.com>
5966
5967         * reflection.c (mono_reflection_bind_generic_parameters): Also
5968         inflate generic methods if we're reading the class from IL.
5969
5970 2003-10-13  Martin Baulig  <martin@ximian.com>
5971
5972         * reflection.c (mono_reflection_define_generic_parameter): This
5973         method isn't called directly from the icall anymore; take a
5974         `MonoReflectionAssemblyBuilder *' so we can use this for type and
5975         method generic parameters.
5976         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
5977         (method_builder_encode_signature): Encode generic parameters.
5978         (mono_image_get_method_info): Write generic params to the
5979         MONO_TABLE_GENERICPARAM table.
5980
5981         * reflection.h (MonoReflectionMethodBuilder): Added
5982         `MonoArray *generic_params'.
5983
5984         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
5985
5986         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
5987         wrapper for mono_reflection_define_generic_parameter().
5988         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
5989
5990 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
5991
5992         * marshal.h: Add missing function to fix build.
5993
5994         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
5995         the SetLastError pinvoke attribute.
5996
5997         * marshal.c (mono_marshal_set_last_error): New helper function called
5998         by the generated code.
5999         
6000         * marshal.c (mono_mb_emit_branch): New helper function.
6001
6002         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6003
6004         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6005         classes as parameters and return values of delegates. Fixes #29256. 
6006
6007 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6008
6009         * locales.c: use gint32 in non HAVE_ICU case
6010
6011 2003-10-11  Martin Baulig  <martin@ximian.com>
6012
6013         * mono-debug.c (mono_debug_add_method): Added a workaround for
6014         bug #48591.
6015
6016 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6017
6018         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6019         delegates passed to native code must use the STDCALL calling 
6020         convention. Fixes #35987.
6021
6022 2003-10-10  Martin Baulig  <martin@ximian.com>
6023
6024         * class.c (inflate_generic_type): If we're inflating for a generic
6025         type instance (and not for a generic method), return
6026         MONO_TYPE_MVAR unchanged.
6027
6028 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6029
6030         * string-icalls.c: Join ignores null strings in the source array.
6031         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6032         * threads.c: GetAvailableTheads is slightly more accurate.
6033
6034 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6035
6036         * threads.h threads.c : add mono_threads_set_default_stacksize
6037         and pass default to CreateThread calls.
6038
6039 2003-10-09  Dick Porter  <dick@ximian.com>
6040
6041         * icall.c:
6042         * locales.h:
6043         * locales.c: Internal calls for constructing CultureInfo and
6044         related objects from libicu (if its available.)
6045
6046 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6047
6048         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6049
6050 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6051
6052         * threadpool.c: added an argument to async_invoke_thread that is the
6053         item to process, pass the MonoAsyncResult to the thread start function
6054         when creating a new thread. This way we don't need to acquire any lock
6055         when we're creating a new thread. Readded a semaphore for faster
6056         response times (instead of that Sleep i added).
6057
6058 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6059
6060         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6061         get daylight change dates better on Windows, fix handling
6062         of platforms without tm_gmtoff.
6063
6064 2003-10-06  Martin Baulig  <martin@ximian.com>
6065
6066         * class.c (inflate_generic_method): Renamed to
6067         mono_class_inflate_generic_method() and made public.
6068         (mono_class_init): Don't inflate the generic methods here.
6069         (mono_class_from_generic): Added `gboolean inflate_methods'
6070         argument.  Inflate the methods here.
6071
6072         * loader.c (mono_method_get_param_names): Ignore instances of
6073         generic types for the moment.
6074
6075         * reflection.c (fixup_method): Added support for inflated methods.
6076         (mono_image_create_token): Use mono_image_get_methodref_token()
6077         for inflated methods.
6078         (mono_custom_attrs_from_param): Ignore instances of generic types
6079         for the moment.
6080         (mono_reflection_bind_generic_parameters): New public function.
6081         Moved all the functionality from
6082         ves_icall_Type_BindGenericParameters() here and added support for
6083         dynamic types.
6084         (mono_reflection_define_generic_parameter): Initialize
6085         `klass->methods' here.
6086
6087         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6088         functionality into mono_reflection_define_generic_parameter().
6089         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6090         TypeBuilder, return that TypeBuilder.
6091
6092 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6093
6094         * appdomain.c: removed mono_delegate_semaphore.
6095
6096         * threadpool.c:
6097         (mono_thread_pool_add): moved hash table creation inside and the thread 
6098         creation outside of the critical region.
6099         (mono_thread_pool_finish): removed obsolete code.
6100         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6101         continue or exit the thread depending on the queue.
6102
6103 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6104
6105         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6106         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6107         handle more bool marshalling options
6108
6109 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6110
6111         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6112         arrays of structs. Also add a more descriptive error message when
6113         a structure member is marshalled as LPArray.
6114
6115 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6116
6117         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6118         marshalling arrays of complex types. Fixes #29098. Also remove an
6119         usused and incomplete function.
6120
6121 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6122
6123         * gc.c: report heap_size - free_bytes as total memory allocated
6124         (bug#49362).
6125
6126 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6127
6128         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6129         fix timezone handling problems on Windows.
6130         
6131         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6132         asserts when the year is outside the range handled by ms the functions.
6133
6134         * class.c (setup_interface_offsets): If the class is an interface,
6135         fill out its interface_offsets slot.
6136
6137 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6138
6139         * threadpool.c: mark threadpool threads as background.
6140
6141 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6142
6143         * decimal.c - define DECINLINE to nothing if not using GCC
6144
6145 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6146
6147         * assembly.c: More refcount fixes.
6148
6149 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6150
6151         * string-icalls.c: if we're not trimming, return the same string.
6152         When not splitting, don't create a new string.
6153
6154 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6155
6156         * image.c:
6157         (mono_image_open): increment the ref_count inside the critical section.
6158
6159 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6160
6161         * image.c (mono_image_open): Fix reference counting bug.
6162
6163 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6164
6165         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6166         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6167         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6168         mono_lookup_pinvoke_call throws.        
6169
6170 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6171
6172         * reflection.c (mono_reflection_parse_type): Fix #49114.
6173
6174         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6175         temporary workaround for cygwin header problem.
6176
6177         * object.c (mono_object_isinst): Synchronize this with the code
6178         generated by the JIT for casts.
6179
6180 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6181
6182         * reflection.c (encode_type): Fix #38332.
6183
6184 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6185
6186         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6187         the original method from the wrapper method.
6188
6189 2003-09-25  Martin Baulig  <martin@ximian.com>
6190
6191         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6192         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6193         (ves_icall_Type_get_IsGenericInstance): New interncall.
6194
6195 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6196
6197         * object.c: fix cast warning in big endian code.
6198
6199 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6200
6201         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6202         
6203 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6204
6205         * assembly.c: don't call check_env from mono_assembly_load. It's
6206         already done once in mono_assemblies_init and may cause headaches when
6207         multiple threads are loading assemblies.
6208
6209 2003-09-19  Martin Baulig  <martin@ximian.com>
6210
6211         * reflection.c (mono_reflection_define_generic_parameter): Don't
6212         allocate `klass->methods', set `klass->flags' to
6213         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6214
6215 2003-09-18  Martin Baulig  <martin@ximian.com>
6216
6217         * class.c (mono_class_init): Don't create `class->methods' if it's
6218         already initialized.
6219
6220         * metadata.c (mono_metadata_load_generic_params): Make this
6221         actually work.
6222
6223         * reflection.c (mono_reflection_define_generic_parameter): Set
6224         parent class and interfaces from the constraints.
6225
6226         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6227         to keep this struct in sync with the declaration in TypeBuilder.cs.
6228
6229 2003-09-17  Martin Baulig  <martin@ximian.com>
6230
6231         * metadata.h (MonoType): Replaced the data's `int type_param'
6232         field with `MonoGenericParam *generic_param'.
6233         (MonoGenericParam): Added `MonoClass *klass'.
6234
6235         * class.c (mono_class_from_gen_param): Removed the
6236         `MonoImage *image' and `int type_num' arguments.
6237
6238         * metadata.c (mono_metadata_parse_generic_param): New static
6239         method; creates a MonoGenericParam which just contains the index.
6240         (do_mono_metadata_parse_type): Call
6241         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6242         MONO_TYPE_MVAR.
6243
6244         * reflection.c (mono_image_typedef_or_ref): Generic type
6245         parameters may be in the same assembly, but never use a typedef
6246         for them.
6247         (mono_reflection_define_generic_parameter): We're now creating a
6248         "real" class for the type parameter; it's now safe to call
6249         mono_class_from_mono_type() on the class'es type, it'll do the
6250         right thing.
6251
6252 2003-09-16  Martin Baulig  <martin@ximian.com>
6253
6254         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6255         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6256         the `symfile' data structure must be fully initialized before it
6257         gets added to the table.
6258
6259 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6260
6261         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6262
6263         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6264         class init trampolines.
6265
6266 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6267
6268         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6269         to the built-in profiler to turn off time and allocation profiling
6270         respectively.
6271
6272 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6273
6274         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6275         g_direct_equal.
6276
6277         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6278         in human readable form.
6279
6280 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6281
6282         * reflection.c icall.c: Fixed warnings.
6283
6284         * image.c (load_class_names): Use a temporary hash table to hold the
6285         namespaces in order to avoid doing many string comparisons.
6286
6287         * image.h: Fix typo.
6288
6289         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6290         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6291         since the NULL case is short-circuited inside g_hash_table_lookup, 
6292         leading to better performance.  
6293
6294         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6295         obtain the first custom attribute for a given index. Depends on the
6296         CustomAttribute table being sorted by the parent field.
6297
6298         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6299         for better performance.
6300
6301 2003-09-07  Martin Baulig  <martin@ximian.com>
6302
6303         * class.c (mono_class_init): If we're a generic instance, inflate
6304         all our methods instead of loading them from the image.
6305         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6306
6307 2003-09-07  Martin Baulig  <martin@ximian.com>
6308
6309         * mono-debug-debugger.c: Added support for constructors.
6310
6311 2003-09-06  Martin Baulig  <martin@ximian.com>
6312
6313         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6314         New interncall.
6315
6316         * reflection.c (mono_reflection_setup_generic_class): Call
6317         ensure_runtime_vtable() to create the vtable.
6318
6319 2003-09-05  Martin Baulig  <martin@ximian.com>
6320
6321         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6322         MONO_TYPE_MVAR.
6323
6324 2003-09-04  Martin Baulig  <martin@ximian.com>
6325
6326         * reflection.c (mono_reflection_define_generic_parameter): Generic
6327         parameters start with zero.
6328
6329 2003-09-04  Martin Baulig  <martin@ximian.com>
6330
6331         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6332
6333         * reflection.h (MonoReflectionGenericParam): New typedef.
6334         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
6335         the generic parameters from the managed TypeBuilder.
6336
6337         * reflection.c (mono_reflection_define_generic_parameter): New function.
6338         (mono_reflection_create_runtime_class): Encode generic parameters.
6339         (mono_reflection_setup_generic_class): New function; this is
6340         called after adding adding all generic params to the TypeBuilder.
6341         (encode_type): Added MONO_TYPE_VAR.
6342
6343 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
6344
6345         * class.h class.c (mono_class_needs_cctor_run): Moved this method
6346         here from the JIT.
6347
6348         * assembly.h assembly.c: Moved the AOT loading code into an assembly
6349         load hook.
6350
6351 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
6352
6353         * reflection.h reflection.c class.h class.c: Delete duplicate 
6354         definition of mono_type_get_name () from reflection.c and export the
6355         one in class.c.
6356
6357         * class.c: Class loading fixes from Bernie Solomon 
6358         (bernard@ugsolutions.com).
6359
6360         * reflection.c: Endianness fixes from Bernie Solomon 
6361         (bernard@ugsolutions.com).
6362         
6363 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
6364
6365         * assembly.h assembly.c: Define a file format version for AOT
6366         libraries.
6367         
6368         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
6369
6370         * appdomain.h (MonoJitInfo): New field to determine whenever the
6371         code is domain neutral.
6372         
6373 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
6374
6375         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
6376
6377 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
6378
6379         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
6380         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
6381         Avoid caching the result since strings must be domain specific. Fixes
6382         #48050.
6383
6384 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
6385
6386         * marshal.c (mono_marshal_init): Make this callable multiple times
6387         since it is hard to find a correct place to call it.
6388
6389         * object.c (mono_runtime_class_init): Execute static constructors in
6390         the correct appdomain.
6391
6392         * image.c (build_guid_table): Handle the case when multiple images have
6393         the same GUID.
6394
6395 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6396
6397         * icall.c: added a couple of icalls for System.Web.
6398
6399 2003-08-28  Martin Baulig  <martin@ximian.com>
6400
6401         * icall.c (ves_icall_Type_BindGenericParameters): Use
6402         `klass->generic_inst' instead of `&klass->byval_arg' in the
6403         mono_type_get_object() call.  The returned type must be
6404         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
6405
6406 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
6407
6408         * NOTES: New file.
6409
6410         * object.c (mono_class_proxy_vtable): Make it thread safe.
6411
6412         * pedump.c: Fix warning.
6413
6414         * object.c appdomain.h: Get rid of metadata_section. 
6415         It is no longer needed and it was causing deadlocks with domain->lock.
6416
6417         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
6418
6419 2003-08-26  Martin Baulig  <martin@ximian.com>
6420
6421         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
6422
6423 2003-08-26  Martin Baulig  <martin@ximian.com>
6424
6425         * pedump.c (main): Call mono_metadata_init(),
6426         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
6427         and mono_loader_init().
6428
6429 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
6430
6431         * loader.h: Add missing include to fix build.
6432
6433         * image.h: mono_image_load_references is no more.
6434
6435         * assembly.c: Reworked assembly loading to make it really thread safe.
6436         After these changes, the assembly returned by mono_assembly_open is
6437         fully initialized, i.e. all its references assemblies are loaded.
6438
6439         * assembly.c (mono_image_load_references): Renamed to 
6440         mono_assembly_load_references, and made private, since clients no
6441         longer need to call it.
6442
6443         * class.c: Removed calls to mono_assembly_load_references, since it was
6444         a source of deadlocks.
6445
6446         * loader.h loader.c class.h class.c: Protect data structures using a 
6447         new lock, the loader lock.
6448
6449         * class.c (mono_class_setup_vtable): Create temporary hash tables and
6450         GPtrArrays only when needed.
6451
6452         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
6453         into empty structures by mcs. Fixes pinvoke7.cs.
6454         
6455         * domain.c (mono_init): Call a new initialization function.
6456
6457         * appdomain.c (mono_runtime_init): Call the new initializer function
6458         of the marshal module.
6459
6460         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
6461         inserted into empty structures by mcs. Fixes pinvoke7.cs.
6462
6463         * marshal.h marshal.c: Added locks around the wrapper caches to make
6464         this module thread safe.
6465
6466         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
6467         this argument. Fixes pinvoke1.exe.
6468
6469 2003-08-25  Lluis Sanchez <lluis@ximian.com>
6470
6471         * object.h: Added call_type field to MonoMethodMessage and the corresponding
6472         enumeration of values. Removed fields to store remote call output values in
6473         MonoAsyncResult. Not needed any more.
6474         * object.c: Initialize call_type and async_result fields in mono_message_init.
6475         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
6476         dispatching the message.
6477         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
6478         async call to finish. To do it use a message with EndInvoke call type.
6479
6480 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
6481
6482         * loader.h loader.c (mono_method_hash_marhal_info): New function which
6483         determines whenever a method has marshalling info.
6484
6485 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6486
6487         * assembly.c: fix the build on windows.
6488
6489 2003-08-22 Lluis Sanchez <lluis@ximian.com>
6490
6491         * object.cs: Fixed bug #47785.
6492
6493 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
6494
6495         * string-icalls.c (StringReplace): If their are no occurances of
6496         the old string found return a reference to the supplied
6497         string. This saves some memory and matches MS behavoir.
6498         
6499 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6500
6501         * socket-io.c: fixed compilation for systems that define AF_INET6
6502         and don't define SOL_IP/SOL_IPV6.
6503
6504 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
6505
6506         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
6507         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
6508
6509         * rawbuffer.c rawbuffer.h: Make this module thread safe.
6510
6511         * domain.c: Make this module thread safe.
6512
6513         * domain.c (mono_init): Call new initialization function.
6514
6515         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
6516         reference types too. Fixes #38812.
6517
6518         * image.c (mono_image_init): Fixed warnings.
6519
6520         * class.c (mono_class_from_typeref): Handle assembly load failure
6521         correctly.
6522
6523         * appdomain.c (add_assemblies_to_domain): Handle the case when
6524         the references of an assembly are not yet loaded.
6525
6526         * metadata.c image.c assembly.c: Moved initialization of global
6527         variables to a separate function called at startup since lazy 
6528         initialization of these variables is not thread safe.
6529         
6530         * image.c assembly.c: Made this module thread safe by adding locks in 
6531         the appropriate places.
6532
6533         * domain.c (mono_init): Call the new initialization functions of the
6534         three modules.
6535
6536 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
6537
6538         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
6539           make a direct call. It is proxy's work to make the call asynchronous.
6540           mono_delegate_end_invoke(): If the targe is a proxy, just collect
6541           the return values.
6542         * object.cs: mono_method_call_message_new(): read AsyncResult and
6543           state object from parameters list, if this info is requested.
6544         * object.h: Added fields to store remote call output values in
6545           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
6546
6547 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
6548
6549         * object.h: add needed fields to MonoThread.
6550         * threads.c, threads.h: allow registering a function to cleanup data
6551         allocated per thread by the JIT.
6552
6553 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6554
6555         * loader.h: portability fix by Bernie Solomon
6556         * <bernard@ugsolutions.com>.
6557
6558 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
6559
6560         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
6561         return a MonoArray. This simplifies the code and also ensures that
6562         the cache allways contains an object reference as a value.
6563
6564         * icall.c (ves_icall_get_parameter_info): Simplified using the new
6565         function.
6566
6567 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6568
6569         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
6570         fixes a problem with byte ordering when getting the address family for
6571         a socket.
6572
6573 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
6574
6575         * .cvsignore: Added monosn.
6576
6577         * reflection.h reflection.c loader.c: Added support for parameter
6578         marshalling to dynamically created types. Fixes #47295.
6579
6580 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
6581
6582         * rand.c: remove useless warnings.
6583
6584 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
6585
6586         * class.c: implemented ldtoken for methods and fieldrefs.
6587
6588 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6589
6590         * threadpool.c: when mono_async_invoke was called, no one took care of
6591         monitoring the queue. So if the method invoked took some time and we
6592         got new async invoke requests after 500 ms (the thread created waited
6593         that long in WaitForSingleObject), the new async invoke was not called
6594         until the previous one finished.
6595
6596         This is fixed now. Thanks to Totte for helping with it.
6597
6598 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6599
6600         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
6601
6602 2003-08-11  Martin Baulig  <martin@ximian.com>
6603
6604         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
6605
6606 2003-08-06  Martin Baulig  <martin@ximian.com>
6607
6608         * mono-debug-debugger.c: Added support for static fields,
6609         properties and methods.
6610
6611 2003-08-06  Martin Baulig  <martin@ximian.com>
6612
6613         * mono-debug-debugger.c: Don't store the MonoString's vtable to
6614         make this work for applications with multiple application domains.
6615
6616 2003-08-04  Martin Baulig  <martin@ximian.com>
6617
6618         * mono-debug-debugger.c: Completely reworked the type support; the
6619         most important thing is that we're now just using one single
6620         `MonoType' instance per type.
6621
6622 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
6623
6624         * mono-endian.h, mono-endian.c, icall.c: Added icall
6625         ves_icall_System_Double_AssertEndianity to assert double word endianity
6626         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
6627
6628 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
6629
6630         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
6631         support, icalls and fixes.
6632
6633 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
6634
6635         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
6636         classes that are a punctuation character in .NET is not the same a
6637         g_unichar_ispunct.
6638
6639 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6640
6641         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
6642
6643 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
6644
6645         * icall.c: Add new MemCopy internalcall.
6646         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
6647         Simplified code; It is not necessary to handle all the cases here,
6648         as the C# code takes care of it.  Only handle the case of the name
6649         resource embedded into the assembly.
6650
6651         Changed signature to return the data pointer and the size of the
6652         data. 
6653
6654 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
6655
6656         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
6657         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
6658
6659 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
6660
6661         * socket-io.c: ignore EINTR error in select.
6662
6663 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
6664
6665         * class.h, class.c: removed unused subclasses field in MonoClass.
6666
6667 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
6668
6669         * icall.c: improve fix of get_base_definition(). If the parent class
6670           doesn't have the mehod, look at the parent of the parent.
6671         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
6672           to check if a parameter is an in or out parameter
6673           (PARAM_ATTRIBUTE_IN is not set by default).
6674           mono_method_return_message_restore(): Use mono_class_value_size to
6675           get the size of a value type. mono_type_stack_size (parameterType)
6676           does not return the correct value if parameterType is byRef.
6677           mono_load_remote_field(), mono_load_remote_field_new(),
6678           mono_store_remote_field(), mono_store_remote_field_new():
6679           raise exception if the remote call returns an exception.
6680
6681 2003-07-28  Martin Baulig  <martin@ximian.com>
6682
6683         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
6684         method.  This is a wrapper around mono_runtime_invoke() which
6685         boxes the instance object if neccessary.
6686
6687 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
6688
6689         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
6690         metadata.h, row-indexes.h, verify.c: first cut of generics support.
6691
6692 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
6693
6694         * icall.c: disable mcs bug workaround.
6695
6696 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
6697
6698         * object.c (mono_runtime_class_init): Take the metadata_section
6699         mutex before obtaining the domain mutex.
6700
6701         * appdomain.h: Added definition of metadata_section mutex here. 
6702
6703         * object.c: define metadata_mutex here.
6704
6705 2003-07-24  Ravi Pratap  <ravi@ximian.com>
6706
6707         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
6708         fixed.
6709
6710 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
6711
6712         * reflection.c: Fix bug #46669
6713
6714 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6715
6716         * exception.c:
6717         * exception.h:
6718         * icall.c:
6719         * object.h: fill in the type name for TypeLoadException.
6720
6721 2003-07-23  Ravi Pratap  <ravi@ximian.com>
6722
6723         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
6724         relationship between TypeBuilders while compiling corlib) and bug
6725         45993 (Array types returned from the runtime while compiling
6726         corlib were from the loaded corlib).
6727
6728 2003-07-22  Martin Baulig  <martin@ximian.com>
6729
6730         * mono-debug-debugger.c: Reworked the type support a bit more;
6731         distinguish between types and classes.
6732
6733 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
6734
6735         * icall.c: add IsArrayImpl icall.
6736
6737 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
6738
6739         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
6740         initializing real_size only once. Also fix bug #46602.
6741
6742 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
6743
6744         * object.c: Renamed mono_metadata_section to metadata_section.
6745
6746 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
6747
6748         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
6749           empty array if the type is an array. Fixed.
6750           ves_icall_MonoMethod_get_base_definition: if the base method
6751           is abstract, get the MethodInfo from the list of methods of
6752           the class.
6753         * reflection.c: ParameterInfo.PositionImpl should be zero-based
6754           and it was 1-based. Fixed in mono_param_get_objects.
6755
6756 2003-07-20  Martin Baulig  <martin@ximian.com>
6757
6758         * mono-debug.h: Set version number to 31.
6759         (mono_debug_init): Added `MonoDomain *' argument.
6760
6761         * mono-debug-debugger.c: Reworked the type support; explicitly
6762         tell the debugger about builtin types; pass the `klass' address to
6763         the debugger.
6764
6765 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
6766
6767         * image.c: Allow new metadata tables to be loaded without a
6768         warning. Also update the warning message to give the new constant value.
6769                 
6770 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
6771
6772         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
6773         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
6774         array type representation changes.
6775
6776 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
6777
6778         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
6779         on Environment.Exit () call.
6780
6781 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
6782
6783         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
6784         requires a matching corlib.
6785
6786 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
6787
6788         * Changelog: My editor decided to add a CR to each line. Sorry about that.
6789           Committed again without the CRs.
6790         
6791 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
6792
6793         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
6794           getting it from the "this" socket instance. Did not work
6795           if the socket is a subclass of Socket.
6796           Also fixed bug #35371.
6797
6798 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
6799
6800         * metadata.c: fixed size for TypedByRef.
6801         * loader.c: when searching for a method, consider the vararg amrker.
6802         * unicode.c, decimal.c: constify some arrays.
6803
6804 2003-07-15  Dick Porter  <dick@ximian.com>
6805
6806         * socket-io.c: Fixed compilation for gcc < 3.2.
6807
6808         Fixed compilation for machines that don't have AF_INET6 (thanks to
6809         Bernie Solomon <bernard@ugsolutions.com> for that part.)
6810
6811         Fixed compile warnings.
6812         
6813         Fixed formatting and line endings.
6814
6815 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
6816
6817         * socket-io.h:
6818         * socket-io.c: Added IPv6 support.
6819
6820 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
6821
6822         * class.c (mono_class_is_assignable_from): New function to implement
6823         the is_assignable_from logic. Used by mono_object_isinst, 
6824         Type::IsAssignableFrom () and the interpreter.
6825
6826         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
6827         Object, even interfaces.
6828         
6829         * object.c (mono_object_isinst): Implement in terms of 
6830         is_assignable_from.
6831
6832         * icall.c (ves_icall_type_is_assignable_from): New icall.
6833
6834 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
6835
6836         * domain.c (foreach_domain): fix compiler warning.
6837
6838 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
6839
6840         * image.c (load_metadata_ptrs): use g_strndup because strndup is
6841         not available on all plattforms
6842
6843 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
6844
6845         * image.h image.c: Store the metadata version string in MonoImage.
6846         * icall.c: New icall to retrieve the image version.
6847         * reflection.c (create_dynamic_image): Fill in the image version field
6848         * reflection.c (build_compressed_metadata): Use the image version
6849         from the image structure.
6850
6851 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6852
6853         * appdomain.c: modified comment.
6854         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
6855         That will be its last iteration when mono_gc_cleanup is called from
6856         mono_runtime_cleanup and before the domain is unloaded.
6857
6858         Fixes bug #45962.
6859
6860 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
6861
6862         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
6863         attributes.
6864
6865 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
6866
6867         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
6868         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
6869         Bernie Solomon <bernard@ugsolutions.com>.
6870
6871 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
6872
6873         * object.c, object.h: provide mono_object_new_fast() for faster
6874         allocation in some special cases.
6875
6876 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
6877
6878         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
6879         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
6880
6881 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
6882
6883         * threadpool.c: fix leaks.
6884
6885 2003-07-01  Dick Porter  <dick@ximian.com>
6886
6887         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
6888         using MonoGHashTables.  Fixes threadpool bug posted to list.
6889
6890 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6891
6892         * image.h, image.c: added support to load an assembly from a byte array.
6893         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
6894         assembly bundle support.
6895
6896 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
6897
6898         * threadpool.c (mono_thread_pool_add): keep a reference to the
6899         AsyncResult to prevent GC
6900
6901 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
6902
6903         * class.c: leak fix.
6904
6905 2003-06-25  Dick Porter  <dick@ximian.com>
6906
6907         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
6908         for the async object, the WaitHandle object will close the handle.
6909         Fixes bug 45321.
6910
6911 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
6912
6913         * class.c: in mono_array_class_get (), lookup from the hash with the
6914         same type we insert: this works around a bug in
6915         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
6916         lluis. The real fix will have to wait for after the release.
6917
6918 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
6919
6920         * icall.c: fix memory leak when getting type members.
6921
6922 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
6923
6924         * reflection.c: added more pubtoken special cases.
6925
6926 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
6927
6928         * class.c: handle field offset correctly when class size
6929         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
6930
6931 2003-06-20  Martin Baulig  <martin@ximian.com>
6932
6933         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
6934         *image' field.
6935
6936 2003-06-20  Martin Baulig  <martin@ximian.com>
6937
6938         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
6939
6940 2003-06-20  Martin Baulig  <martin@ximian.com>
6941
6942         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
6943         just distinguish between variables in registers and variables at
6944         an offset relative to a register.
6945
6946 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6947
6948         * icall.c: #ifdef out latest changes until mcs is fixed.
6949
6950 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
6951
6952         * icall.c: return members in metadata order.
6953
6954 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
6955
6956         * icall.c: avoid infinite loop in GetTimeZoneData.
6957
6958 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
6959
6960         * icall.c: added Marshal.Prelink/All icalls.
6961
6962 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
6963
6964         * object.c, object.h: fix warnings and do some overflow checking
6965         when creating arrays.
6966
6967 2003-06-17  Dick Porter  <dick@ximian.com>
6968
6969         * file-io.h:
6970         * file-io.c: File attributes need to be tweaked slightly when
6971         passed from the managed to the w32 world.
6972
6973 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
6974         * profiler.h profiler-private.h profiler.c: Rework last patch
6975         based on suggestion by Paolo.
6976         
6977 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
6978
6979         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
6980         instruction level coverage data collection.
6981         * profiler.h profiler.c (: Added new callback function which can be
6982         used by the profiler to limit which functions should have coverage
6983         instrumentation.
6984         * profiler.c (mono_profiler_load): Call g_module_build_path to
6985         generate the file name of the profiler library.
6986
6987 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
6988
6989         * profiler.c, profiler.h, profiler-private.h: added basic block 
6990         coverage profiling API.
6991
6992 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
6993
6994         * reflection.c (mono_reflection_create_runtime_class): Add support
6995         for events in dynamically generated code.
6996
6997         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
6998         not allocated.
6999
7000 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7001
7002         * icall.c: when getting timezone info, return reasonable values if we
7003         can't get the actual data.
7004
7005 2003-06-14  Dick Porter  <dick@ximian.com>
7006
7007         * threads.c (start_wrapper): Remove the reference to the thread
7008         object in the TLS data, so the thread object can be finalized.
7009         This won't be reached if the thread threw an uncaught exception,
7010         so those thread handles will stay referenced :-( (This is due to
7011         missing support for scanning thread-specific data in the Boehm GC
7012         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7013
7014 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7015
7016         * reflection.c: ensure streams and tables are first allocated with
7017         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7018
7019 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7020
7021         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7022
7023 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7024
7025         * reflection.c (mono_reflection_create_runtime_class): Add support for
7026         properties to dynamically created classes.
7027         * reflection.c: Fix a few places where non-MonoObjects were inserted
7028         into the tokens hashtable.
7029
7030 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7031
7032         * object.c: some support to handle out of memory exceptions.
7033
7034 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7035
7036         * marshal.c (mono_marshal_get_native_wrapper): support reference
7037         return types
7038
7039 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7040
7041         * object.h, object.c: more portability stuff from Bernie Solomon.
7042         Unexport mono_object_allocate(). Added mono_object_unbox ().
7043         Set exitcode when an unhandled exception is thrown.
7044
7045 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7046
7047         * marshal.c (mono_marshal_get_native_wrapper): use custom
7048         marshaler for return types.
7049
7050 2003-06-10  Dick Porter  <dick@ximian.com>
7051
7052         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7053         ip_mreq is available
7054
7055 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7056
7057         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7058         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7059         by Bernie Solomon <bernard@ugsolutions.com>.
7060
7061 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7062
7063         * gc.c (mono_gc_init): Avoid error message on shutdown when
7064         GC_DONT_GC=1 is used.
7065
7066         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7067         New icall to return the GUID of a module.
7068
7069 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7070
7071         * class.c: ensure instance size always includes the parent's size
7072         even whem class size is set explicitly (fixes bug#44294).
7073
7074 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7075
7076         * profiler.h, profiler.c: made the simple profiler thread-safe,
7077         get more accurate timing info. Allow the loading of an
7078         externally-developed profiler module.
7079
7080 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7081
7082         * marshal.c (mono_marshal_get_native_wrapper): improved
7083         class/byref arguments.
7084         (mono_marshal_get_native_wrapper): better string marshaling support.
7085
7086 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7087
7088         * class.c: ensure .pack and .size are handled correctly and
7089         simplified layout of static fields.
7090
7091 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7092
7093         * appdomain.c
7094         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7095
7096         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7097         current directory (fix bug 44008)
7098
7099 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7100
7101         * marshal.c (mono_marshal_get_native_wrapper): started support for
7102         custom marshalers.
7103         (mono_delegate_to_ftnptr): consider marshalling specifications
7104
7105 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7106
7107         * reflection.c, reflection.h: emit custom marshal info.
7108
7109 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7110
7111         * object.c: free the GError.
7112         * icall.c: added CloseEvent_internal.
7113         * threads.[ch]:
7114         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7115         call.
7116
7117 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7118
7119         * loader.c (mono_method_get_signature): Add support for dynamic
7120         assemblies.
7121
7122 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7123
7124         * reflection.c: fixed bug #43905.
7125
7126 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7127
7128         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7129         handling TypedReference and ArgIterator.
7130         * loader.c, loader.h: added function to get signature at call site.
7131
7132 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7133
7134         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7135         data readonly. Buglets and warning fixes. Some MethodSpec support.
7136
7137 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7138
7139         * class.h, class.c, object.c: remove relative numbering support.
7140
7141 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7142
7143         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7144         free the string, until we get a chance to fix Gtk#
7145
7146 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7147
7148         * marshal.c: revert last patch.
7149
7150 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7151
7152         * icall.c: updates for new mono_class_vtable() not calling
7153         the type constructor anymore.
7154
7155 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7156
7157         * object.h, object.c: separate vtable creation from type
7158         initialization. Make running the .cctor thread safe.
7159
7160 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7161
7162         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7163
7164 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7165
7166         * loader.c (mono_get_method): consider calling convention
7167
7168 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7169
7170         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7171         to return the invisible global type for a module.
7172
7173         * reflection.c (mono_image_build_metadata): Emit global fields too.
7174
7175 2003-05-20  Peter Williams  <peterw@ximian.com>
7176
7177         * loader.c (mono_lookup_internal_call): Add a few newlines.
7178
7179 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7180
7181         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7182         literal strings.
7183
7184         * appdomain.c (set_domain_search_path): Recalculate search path when
7185         AppDomainSetup.PrivateBinPath changes.
7186
7187         * object.c (mono_class_compute_gc_descriptor): It turns out some
7188         parts of the class libs (like System.Thread) holds pointers to
7189         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7190         to treat native int a pointer type here.
7191         
7192 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7193
7194         * appdomain.h, domain.c: add hashtable for jump target resolution.
7195
7196 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7197
7198         * reflection.h reflection.c icall.c: Added new icalls 
7199         GetManifestResourceInfoInternal, GetModulesInternal and support
7200         infrastructure.
7201
7202 2003-05-16  Dick Porter  <dick@ximian.com>
7203
7204         * icall.c:
7205         * file-io.h:
7206         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7207
7208 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7209
7210         * object.c: mono_store_remote_field: little fix to previous patch.
7211
7212 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7213
7214         * class.c: add constructors to array classes.
7215         * icall.c: special case array construction for InternalInvoke (),
7216
7217 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7218
7219         * class.h class.c reflection.c object.c: Added support for field
7220         defaults in dynamically generated classes.
7221
7222 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7223
7224         * reflection.c: properly encode charset for ddlimport.
7225
7226 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7227
7228         * threads.c: allow compiling without GC.
7229
7230 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7231
7232         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7233         handling of thread static data.
7234
7235 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7236
7237         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7238
7239 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7240
7241         * class.c (mono_array_class_get): always set the serializable flags
7242         (mono_array_class_get): always set the SEALED attribute for array types
7243
7244 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7245
7246         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7247         attributes (fix for bug 42021).
7248
7249 2003-05-12  Dick Porter  <dick@ximian.com>
7250
7251         * gc.c: Don't run finalizers when the finalizer thread is
7252         finishing up, because the default domain has already been
7253         destroyed.
7254
7255 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7256
7257         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7258         value is null, we should throw an exception.   This is slightly
7259         different than the other conventions used for the constructor.
7260
7261 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7262
7263         * socket-io.c: fixed windows build.
7264
7265 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7266
7267         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7268
7269 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7270
7271         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7272         compilers.
7273
7274 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7275
7276         * class.c (mono_class_layout_fields): Add experimental GC aware
7277         auto layout facility. Requires class library changes to work correctly.
7278
7279         (mono_class_setup_vtable): Avoid overriding explicit interface
7280         method implementations. Fixes iface3.exe test.
7281
7282         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7283         object reference.
7284         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7285         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7286
7287         * metadata.h: Add new type classification macro which determines
7288         whenever the type holds an object reference.
7289
7290 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7291
7292         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7293
7294 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7295
7296         * gc.c (finalizer_thread): Work around a GC bug.
7297
7298 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7299
7300         * marshal.c (emit_struct_conv): allow unions
7301
7302         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7303
7304 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7305
7306         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7307
7308 2003-05-06  Martin Baulig  <martin@ximian.com>
7309
7310         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7311
7312 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7313
7314         * socket-io.c:
7315         (Select_internal): allow NULLs, don't create arrays if not needed.
7316         Coupled with Socket.cs changes.
7317
7318         * threadpool.c:
7319         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7320         register a finalizer for it that will close the semaphore handle. This
7321         fixes the leak and make Lupus' test run with > 4080 loops.
7322
7323 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7324
7325         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7326         Jerome Laban (bug #42287)
7327
7328 2003-05-02  Martin Baulig  <martin@ximian.com>
7329
7330         * debug-mono-symfile.h
7331         (MonoSymbolFile): Moved declaration into mono-debug.h.
7332         (MonoDebugMethodJitInfo): Likewise.
7333         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
7334         argument.
7335         (_mono_debug_address_from_il_offset): Take a
7336         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
7337
7338         * mono-debug.h
7339         (MonoDebugDomainData): New struct.
7340         (mono_debug_get_domain_data): New function.
7341         (mono_debug_add_method): Take an additional `MonoDomain *'
7342         argument.
7343         (mono_debug_source_location_from_address): Likewise.
7344         (mono_debug_il_offset_from_address): Likewise.
7345         (mono_debug_address_from_il_offset): Likewise.
7346
7347 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
7348
7349         * reflection.c: one more check for null type in custom attrs.
7350
7351 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7352
7353         * reflection.c: avoid warning (comparison is always false due to limited
7354         range of data type).
7355
7356 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7357
7358         * icall.c: throw an exception in Type.GetField if the argument 'name'
7359         is NULL.
7360
7361 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
7362
7363         * reflection.c: fixed handling of enums in named arguments to custom
7364         attributes (bug #42123).
7365
7366 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
7367
7368         * reflection.c: use the right array element type and handle
7369         a null for a Type argument, too.
7370
7371 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
7372
7373         * reflection.c: handle arrays as arguments to custom attributes.
7374
7375 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7376
7377         * reflection.c: handle a string value in a custom attr
7378         ctor that takes an object.
7379
7380 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
7381
7382         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
7383         (fix bug #42063)
7384
7385 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
7386
7387         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
7388
7389 2003-04-27  Martin Baulig  <martin@ximian.com>
7390
7391         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
7392         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
7393         MONO_DEBUGGER_EVENT_BREAKPOINT.
7394         (mono_breakpoint_trampoline_code): Removed.
7395         (mono_debugger_event_handler): The last argument is now a
7396         `guint32'.
7397         (mono_debugger_insert_breakpoint_full): Removed the
7398         `use_trampoline' argument.
7399         (mono_debugger_method_has_breakpoint): Likewise.
7400         (mono_debugger_trampoline_breakpoint_callback): Renamed to
7401         mono_debugger_breakpoint_callback(); take the method and
7402         breakpoint number as arguments.
7403
7404 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
7405
7406         * metadata.c: fix off by one when loading parameters attributes.
7407
7408 2003-04-24  Martin Baulig  <martin@ximian.com>
7409
7410         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
7411
7412 2003-04-24  Martin Baulig  <martin@ximian.com>
7413
7414         * mono-debug-debugger.c: Moved all code which interacts with the
7415         Mono Debugger here.
7416
7417         * debug-mono-symfile.c: This code now just deals with the symbol
7418         file itself, the debugger code is now in mono-debug-debugger.c.
7419
7420 2003-04-23  Martin Baulig  <martin@ximian.com>
7421
7422         * mono-debug.c (mono_debug_source_location_from_il_offset):
7423         New method; like mono_debug_source_location_from_address(), but
7424         takes an IL offset instead of a machine address.
7425
7426 2003-04-23  Martin Baulig  <martin@ximian.com>
7427
7428         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
7429         `line' field; this is now computed by the debugger.
7430
7431 2003-04-23  Martin Baulig  <martin@ximian.com>
7432
7433         * mono-debug.[ch]: New files.  This is the new debugging interface.
7434
7435         * mono-debug-debugger.[ch]: New files.  Moved all code which
7436         interacts with the Mono Debugger here.
7437
7438 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
7439
7440         * domain.c (mono_init): initialize mono_defaults.monitor_class
7441
7442 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
7443
7444         * reflection.c (method_encode_code): Add a spicy exception to help
7445         future compiler authors.
7446
7447 2003-04-21  Martin Baulig  <martin@ximian.com>
7448
7449         * icall.c
7450         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7451         Make this work with relative pathnames; g_filename_to_uri() needs
7452         an absolute filename.
7453
7454 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
7455
7456         * icall.c: Track name changes in Object and ValueType.
7457
7458 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
7459
7460         * metadata.c (mono_type_stack_size): size should be a multiple of
7461         sizeof (gpointer)
7462
7463 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7464
7465         * gc.c:
7466         (internal_domain_finalize): moved into mono_domain_finalize. No need
7467         to create another thread because the finalizers will be run in the
7468         finalizer thread.
7469         
7470         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
7471         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
7472         to be run (MS does this too).
7473
7474 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
7475
7476         * object.c (mono_class_compute_gc_descriptor): Update comment.
7477
7478         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
7479
7480         * image.h: Add synchronized wrapper cache.
7481
7482         * image.c (do_mono_image_open): Initialize cache.
7483
7484         * reflection.c (create_dynamic_mono_image): Initialize cache.
7485
7486 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7487
7488         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
7489         ves_icall_System_Buffer_ByteLengthInternal.
7490
7491 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7492
7493         * reflection.c: setup klass->nested_in earlier. Allow
7494         a dash in the assembly name.
7495
7496 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
7497
7498         * metadata.c (mono_type_to_unmanaged): dont access
7499         type->data.klass for MONO_TYPE_OBJECT
7500         (mono_type_to_unmanaged): consider System.Delegate class
7501
7502 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
7503
7504         * class.c: just setup supertypes in the proper place instead of
7505         initializing the full element class for arrays.
7506
7507 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7508
7509         * class.c: ensure the element class of arrays is initialized.
7510         Setup the supertype info for array classes, too.
7511
7512 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
7513
7514         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
7515
7516 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7517
7518         * Makefile.am: re-added -m option when running cygpath. This way,
7519         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
7520         separator.
7521         * mono-config.c: same codepath for locating mono config file for WIN32
7522         and the rest.
7523         * assembly.c: if mono_assembly_setrootdir is called, don't override
7524         the value set.
7525
7526 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7527
7528         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
7529         MONO_ASSEMBLIES variable.
7530
7531 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
7532
7533         * icall.c: added Assembly::GetNamespaces() icall.
7534
7535 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7536
7537         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
7538
7539 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
7540
7541         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
7542         * object.c: fixed bug in the construction of vtable for proxies
7543
7544 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
7545
7546         * object.c (mono_array_new): Mark mono_array_new as an icall.
7547
7548 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7549
7550         * class.c: fixed test for public method when overriding interfaces.
7551         Closes bug #40970.
7552
7553 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7554
7555         * appdomain.h, domain.c: added mono_domain_foreach() to
7556         be able to access the currently loaded appdomains.
7557         * object.c: make string interning work across sppdomains.
7558         Mark some functions for use as icalls.
7559
7560 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
7561
7562         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
7563
7564         * reflection.h reflection.c: Allocate long living data using 
7565         GC_MALLOC_ATOMIC so the collector does not need to scan it.
7566
7567         * reflection.c: Double the allocation size in streams instead of
7568         increasing it, to prevent unneccesary copying on large assemblies.
7569         
7570         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
7571         creation if the assembly does not have the Run flag set.
7572
7573 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
7574
7575         * class.h: avoid the C++ keywords in header files (Jerome Laban
7576         spotted and fixed this).
7577
7578 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7579
7580         * object.c:
7581         (mono_unhandled_exception): fill in the arguments for the
7582         UnhandledException event. Only trigger that event for the default
7583         domain (as MS does).
7584
7585 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
7586
7587         * object.c: Improve typed allocation stuff based on suggestions from
7588         Paolo. Also turn it on if the GC library supports it.
7589
7590 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
7591
7592         * object.c object.h class.h: Added experimental typed allocation
7593         facility using the interfaces in gc_gcj.h.
7594
7595         * os/gc_wrapper.h: Added new include files.
7596         
7597 2003-04-03  Martin Baulig  <martin@ximian.com>
7598
7599         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
7600         which is not yet enabled by default.
7601
7602         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
7603         functions.
7604         (mono_gc_lock, mono_gc_unlock): New static functions.
7605
7606         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
7607         functions; stop/start the world for the garbage collector.  This
7608         is using the windows API; we need to complete the SuspendThread()/
7609         ResumeThread() implementation in the io-layer to make this work on Unix.
7610         (mono_gc_push_all_stacks): New public function; tells the garbage
7611         collector about the stack pointers from all managed threads.
7612
7613 2003-04-03  Martin Baulig  <martin@ximian.com>
7614
7615         * object.h (MonoThread): Added `gpointer stack_ptr'.
7616
7617         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
7618
7619 2003-04-03  Martin Baulig  <martin@ximian.com>
7620
7621         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
7622
7623 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
7624
7625         * reflection.c (typebuilder_setup_fields): Initialize field.first and
7626         field.last.
7627
7628 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
7629
7630         * loader.c (mono_lookup_internal_call): Report the corlib that is
7631         out of sync.
7632
7633 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
7634
7635         * icall.c (ves_icall_type_GetTypeCode): fixed check for
7636         System.DBNull (it's class not valuetype).
7637
7638 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7639
7640         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
7641         if the array method was already assigned a token (fixes bug#40646).
7642
7643 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
7644
7645         * reflection.c (mono_reflection_get_type): Attempt type resolve even
7646         if no assembly is given.
7647
7648 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
7649
7650         * metadata.h: Added the new tables.
7651
7652         * row-indexes.h: Added definitions for new tables.
7653
7654         * metadata.c: Add schemas for new tables, and add support for
7655         computing the sizes of them.
7656
7657         * class.c: Update for handling the new type cases.
7658
7659 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
7660
7661         * metadata.h (MONO_TYPE_IS_VOID): new macro
7662
7663 2003-03-31  Martin Baulig  <martin@ximian.com>
7664
7665         * threads.h (MonoThreadCallbacks): Added `thread_created'.
7666
7667         * threads.c (mono_thread_new_init): Call `thread_created' in the
7668         mono_thread_callbacks.
7669
7670 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
7671
7672         * loader.h: added marshalbyrefobject_class to mono_defaults
7673         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
7674         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
7675           generation of output parameters.
7676           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
7677         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
7678           contextbound and the target object belongs to the context of the caller.
7679         * object.h: added context and unwrapped_server variables in MonoRealProxy.
7680         * object.c: Implemented support for interfaces and abstract classes
7681           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
7682           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
7683
7684 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
7685
7686         * class.h class.c (mono_class_is_subclass_of): New function.
7687         
7688         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
7689         routines for most common case (calls from ArrayList::ToArray).
7690
7691         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
7692         routine so programs which call Environment::Exit() can be profiled.
7693
7694         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
7695         Added MONO_ARCH_SAVE_REGS.
7696
7697         * icall.c (ves_icall_type_is_subtype_of): Use new function.
7698
7699 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
7700
7701         * blob.h: Add a couple of new MonoType types definitions.
7702
7703         * tabledefs.h: Add a couple of new call convs.
7704
7705 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
7706
7707         * reflection.h (MonoReflectionDynamicAssembly): track changes in
7708         the layout of the class.
7709
7710         * reflection.c (alloc_table): double the size on overflow to avoid
7711         unnecessary copying.
7712
7713         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
7714         avoid filling out metadata tables and blobs. Also set mb->ilgen to
7715         null so it can be garbage collected.
7716         
7717 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
7718
7719         * reflection.c (mono_reflection_get_type): Return the resolved type
7720         only if it is in the assembly we searched.
7721
7722         * reflection.c (ensure_runtime_vtable): Initialize method slots.
7723
7724         * class.c (mono_class_setup_vtable): Set the slot of the overriding
7725         method.
7726
7727 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7728
7729         * appdomain.c:
7730         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
7731         the right one is 'file:///blah', but MS allows it.
7732         * assembly.c:
7733         (mono_assembly_open): allow 'file://blah'
7734
7735         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
7736
7737 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
7738
7739         * socket-io.c: fixes bug #40310.
7740
7741 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
7742
7743         * reflection.c (mono_reflection_parse_type): handle deeply nested
7744         types correctly.
7745
7746         * reflection.c (mono_image_create_token): Use unique token values
7747         since they will be put into a hash table.
7748
7749         * class.c (mono_class_setup_vtable): If a method occurs in more than
7750         one place in the vtable, and it gets overriden, then change the
7751         other occurances too.
7752
7753         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
7754         object as return type.
7755
7756 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
7757
7758         * icall.c: Deleted "ToString" implementation for double and float
7759         because they are full implemented in managed code.
7760
7761 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
7762
7763         * reflection.c, reflection.h: implemented and exported functions
7764         to retrieve info about custom attributes.
7765
7766 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7767
7768         * appdomain.c: moved Uri handling to assembly.c
7769         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
7770         work when using a file Uri in *nix and windows.
7771
7772         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
7773         GetReferencedAssemblies.
7774
7775 2003-03-18  Dick Porter  <dick@ximian.com>
7776
7777         * icall.c: Rename a couple of internal calls
7778
7779         * threads.c: Set the thread state to Stopped when a thread exits.
7780         Fixes bug 39377.
7781
7782 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
7783
7784         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
7785         New icall.
7786
7787         * object.c (mono_class_vtable): fix warning.
7788
7789 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
7790
7791         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
7792
7793         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
7794         memory.
7795         (method_encode_clauses): Create exception info structures in the right
7796         order.
7797         (mono_reflection_setup_internal_class): Initialize supertypes field.
7798
7799         * class.c object.c: Handle interfaces which implement other interfaces 
7800         correctly.
7801
7802         * class.h class.c: Move the supertypes array initialization code into 
7803         a separate function so it can be used for dynamic types too. Also call
7804         it earlier, in mono_class_init(), since it can be used before the
7805         type is initialized.
7806
7807 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7808
7809         * Makefile.am:
7810         * assembly.c:
7811         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
7812
7813         * appdomain.c:
7814         * appdomain.h:
7815         * marshal.c:
7816         * object.c: remove warnings.
7817
7818 2003-03-13  Martin Baulig  <martin@ximian.com>
7819
7820         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
7821         (MonoDebugLexicalBlockEntry): New types.
7822
7823         * debug-mono-symfile.c
7824         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
7825
7826 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7827
7828         * process.c: ret can be any non-zero value accroding to MS doc.
7829
7830 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
7831
7832         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
7833         fixing a warning for a miss-used prototype, would have cause
7834         random memory corruption.
7835
7836 2003-03-07  Martin Baulig  <martin@ximian.com>
7837
7838         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
7839         getting really annoying ....
7840
7841 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
7842
7843         * reflection.c (fixup_method): added support for array methods.
7844
7845 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
7846
7847         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
7848         (pointed out by Michael Adams).
7849
7850 2003-03-04  Dick Porter  <dick@ximian.com>
7851
7852         * icall.c: Temporarily reverted the Double and Single ToString()
7853         change, because it broke nunit.
7854
7855 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
7856
7857         * object.h, threads.h: make include files compatible with C++
7858         (patch by Jerome Laban <jlaban@wanadoo.fr>).
7859
7860 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
7861
7862         * icall.c: Erased ToString helper functions for Double and Single.
7863         Now, that implementations ar all in managed code (Double and Single
7864         Formatters).
7865
7866 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
7867
7868         * appdomain.c: Added method for initializing the default context of
7869         a domain. Added internal call for getting the default context.
7870         * appdomain.h: Added context variable in MonoDomain struct.
7871         * domain.c: mono_domain_set also sets the default context of the domain
7872         * icall.c: Mapped internal method InternalGetDefaultContext.
7873         * object.c: mono_object_get_virtual_method returns always a remoting
7874         wrapper if the object is a transparent proxy.
7875         mono_runtime_invoke_array: when creating an object by calling the
7876         constructor, if the created object is a proxy, then the constructor should
7877         be called using the a remoting wrapper.
7878
7879 2003-03-03  Dick Porter  <dick@ximian.com>
7880
7881         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
7882         variable so it compiles on solaris.  Problem spotted by
7883         Christopher Taylor <ct@cs.clemson.edu>
7884
7885 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7886
7887         * appdomain.c:
7888         (get_info_from_assembly_name): don't leak value.
7889
7890         * icall.c:
7891         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
7892         result.
7893
7894 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
7895
7896         * assembly.c: export mono_image_load_references ().
7897         * class.c: handle function pointers. mono_class_from_name() now
7898         supports nested type names directly.
7899
7900 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
7901
7902         * reflection.h reflection.c: Encode already created dynamic methods 
7903         and fields correctly as a DEF instead of a REF.
7904
7905         * reflection.c: Get rid of the force_ref argument to 
7906         mono_image_typedef_or_ref since it was wrong in the first place.
7907
7908         * string-icalls.c: add error checking to string constructors according
7909         to the MSDN docs.
7910
7911         * reflection.c: Emit types in the order their TypeBuilders were 
7912         created. Previously, a new table index was assigned to each type before
7913         the tables were emitted. This was wrong because the signature blob
7914         might already refer to a type by its original table index.
7915
7916 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
7917
7918         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
7919         change.
7920         
7921 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7922
7923         * Makefile.am: make assemblies dir have \ instead of / on windows.
7924
7925 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
7926
7927         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
7928         iterate over the NESTEDCLASS table using a linear search since the
7929         table is not guaranteed to be sorted by the secondary key.
7930
7931         * class.c (mono_class_create_from_typedef): fixed up call to
7932         mono_metadata_nesting_typedef.
7933         
7934 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
7935
7936         * marshal.c (mono_string_to_byvalstr): clear the memory as
7937         suggested by Jerome Laban <jlaban@wanadoo.fr>
7938
7939 2003-02-26  Dick Porter  <dick@ximian.com>
7940
7941         * process.c: Cope with padding in .rsrc blocks
7942
7943 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
7944
7945         * metadata.h: reverted the filter_len change, it breaks reflection
7946         
7947 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
7948
7949         * metadata.h: added a new field to store the filter_len
7950         
7951
7952 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
7953
7954         * reflection.c: handle custom attributes for types and members
7955         created with Reflection.Emit (bug#38422).
7956
7957 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
7958
7959         * reflection.c: define RTSpecialName automatically for constructors for
7960         compatibility with MS.NET.
7961
7962         * reflection.c (mono_reflection_create_runtime_class): initialize
7963         nested_in field of dynamically created classes.
7964
7965 2003-02-22  Martin Baulig  <martin@ximian.com>
7966
7967         * debug-mono-symfile.h: Incremented version number.
7968
7969 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
7970
7971         * object.h icall.c process.c: fix warnings.
7972
7973 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
7974
7975         * appdomain.h appdomain.c:
7976         (mono_domain_try_type_resolve): split the 
7977         name_or_tb argument into a name and a tb argument.
7978         (mono_domain_has_type_resolve): new function to check whenever the
7979         application has registered a TypeResolve event handler.
7980         
7981         * icall.c reflection.h reflection.c: move the type resolve logic into
7982         mono_reflection_get_type () so it will be invoked when 
7983         Assembly::GetType () is called.
7984
7985         * reflection.c:
7986         (mono_reflection_get_type): renamed to get_type_internal.
7987         (mono_reflection_get_type): fixed type name generation so it works 
7988         for nested types too.
7989         (mono_reflection_get_type): call has_type_resolve () to avoid the 
7990         costly type name generation if there is no resolve event handler.
7991
7992 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
7993
7994         * class.c, image.c: load exported types from file references.
7995
7996 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
7997
7998         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
7999           used to cache the managed methods used to create proxies and make 
8000           remote invocation of methods.
8001         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8002           to be remotely created.
8003         * object.c: Modified the method mono_class_vtable(). It now initializes 
8004           the remote flag of the vtable. Modified mono_object_new_specific(), 
8005           so now it checks the remote flag.
8006         * icall.c: Added a couple of internal methods, one for enabling instance 
8007           creation interception for a type, and one for creating objects bypassing
8008           the remote check.
8009
8010 2003-02-18  Martin Baulig  <martin@ximian.com>
8011
8012         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8013         New interncall to get a method's metadata token.
8014
8015         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8016         New interncall for the debugger.
8017
8018 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8019
8020         * class.c (mono_class_setup_vtable): allocate supertype array
8021
8022 2003-02-18  Martin Baulig  <martin@ximian.com>
8023
8024         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8025
8026 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8027
8028         * reflection.c:
8029         (assembly_name_to_aname): jump over unknown properties (i've found
8030         something like: 'type, assembly, version=xxx, custom=null, public...',
8031         so now will ignore custom=null and still get the rest of the values).
8032
8033 2003-02-17  Dick Porter  <dick@ximian.com>
8034
8035         * threads.c: Have Thread.Start() wait for a semaphore to signal
8036         that the thread has set up all its local data.  This fixes bug
8037         34323, where Abort() raced the new thread's TLS data.
8038
8039         Also removes the handle_store() call from start_wrapper, because
8040         threads are now always created suspended and there is no longer a
8041         race between the parent and child threads to store the info.
8042
8043 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8044
8045         * image.c: explain the #- heap issue in a message, hopefully
8046         avoiding FAQs on mono-list.
8047
8048 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8049
8050         * icall.c:
8051         (GetEntryAssembly): if the domain has not invoked
8052         AppDomain.ExecuteAssembly yet, return the assembly of the default
8053         AppDomain.
8054
8055 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8056
8057         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8058
8059 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8060
8061         * metadata.c, reflection.c: simple speedup to type hash
8062         and equals code.
8063
8064 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8065
8066         * image.c, image.h, class.c, assembly.c: move module loading
8067         to MonoImage. When loading metadata, consider alignemnet from
8068         the start of metadata, not from the metadata address in memory.
8069
8070 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8071
8072         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8073         AssemblyBuilder objects. Factored out custom attribute creation into
8074         a separate function.
8075         (create_custom_attr): new function to create custom attributes.
8076
8077 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8078
8079         * Makefile.am: Got tired of typing the full pathname to pedump.
8080         Until there is another option, am installing this.
8081
8082 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8083
8084         * class.c (class_compute_field_layout): always set field->parent 
8085         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8086
8087 2003-02-11  Dick Porter  <dick@ximian.com>
8088
8089         * threads-types.h:
8090         * monitor.c: Rewrote Monitor, making lock much faster and
8091         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8092         creates them as needed.
8093
8094         * exception.c: Added SynchronizationLockException
8095
8096         * threads.c: Deleted old Monitor implementation.  The new one is
8097         in a new file.
8098
8099 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8100
8101         * class.c: handled TypedReference type code. Set the correct size for
8102         class data. Setup interface_offsets for interface classes, too.
8103
8104 2003-02-09  Martin Baulig  <martin@ximian.com>
8105
8106         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8107
8108 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8109
8110         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8111         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8112         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8113         * verify.c: check for code that runs after the end of the method.
8114
8115 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8116
8117         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8118         "System.Math::Round2".
8119         * sysmath.h: Added Floor, Round and Round2 definitions.
8120         * sysmath.c: Modified certain functions that were not 100% compliant
8121         with MS.NET (math precision) and added the implementation of Floor,
8122         Round and Round2.
8123
8124 2003-02-07  Martin Baulig  <martin@ximian.com>
8125
8126         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8127
8128 2003-02-07  Martin Baulig  <martin@ximian.com>
8129
8130         * debug-mono-symfile.c: Reflected latest symwriter changes.
8131         (mono_debug_create_mono_symbol_file): Removed.
8132         (mono_debug_open_mono_symbol_file): Take an argument which
8133         specifies whether to create a dynamic symbol file.
8134
8135 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8136
8137         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8138
8139 2003-02-05  Martin Baulig  <martin@ximian.com>
8140
8141         * reflection.c (mono_image_build_metadata): Make this public,
8142         protect it against being called multiple times, don't create
8143         resources and don't build the compressed metadata here.
8144         (mono_image_create_pefile): Do this here.
8145
8146         * icall.c
8147         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8148
8149 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8150
8151         * socket-io.c: fixed bug #36322.
8152
8153 2003-02-06  Piers Haken <piersh@friskit.com>
8154
8155         * appdomain.[ch]:
8156         * class.h:
8157         * debug-mono-symfile.c:
8158         * icall.c:
8159         * loader.c:
8160         * mono-config.c:
8161         * monosn.c:
8162         * reflection.c:
8163         * socket-io.c: warning cleanups
8164
8165 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8166
8167         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8168         function. works like remoting invoke, but does a check for the Proxy first.
8169
8170 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8171
8172         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8173
8174 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8175
8176         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8177         array of pointers.
8178         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8179         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8180
8181         * object.c (mono_store_remote_field_new): used by the new jit
8182         instead of mono_store_remote_field
8183         (mono_load_remote_field_new): used by the new jit
8184         instead of mono_load_remote_field
8185
8186 2003-02-05  Patrik Torstensson
8187
8188         * appdomain.c: changed unload to take the domain id instead
8189         of domain
8190         
8191         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8192
8193
8194 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8195
8196         * appdomain.c: don't look for assemblies in ApplicationBase if
8197         PrivateBinPathProbe is set.
8198
8199 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8200
8201         * object.c: make the first argument in main_args contain the absolute
8202         path to the assembly. Fixes bug #37511.
8203
8204 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8205
8206         * icall.c: get correct UTC offset for countries not using daylight
8207         time saving. Fixes bug #30030.
8208
8209 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8210
8211         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8212         and 1 are the family).
8213
8214 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8215
8216         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8217
8218         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8219
8220 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8221
8222         * reflection.c: added support for SignatureHelper tokens, which is
8223         needed by the Calli opcode.
8224
8225         * reflection.h: track changes to SignatureHelper class.
8226
8227         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8228
8229 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8230
8231         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8232
8233 2003-02-03  Patrik Torstensson
8234         * appdomain.[c|h], domain.c : 
8235          - Added support for getting a domain via domain id
8236          - Support for setting and getting domain from System.AppDomain 
8237            (used in cross appdomain channel)
8238          - Added support for get/set for a MonoAppContext on a thread 
8239            (Context class in System.Runtime.Remoting.Contexts),
8240          - Removed hack in Get/SetData and ExecuteAssembly.
8241         
8242         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8243         the managed world to get control when a proxy is created.
8244
8245         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8246         
8247 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8248
8249         * icall.c
8250         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8251         Populate the codebase field as well.
8252
8253 2003-02-02  Martin Baulig  <martin@ximian.com>
8254
8255         * debug-mono-symfile.c
8256         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8257         (mono_debug_symfile_add_method): Allow interncalls.
8258
8259 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8260
8261         * icall.c: throw parse exception if strtod fails or the string is empty.
8262
8263 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8264
8265         * marshal.c: handle object type separately from defined
8266         class types.
8267
8268 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8269
8270         * marshal.c: handle NATIVE_LPSTR for strings when it's
8271         explicitly specified.
8272
8273 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8274
8275         * reflection.c, reflection.h, icall.c: setup the reflection
8276         handle cache for ModuleBuilders and AssemblyBuilders.
8277
8278 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8279
8280         * reflection.c (reflection_methodbuilder_to_mono_method): set
8281         pinvoke flag
8282
8283 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8284
8285         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8286
8287 2003-01-29  Dick Porter  <dick@ximian.com>
8288
8289         * threads.c: No need for the fake_thread kludge now that Thread
8290         doesn't run a class constructor
8291         
8292 2003-01-29  Dick Porter  <dick@ximian.com>
8293
8294         * threads.c: Use g_direct_hash instead of the rather bogus
8295         g_int_hash
8296
8297 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8298
8299         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8300         (fix pinvoke12.exe)
8301         (mono_marshal_get_struct_to_ptr): generate valid IL code
8302         (mono_marshal_get_ptr_to_struct): generate valid IL code
8303         (*): correctly set sig->pinvoke, we need to memdup the signature
8304         to do that
8305
8306 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8307
8308         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8309         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8310
8311 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8312
8313         * profiler.c: provide more callers information.
8314
8315 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8316
8317         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8318
8319         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8320
8321         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8322
8323 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8324
8325         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8326         exception instead of going into an infinite loop on dates which it 
8327         can't yet handle.
8328
8329         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
8330         out-of-range exception if needed.
8331
8332         * class.c (mono_class_setup_vtable): allow a virtual method to provide
8333         an implementation for an interface method and to override an inherited
8334         method at the same time. 
8335         Imagine a scenario when a virtual method is used to override a
8336         virtual abstract method in a parent class, and this same method 
8337         provides an implementation for an method inherited from an interface. 
8338         In this case, the interface resolution code will set im->slot, which 
8339         means that the virtual method override pass will skip this method 
8340         which means a pointer to the abstract method inherited from the parent
8341         will remain in the vtable of this non-abstract class.
8342
8343         * class.c: (mono_class_setup_vtable): continue search for a real 
8344         method if only an abstract method is found.     
8345
8346 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8347
8348         * reflection.c: add size to encoding for ByValStr and ByValArray
8349         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
8350
8351 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8352
8353         * class.c (mono_class_setup_vtable): pass the override info as an
8354         argument.
8355
8356         * class.c (mono_class_setup_vtable): set the slot of overriding methods
8357         correctly.
8358         
8359         * reflection.c (ensure_runtime_vtable); add support for method 
8360         overrides.
8361         
8362 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8363
8364         * reflection.c (resolution_scope_from_image): Hack to work to work with
8365         dynamic assemblies.
8366
8367         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
8368         added a 'force_ref' argument to force this function to allways return 
8369         a TypeRef. This is needed by mono_image_get_memberref_token ().
8370         
8371 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8372
8373         * reflection.c (mono_image_get_type_info): interfaces really don't have
8374         a parent.
8375
8376         * reflection.c (mono_image_basic_init): fill out missing fields of
8377         image structure.
8378
8379         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
8380         dynamic assemblies. This is required so dynamic assemblies show up in
8381         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
8382         Type::GetType() etc. This is consistent with MS behaviour.
8383
8384         * image.c image.h reflection.c: add newly created classes to the name 
8385         cache so mono_class_get () will find them.      
8386
8387 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8388
8389         First part of changes to get IKVM.NET running under mono.
8390         
8391         * appdomain.h, appdomain.c: added new function 
8392         mono_domain_try_type_resolve() which will emit TypeResolve events. 
8393         This function will call AppDomain::DoTypeResolve to do the actual work.
8394
8395         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
8396         moved existing code dealing with dynamic tokens to a new function 
8397         called mono_reflection_lookup_dynamic_token (). This function will 
8398         raise TypeResolve events when appropriate. Since reflection.c is not 
8399         part of libmetadata, a new hook function called 
8400         mono_lookup_dynamic_token() is added to class.c which will call this.
8401
8402         * assembly.h assembly.c: make the invoke_load_hook function public,
8403         so it can be called for dynamic assemblies.
8404
8405         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
8406
8407         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
8408         type isn't found.
8409
8410         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
8411         MonoGHashTable, since it contains pointers to objects which the GC 
8412         needs to track.
8413
8414         * assembly.c (search_loaded): remove unused variable.
8415         
8416 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
8417
8418         * object.c: fixed issue exposed by gcc-generated IL programs
8419         that use RVA data for pointers.
8420
8421 2003-01-25  Martin Baulig  <martin@ximian.com>
8422
8423         * threads.c (start_wrapper): Moved the initialization of
8424         `start_func' above the mono_new_thread_init() call to which we
8425         pass it as argument.
8426
8427 2003-01-24  Martin Baulig  <martin@ximian.com>
8428
8429         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
8430         the MonoThread pointer.
8431
8432 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
8433
8434         * icall.c: Rename `PowImpl' to Pow.
8435
8436 2003-01-23  Dick Porter  <dick@ximian.com>
8437
8438         * threads.c (start_wrapper): Create a Thread object if needed, so
8439         the Main() thread can do the class initialisation in a subthread
8440         that has been set up to allow managed code execution.
8441
8442         Pass the thread ID instead of the MonoThread pointer to the thread
8443         start and attach callbacks.  This change is required, because the
8444         jit thread start callback must be called _before_ the Thread
8445         object can be created.
8446         
8447         (mono_thread_init): Removed much object creation code that is no
8448         longer needed.  No managed code is called from here now.
8449
8450         * object.c (mono_runtime_exec_managed_code): Create a subthread
8451         for Main, and call back to the runtime to use it.
8452         Set the exit code when Main exits.
8453
8454         * gc.c: Make sure domain finalisation happens in a subthread.
8455         Re-enable threaded GC, fixing bug 31333 (again).
8456
8457         * environment.c: System.Environment internall calls (so far just
8458         ExitCode is here, the others are still in icall.c)
8459
8460         * appdomain.c (mono_runtime_cleanup): All threads running managed
8461         code should have finished before mono_runtime_cleanup() is
8462         reached, so no need to clean up threads.
8463
8464 2003-01-22  Martin Baulig  <martin@ximian.com>
8465
8466         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
8467         `gpointer func' arguments.      
8468         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
8469         but added `MonoThread *thread' argument.
8470         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
8471
8472         * threads.c (mono_new_thread_init): Added `gpointer func' argument
8473         and pass it to the mono_thread_start_cb callback.
8474         (mono_install_thread_callbacks): New public function to install a
8475         set of callbacks which are set by the debugger.
8476         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
8477
8478 2003-01-22  Martin Baulig  <martin@ximian.com>
8479
8480         * Makefile.am: Install debug-mono-symfile.h.
8481
8482 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
8483
8484         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
8485
8486 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
8487
8488         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
8489         * class.c (mono_ptr_class_get): correctly set access levels of pointers
8490         (mono_array_class_get): correctly set access levels of arrays
8491
8492 2003-01-20      Patrik Torstensson
8493         * image.h (MonoAssemblyName): changed major, minor, build, revision
8494         from signed to unsigned.
8495
8496 2003-01-20  sean kasun <skasun@azstarnet.com>
8497
8498         * reflection.c (load_cattr_value): Now this handles
8499         MONO_TYPE_SZARRAY.  Fixes bug #35629
8500
8501 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
8502
8503         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
8504         integer value
8505
8506 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8507
8508         * decimal.c: fixed bug #26056.
8509
8510 2003-01-17  Martin Baulig  <martin@ximian.com>
8511
8512         * gc.c: Raise an ExecutionEngineException instead of using g_error().
8513
8514 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8515
8516         * exception.[ch]:
8517         (mono_get_exception_type_initialization): new function.
8518
8519         * object.c: throw a TypeInitializationException when an exception is
8520         thrown invoking the class constructor.
8521
8522 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8523
8524         * reflection.c: fixed attribute reading.
8525
8526 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8527
8528         * icall.c:
8529         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
8530         provided, look for the type in the calling assembly and then in
8531         mscorlib; if the assembly name is provided, only try that one.
8532
8533 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
8534
8535         * object.c: register the vtable before there is a chance it's
8536         queried again recursively.
8537
8538 2003-01-13  Duncan Mak  <duncan@ximian.com>
8539
8540         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
8541         gc-internal.h. 
8542         
8543 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
8544
8545         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
8546
8547 2003-01-11  Martin Baulig  <martin@ximian.com>
8548
8549         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
8550         this to 20 for the release.
8551
8552 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
8553
8554         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
8555
8556         * loader.c (mono_method_get_marshal_info): bug fix
8557
8558         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
8559         structures with explicit layout
8560
8561 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
8562
8563         * profiler.c: made the output more readable (and sorted). 
8564         Added caller information for the allocation profiler.
8565
8566 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
8567
8568         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
8569
8570 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8571
8572         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
8573         to get value types.
8574         
8575 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
8576
8577         * object.c, profiler.h, profiler.c, profiler-private.h:
8578         Added object allocation profiler.
8579
8580 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
8581
8582         * reflection.h, reflection.c: handle global methods.
8583         Compress blob entries.
8584
8585 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
8586
8587         * marshal.c: fix compilation.
8588
8589 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
8590
8591         * loader.c (mono_method_get_marshal_info): impl.
8592
8593         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
8594
8595 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8596
8597         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
8598         for reference types.
8599
8600 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
8601
8602         * loader.c: fixed off by one error in loaded parameter names.
8603
8604 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
8605
8606         * marshal.c (mono_marshal_get_icall_wrapper): like
8607         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
8608         instead of a MonoMethod.
8609
8610 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8611
8612         * decimal.c: fixed bug #36537.
8613
8614 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
8615
8616         * marshal.c: throw a missing method exception if a
8617         P/Invoke method is not found.
8618
8619 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
8620
8621         * icall.c: allow a null this for constructors.
8622
8623 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
8624
8625         * icall.c: raise the proper exceptions if the arguments to the
8626         internal Invoke are incorrect.
8627
8628 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
8629
8630         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
8631
8632 2003-01-03  Martin Baulig  <martin@ximian.com>
8633
8634         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
8635
8636 2002-12-31  Martin Baulig  <martin@ximian.com>
8637
8638         * debug-mono-symfile.c: Completely rewrote the type section.
8639         Instead of using individual malloc()ed fields, we use one big
8640         continuous memory area and offsets into this area.
8641         See the comments in the source code for details.
8642
8643 2002-12-30  Martin Baulig  <martin@ximian.com>
8644
8645         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
8646
8647 2002-12-30  Martin Baulig  <martin@ximian.com>
8648
8649         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
8650         line number table in this data blob instead of using an external
8651         pointer.
8652
8653 2002-12-28  Martin Baulig  <martin@ximian.com>
8654
8655         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
8656
8657 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
8658
8659         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
8660         as a boxed return type.
8661
8662 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
8663
8664         * appdomain.c
8665         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
8666         g_build_filename to properly get separators on the filename created.
8667
8668         * object.h: Small change, introduce MonoMarshalByRefObject to
8669         track the layout of that structure in the C# universe as we make
8670         changes there.
8671
8672 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
8673
8674         * object.c: removed assert to allow static fields on interfaces.
8675         * loader.c: a TypeSpec may be used for any type, not just arrays.
8676
8677 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
8678
8679         * class.c, class.h: added mono_class_array_element_size ().
8680         Ignore static methods in interfaces.
8681
8682 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8683
8684         * threads.c: fixed the build under cygwin.
8685
8686 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
8687
8688         * reflection.c: handle nullref constants. Allocate keys for
8689         reflection handles with the GC.
8690
8691 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
8692
8693         * threads.c, threads.h: added mono_thread_get_abort_signal()
8694         to get a suitable signal for thread abort.
8695
8696 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
8697
8698         * metadata.c: fix handling of ExportedType table.
8699
8700 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8701
8702         * icall.c: added WriteWindowsDebugString internal call.
8703
8704 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8705
8706         * reflection.h: added fields to match C# implementation.
8707
8708 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8709
8710         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
8711
8712 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
8713
8714         * gc.h, gc-internal.h: Rename header for GC internal calls to
8715         gc-internal.h from gc.h as to not clash with Boehm GC having its
8716         header installed as <gc.h> in outside include paths.
8717         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
8718         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
8719
8720 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8721
8722         * icall.c: assign minor, build and revision in FillName.
8723
8724 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
8725
8726         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
8727         Added support for running code generated by Reflection.Emit.
8728
8729 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8730
8731         * appdomain.c: check for NULL argument in LoadFrom.
8732
8733 2002-12-10  Dick Porter  <dick@ximian.com>
8734
8735         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
8736
8737 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8738
8739         * appdomain.c: fix buglet when building exe file name.  Handle full
8740         assembly name (needed after latest changes to AssemblyName).
8741         * image.c:
8742         (mono_image_close): free some hashtables.
8743
8744 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
8745
8746         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
8747         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
8748         on some systems (redhat 7.3) 
8749
8750 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
8751
8752         * threads.c: delete the critical section of a sync block,
8753         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
8754
8755 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
8756
8757         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
8758
8759 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8760
8761         * appdomain.[ch]: handle the assembly preload event to try loading the
8762         assemblies using the paths we have in the current domain.
8763
8764         * assembly.[ch]: created an assembly preload hook that is called to try
8765         loading the assembly by other means that the ones provided here.
8766
8767         * domain.c: initialize the domain search path.
8768
8769         From now on, assemblies (TODO: except corlib and System) are loaded
8770         according to these rules when using mono_assembly_load ():
8771
8772                 1. It tries to load the assembly from the ApplicationBase
8773                 of the current domain appending .dll and .exe (TODO: have to
8774                 try loading from name/name.dll and name/name.exe).
8775
8776                 2. It tries the search path specified in PrivateBinPath for the
8777                 current domain (if any).
8778
8779                 3. Previous behavior.
8780
8781 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
8782
8783         * icall.c: implemented GetInterfaceMap() related icall.
8784         * domain.c, loader.h: load MethodInfo in mono_defaults.
8785
8786 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
8787
8788         * gc.c: disable the finalizer thread for now, untill all the issues
8789         with it are resolved.
8790
8791 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
8792
8793         * string-icalls.c: handle embedded nulls in string ctor when the
8794         length is specified.
8795
8796 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
8797
8798         * class.c: look for explicit interface implementation in parent
8799         classes, too.
8800
8801 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
8802
8803         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
8804
8805 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
8806
8807         * gc.c: protect handles with a critical section.
8808
8809 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8810
8811         * icall.c:
8812         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
8813         parameters. If no assembly specified, try getting the type from all
8814         the assemblies in the current domain, else, load the assembly and get
8815         the type from it.
8816
8817 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8818
8819         * marshal.c: applied patch from Aleksey Demakov that fixes
8820         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
8821
8822 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8823
8824         * icall.c: fixed get_location.
8825
8826 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
8827
8828         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
8829         declarations to make it work with older gcc. 
8830
8831         * loader.c (mono_get_method): set signature->pinvoke for native calls
8832
8833 2002-11-20  Dick Porter  <dick@ximian.com>
8834
8835         * threads.c (mono_thread_init): Set the main thread's handle
8836
8837 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
8838
8839         * gc.c: allow compilation without GC support. Changed to match the
8840         mono coding style.
8841
8842 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
8843
8844         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
8845
8846 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
8847
8848         * reflection.c: set a public key token on the core assemblies.
8849
8850 2002-11-18  Dick Porter  <dick@ximian.com>
8851
8852         * threads.c: Split out some thread initialisation so that other
8853         files can set the start callback function.
8854
8855         * gc.c: Run finalisers in a separate thread, to avoid stack
8856         overflow.  Fixes bug 31333.
8857
8858         * appdomain.c: Set up GC finalisation thread.
8859
8860         * reflection.c: 
8861         * object.c: 
8862         * domain.c: Use gc.h macros for GC_malloc
8863         
8864 2002-11-15  Dick Porter  <dick@ximian.com>
8865
8866         * threadpool.c: 
8867         * threads.c:
8868         * appdomain.c: Removed mono_runtime_init_with_attach(),
8869         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
8870         merging the extra parameter with the existing function.  Removed
8871         unneeded code in mono_thread_attach().
8872
8873 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
8874
8875         * image.c (mono_image_loaded_by_guid): a method to get loaded
8876         images by guid. 
8877         (load_metadata_ptrs): we store the guid as string.
8878
8879 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
8880
8881         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
8882
8883         * metadata.c (mono_guid_to_string): imported method form Zoltan
8884         Varga (slightly modified)
8885
8886         * assembly.c (mono_assembly_open): load precompiled code
8887
8888         * loader.h (MonoMethod): we store the method token for use in the
8889         aot compiler. 
8890
8891 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8892
8893         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
8894         the hook function called when an assembly is loaded.
8895         
8896         * domain.c: Modified file.
8897         (mono_domain_assembly_load): removed hash table insertion of assemblies.
8898
8899         Fixes bug #33196.
8900
8901 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
8902
8903         * reflection.c: Map PEFileKind to the value expected by the WinNT
8904         image loader. 
8905
8906 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8907
8908         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
8909         Read until the buffer is filled completely.
8910
8911 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8912
8913         * icall.c: implemented MonoType.InternalGetEvent ().
8914
8915 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8916
8917         * appdomain.c: implemented InitAppDomainSetup. Delayed
8918         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
8919         the entry_assembly.
8920
8921         * assembly.c: base_dir is now an absolute path ending with
8922         G_DIR_SEPARATOR.
8923
8924         * icall.c: modified get_location according to the above changes.
8925
8926         * object.c: init AppDomain.SetupInformation for the default domain after
8927         we have the entry assembly.
8928
8929         * domain.c: when unloading a domain, setup = NULL.
8930
8931 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
8932
8933         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
8934
8935 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
8936
8937         * object.h, object.c: introduced mono_object_get_virtual_method ()
8938         to lookup the method invoked on an object when a callvirt is done on
8939         a method.
8940         * icall.c: make MethodInfo::Invoke() always do a virtual call.
8941
8942 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8943
8944         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
8945         current domain when loaded an assembly and failed to load it.
8946
8947         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
8948
8949 2002-10-31  Dick Porter  <dick@ximian.com>
8950
8951         * icall.c: 
8952         * file-io.h: 
8953         * file-io.c: Return the error status in a parameter, as the
8954         GetLastError() value has long since been blown away if we try and
8955         look it up in a subsequent internal call invocation.  Delete the
8956         GetLastError() internal call, because it's useless.
8957
8958 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
8959
8960         * class.[ch]: added cast_class to fix bug 29517
8961
8962 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
8963
8964         * marshal.c: create valid IL code in the filter clause:
8965         the new JIT is less forgiving:-)
8966
8967 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8968
8969         * icall.c: removed get_property internal call.
8970
8971 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
8972
8973         * appdomain.h domain.c: Added an ID to appdomains.
8974         
8975         * threads.c threads.h icall.c: Implement icall
8976         Thread:GetDomainID(), and remove unused icall 
8977         CurrentThreadDomain_internal.
8978
8979 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8980
8981         * icall.c: Don't recurse through the base types in GetConstructor.
8982         Fixes bug #32063. 
8983
8984 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
8985
8986         * mempool.h, mempool.c: added mono_mempool_empty() and
8987         mono_mempool_stats().
8988
8989 2002-10-23  Dick Porter  <dick@ximian.com>
8990
8991         * file-io.c: 
8992         * file-io.h: 
8993         * icall.c: Added MonoIO.GetFileType internal call
8994
8995 2002-10-17  Dick Porter  <dick@ximian.com>
8996
8997         * appdomain.c (mono_runtime_cleanup): Don't signal the async
8998         delegate semaphore before waiting for all threads to finish,
8999         because new threads can also call async delegates.  Fixes bug
9000         32004.
9001
9002         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9003         of 3 seconds, in case another async job is queued.  (This part is
9004         needed because the bug fix reintroduced the 3s exit lag.)  This
9005         makes the mono_runtime_shutdown flag superfluous.
9006
9007 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9008
9009         * reflection.c: include ehader size in method section headers.
9010         Really check for suplicated modules entries.
9011
9012 2002-10-17  Martin Baulig  <martin@gnome.org>
9013
9014         * debug-mono-symfile.c: Added back support for locals.
9015
9016 2002-10-14  Martin Baulig  <martin@gnome.org>
9017
9018         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9019         MONO_TYPE_VOID.
9020
9021 2002-10-14  Martin Baulig  <martin@gnome.org>
9022
9023         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9024         mono_class_get() instead of looking in the class cache. 
9025
9026 2002-10-13  Martin Baulig  <martin@gnome.org>
9027
9028         * debug-mono-symfile.c: Set version number to 28, include the
9029         signature in method names.
9030
9031 2002-10-13  Martin Baulig  <martin@gnome.org>
9032
9033         * debug-mono-symfile.h: Set version number to 27.
9034
9035 2002-10-11  Martin Baulig  <martin@gnome.org>
9036
9037         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9038
9039 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9040
9041         * metadata.c, metadata.h: added helper function to allocate signatures.
9042
9043 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9044
9045         * icall.c: added internal call to get the location of machine.config.
9046
9047 2002-10-08  Martin Baulig  <martin@gnome.org>
9048
9049         * debug-mono-symfile.c: Ignore classes with a pending init for the
9050         moment.
9051
9052 2002-10-03  Dick Porter  <dick@ximian.com>
9053
9054         * threads.c: Freebsd pthread_t is a pointer
9055
9056 2002-10-03  Dick Porter  <dick@ximian.com>
9057
9058         * socket-io.c: Implemented GetHostName_internal
9059
9060 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9061
9062         * mono-config.c:
9063         (mono_config_parse_file): don't leak the text.
9064
9065 2002-10-02  Martin Baulig  <martin@gnome.org>
9066
9067         * debug-mono-symfile.c: Added support for methods.
9068
9069 2002-10-01  Martin Baulig  <martin@gnome.org>
9070
9071         * debug-mono-symfile.c: Don't emit methods and line numbers for
9072         the dynamic symbol file, just write the type table.  We can easily
9073         have an external helper program which creates a symbol file for an
9074         IL file.        
9075
9076 2002-10-01  Dick Porter  <dick@ximian.com>
9077
9078         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9079         Only add the handle to the cleanup array when we're about to
9080         launch the thread.  Bug 31425 deadlocked when the test was run on
9081         mono under w32.
9082
9083 2002-10-01  Martin Baulig  <martin@gnome.org>
9084
9085         * debug-mono-symfile.c: Added support for properties.
9086
9087 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9088
9089         * reflection.c: unaligned store fix from Mark Crichton
9090         <crichton@gimp.org>.
9091
9092 2002-09-27  Martin Baulig  <martin@gnome.org>
9093
9094         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9095         New interncall.
9096
9097 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9098
9099         * assembly.h, assembly.c: use a sane API to hook into the assembly
9100         loading process instead of a useless special-purpouse hack
9101         (ngen needs a hook, too, for example).
9102
9103 2002-09-27  Dick Porter  <dick@ximian.com>
9104
9105         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9106         io-layer can set up some process handle info.  Not needed on w32,
9107         but doesn't hurt either.
9108
9109         * process.c: Pass the program name in the second parameter to
9110         CreateProcess, so the path is searched.  Include the working
9111         directory. Implemented process name, process enumeration, and some
9112         process detail internal calls.
9113         
9114         * icall.c: Added internal calls for process lookup, and some
9115         process details
9116
9117 2002-09-26  Martin Baulig  <martin@gnome.org>
9118
9119         * assembly.c (mono_install_open_assembly_hook): New global
9120         function to install a function to be invoked each time a new
9121         assembly is loaded.
9122         (mono_assembly_open): Run this callback function if set.
9123
9124         * debug-mono-symfile.c: Put back line numbers for the dynamic
9125         symbol file and also record the .il file as source file.  This
9126         allows us to install the temporary symbol file as `file.dbg' just
9127         like a compiler-generated one.
9128
9129 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9130
9131         * Corrected typo in gc.c (BOHEM vs BOEHM).
9132
9133 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9134
9135         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9136         GetProperties. Also avoid calling g_slist_length in GetProperties and
9137         GetMethods.
9138
9139 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9140
9141         * reflection.c: avoid unaligned stores (bug spotted by
9142         Mark Crichton  <crichton@gimp.org>).
9143
9144 2002-09-25  Martin Baulig  <martin@gnome.org>
9145
9146         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9147         instead of guint64 for addresses and added prologue/epilogue info.
9148
9149 2002-09-25  Martin Baulig  <martin@gnome.org>
9150
9151         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9152         store line number info.  For the dynamic symbol file, we only need
9153         to provide the JIT generated dynamic line number info for the dynamic
9154         symbol file.
9155
9156 2002-09-25  Martin Baulig  <martin@gnome.org>
9157
9158         * debug-mono-symfile.h: Incremented version number.
9159
9160 2002-09-24  Martin Baulig  <martin@gnome.org>
9161
9162         * class.c (mono_debugger_class_init_func): New global function
9163         pointer variable.
9164         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9165         call it.
9166
9167         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9168         function.  This is called via the mono_debugger_class_init_func
9169         hook to add all types to the dynamic type table.
9170         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9171         from its metadata token.
9172
9173         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9174         New interncall for the debugger.
9175
9176 2002-09-24  Nick Drochak <ndrochak@gol.com>
9177
9178         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9179         before using it in case it is null.
9180         
9181 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9182
9183         * metadata.c: allow custom modifiers in local var signatures
9184         (bug spotted by Zoltan Varga).
9185
9186 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9187
9188         * class.c: deal with the <Module> class that may have a NULL vtable.
9189         Eliminate warnings.
9190
9191 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9192
9193         * image.c, image.h: more strong name helpers.
9194         * monosn.c: more work: convert pem keys to cryptoapi format.
9195
9196 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9197
9198         * string-icalls.c: speedup IndexOf.
9199
9200 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9201
9202         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9203
9204 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9205
9206         * icall.c: cleanup: use mono_object_domain ().
9207
9208 2002-09-23  Martin Baulig  <martin@gnome.org>
9209
9210         * debug-mono-symfile.c: Improved type support.
9211
9212 2002-09-22  Martin Baulig  <martin@gnome.org>
9213
9214         * debug-mono-symfile.c: Added support for reference types and strings.
9215
9216 2002-09-22  Martin Baulig  <martin@gnome.org>
9217
9218         * debug-mono-symfile.c: Started to work on the type table.
9219
9220 2002-09-21  Martin Baulig  <martin@gnome.org>
9221
9222         * debug-mono-symfile.c: Largely reworked the symbol table format.
9223         The symbol table is now incrementally updated each time a new
9224         method is added.  We're now also using our own magic and version
9225         so that you don't need to recompile all your classes if the
9226         dynamic table changes.
9227         (mono_debug_update_mono_symbol_file): Removed.
9228         (mono_debug_symfile_add_method): New function to add a method.
9229
9230 2002-09-21  Martin Baulig  <martin@gnome.org>
9231
9232         * icall.c
9233         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9234         New interncall.
9235
9236         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9237         New interncall to get a method from its metadata token.
9238
9239 2002-09-21  Martin Baulig  <martin@gnome.org>
9240
9241         * debug-mono-symfile.c: Create type table.
9242
9243 2002-09-20  Martin Baulig  <martin@gnome.org>
9244
9245         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9246
9247 2002-09-20  Martin Baulig  <martin@gnome.org>
9248
9249         * debug-mono-symfile.c: Provide information about params and locals.
9250
9251 2002-09-20  Martin Baulig  <martin@gnome.org>
9252
9253         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9254         New interncall.
9255
9256         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9257         interncall to get a method from its metadata token.
9258
9259 2002-09-20  Martin Baulig  <martin@gnome.org>
9260
9261         * debug-mono-symfile.c: Added a few checks for method->header
9262         being non-NULL.  This should never happen, but for the moment
9263         let's use a g_warning() rather than a g_assert().
9264
9265 2002-09-19  Mark Crichton  <crichton@gimp.org>
9266
9267         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9268         even if support for it isn't present.  Added an #ifdef to fix this.
9269
9270         * socket-io.c: Added checks back for Solaris support.
9271
9272 2002-09-19  Martin Baulig  <martin@gnome.org>
9273
9274         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9275         changes in the symbol file format.
9276
9277 2002-09-18  Martin Baulig  <martin@gnome.org>
9278
9279         * debug-mono-symfile.c: Set version number to 21.
9280
9281 2002-09-18  Dick Porter  <dick@ximian.com>
9282
9283         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9284         on netbsd.  Fixes bug 30051.
9285
9286 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9287
9288         * reflection.c:
9289         (set_version_from_string): little fix.
9290
9291 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9292
9293         * monosn.c, Makefile.am: added strong name utility.
9294         * reflection.h, reflection.c: implemented delayed signing,
9295         locale, version and hash id assembly attributes.
9296
9297 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9298
9299         * loader.c, metadata.c: load param attributes in signatures.
9300
9301 2002-09-16  Martin Baulig  <martin@gnome.org>
9302
9303         * debug-mono-symfile.c: Added string table with all method names.
9304
9305 2002-09-14  Martin Baulig  <martin@gnome.org>
9306
9307         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9308         fast method lookup.
9309
9310 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9311
9312         * reflection.c: record the public key token of referenced assemblies.
9313
9314 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9315
9316         * image.c, image.h: added functions to get the strong name and the
9317         public key of an assembly.
9318         * pedump.c: use them.
9319
9320 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9321
9322         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9323
9324 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9325
9326         * marshal.c (mono_marshal_get_managed_wrapper): Added
9327         MONO_TYPE_BOOLEAN 
9328
9329 2002-09-11  Martin Baulig  <martin@gnome.org>
9330
9331         * gc.c: Call GC_unregister_disappearing_link() on all links when
9332         finalizing them, this is necessary to aviod a crash in boehm's
9333         finalize handler.
9334
9335 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9336
9337         * gc.c: handle GetTarget for finalized objects spotted and fixed by
9338         nick@chemlab.org.
9339
9340 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9341
9342         * icall.c: implemented MonoType::Module.
9343         * reflection.c, reflection.h: mono_module_get_object () from
9344         Tomi Pakarinen <tomi.pakarinen@welho.com>.
9345
9346 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9347
9348         * icall.c: ignore overridden methods in GetMethods ().
9349         Fix for FieldInfo::SetValue().
9350         * object.c: handle float/double in runtime invoke.
9351
9352 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9353
9354         * object.c: allow a constructor to be called again on an object.
9355
9356 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9357
9358         * class.h, class.c: move field layout code to it's own function and
9359         export it. Get an interface id earlier. Move fields in MonoClass
9360         so they are more cache friendly and align the bitfields.
9361         * loader.c: temporary handle get_param_names() for a runtime method.
9362         * reflection.c, reflection.h: more code to handle runtime creation of
9363         types.
9364
9365 2002-09-09  Martin Baulig  <martin@gnome.org>
9366
9367         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
9368         signature with the pinvoke field being set for the actual call.
9369
9370 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9371
9372         * icall.c: removed some unused icalls. Start of map of glib charsets
9373         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
9374
9375 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9376
9377         * debug-helpers.c: break infinite loop (found and fixed by
9378         Holger Arnold <harnold@gmx.de>).
9379
9380 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9381
9382         * icall.c: target may be null in create_delegate.
9383
9384 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9385
9386         * marshal.c: handle a boolean return type.
9387
9388 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9389
9390         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
9391
9392 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9393
9394         * gc.c: fix weakreferences.
9395
9396 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9397
9398         * icall.c: added icall to get default codepage.
9399
9400 2002-09-03  Dick Porter  <dick@ximian.com>
9401
9402         * threads.h: 
9403         * threads.c: Use MonoThread instead of MonoObject where
9404         apropriate.
9405
9406         Store running thread objects in a hash table, so that we have all
9407         the info to hand when waiting for them to finish
9408         (means we don't need OpenThread() any more, so mingw builds should
9409         be fully functional again.)
9410
9411         * verify.c:
9412         * object.h: Added thread ID to MonoThread
9413
9414 2002-09-03  Martin Baulig  <martin@gnome.org>
9415
9416         * icall.c (System.Reflection.Assembly::get_location): New interncall.
9417
9418 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9419
9420         * icall.c: fixed leak in get_temp_path. Thanks lupus.
9421
9422 2002-09-03  Martin Baulig  <martin@gnome.org>
9423
9424         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
9425         argument to store the end address of the disassembled instruction.
9426
9427         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
9428         here from debug-symfile.h.
9429         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
9430         JIT into this struct.
9431         (MonoSymbolFile): Added `char *image_file' field.
9432         (MonoDebugGetMethodFunc): Removed.
9433         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
9434         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
9435         (mono_debug_find_method): New method.
9436
9437         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
9438         create a full symbol file.
9439         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
9440         and static symbol files.
9441         (mono_debug_find_method): The symbol file keeps an internal method hash,
9442         call this to get a MonoDebugMethodInfo from a MonoMethod.
9443
9444         * debug-symfile.[ch]: Removed.
9445
9446 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
9447
9448         * image.c (do_mono_image_open): Remove linker version check.
9449
9450 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
9451
9452         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
9453         wrappers for instance methods.
9454         
9455 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9456
9457         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
9458
9459 2002-08-28  Dick Porter  <dick@ximian.com>
9460
9461         * Makefile.am: Export HOST_CC for w32 builds
9462
9463 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9464
9465         * file-io.c process.c: MonoString are null terminated, no
9466         need for mono_string_to_utf16() anymore.
9467
9468 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9469
9470         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
9471
9472 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
9473
9474         * icall.c, reflection.h: speedup System.MonoType.
9475
9476 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9477
9478         * reflection.c: allow null as the value of a string argument in
9479         custom attributes constructors.
9480
9481 2002-08-27  Martin Baulig  <martin@gnome.org>
9482
9483         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
9484         `trampoline_address' field.
9485
9486 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
9487
9488         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
9489         check (fixes bug #29486) 
9490
9491 2002-08-27  Martin Baulig  <martin@gnome.org>
9492
9493         * debug-mono-symfile.c: Changed the file format in a way that allows us
9494         open it read-only and to use a specially malloced area for all the
9495         dynamic data.  We can now also generate a symbol file on-the-fly if we're
9496         debugging IL code and there is no MCS generated symbol file for it.
9497
9498 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9499
9500         * object.c: added a define for a good string and array
9501         creation speedup (not enabled by default because we need to deal with
9502         the synch stuff).
9503
9504 2002-08-26  Martin Baulig  <martin@gnome.org>
9505
9506         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
9507         function to create a dynamic symbol file.  This is used by the
9508         debugger to create a symbol file for IL code on-the-fly.
9509
9510 2002-08-26  Martin Baulig  <martin@gnome.org>
9511
9512         * loader.c (mono_lookup_pinvoke_call): Include the error message
9513         from g_module_error() in the error message.
9514
9515 2002-08-24  Martin Baulig  <martin@gnome.org>
9516
9517         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
9518         function to update the symbol file.  The symbol file is mmap()ed
9519         writable, but private.  This allows us to install the symbol file
9520         together with the assembly.
9521
9522 2002-08-24  Martin Baulig  <martin@gnome.org>
9523
9524         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
9525         but they can read the new symbol file format which mcs is now creating.
9526
9527         * debug-symfile.c (mono_debug_find_source_location): Moved to
9528         debug-mono-symfile.c; this is now operating on the new symbol file.
9529
9530 2002-08-23  Martin Baulig  <martin@gnome.org>
9531
9532         * debug-helpers.c (mono_method_desc_from_method): New function to get
9533         a MonoMethodDesc from a MonoMethod.
9534
9535 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9536
9537         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
9538         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
9539
9540 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
9541
9542         * string-icalls.[ch]: make helper methods static.
9543
9544 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9545
9546         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
9547         types to it and to SetValueInternal.
9548
9549         * object.c: Moved handle_enum label to its proper place. This was the
9550         f... bug! ;-)
9551
9552         This time i compiled mcs and gtk-sharp and they both work.
9553
9554 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9555
9556         * icall.c: reverted partially my previous patch until 
9557         object.c:set_value handles enums correcly.
9558
9559 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9560
9561         * icall.c:
9562         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
9563         (ves_icall_System_Environment_get_MachineName): removed warning when
9564         compiling under cygwin.
9565
9566 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9567
9568         * object.c: fixed field_get_value() for reference types.
9569
9570 2002-08-22  Dick Porter  <dick@ximian.com>
9571
9572         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
9573         Don't free a buffer while it's still needed.  Patch from Jonathan
9574         Liger <Jonathan.liger@wanadoo.fr>
9575
9576 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
9577
9578         * icall.c (ves_icall_System_Environment_get_Platform): Add new
9579         internal call.
9580
9581 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
9582
9583         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
9584         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
9585
9586         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
9587         we call unmanaged code which throws exceptions.
9588
9589 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9590
9591         * appdomain.h: added per-domain entry_assembly.
9592         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
9593         arguments.
9594         * icall.c: Assembly::GetEntryAssembly icall.
9595         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
9596         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
9597
9598 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
9599
9600         * appdomain.h, gc.c: added mono_domain_finalize ().
9601
9602 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9603
9604         * object.c:
9605         (mono_print_unhandled_exception): changed g_warning by g_printerr
9606         because g_log has a 1024 characters limit (yeah, i got a big stack
9607         trace). Don't print exception name, that should be in ToString 
9608         returned string.
9609
9610 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9611
9612         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
9613         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
9614
9615 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9616
9617         * object.c:
9618         (mono_print_unhandled_exception): after previous commit, i realized
9619         that MS calls ToString on the exception. I changed this function to
9620         do that. This way we get stack_trace for free.
9621
9622 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9623
9624         * object.c:
9625         (mono_print_unhandled_exception): invoke Message property instead of
9626         getting 'message' field from Exception. Don't allocate memory for
9627         'trace' and 'message' if not needed.
9628
9629 2002-08-18  Dick Porter  <dick@ximian.com>
9630
9631         * unicode.c: Fix asserts to match Encoder.cs checks
9632
9633 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9634
9635         * marshal.c: fix unaligned store issue and a few wrong
9636         opcode argument types.
9637
9638 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9639
9640         * icall.c: added GetUninitializedObjectInternal internal call.
9641
9642 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
9643
9644         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
9645         to the right domain.
9646
9647 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
9648
9649         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
9650
9651         * class.c (class_compute_field_layout): set blittable to false for Strings
9652
9653         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
9654
9655 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9656
9657         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
9658         first chunk of code to create types at runtime. Code to
9659         handle ReflectedType/DeclaringType. Make reflection handles
9660         domain specific.
9661
9662 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
9663
9664         * class.c: set correct name in arrays.
9665
9666 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
9667
9668         * appdomain.c (mono_domain_transfer_object): make it work with
9669         valuetypes. bug fixes.
9670
9671 2002-08-12  Dick Porter  <dick@ximian.com>
9672
9673         * object.h: Rename some parameters to avoid c++ keywords (Patch
9674         from Joseph Wenninger <kde@jowenn.at>)
9675
9676 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
9677
9678         * icall.c: added icall to implement Assembly.GetFile*.
9679
9680 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9681
9682         * reflection.h, reflection.c: code to embed managed resources.
9683
9684 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9685
9686         * class.c: move all the type size stuff into
9687         class_compute_field_layout().
9688
9689 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9690
9691         * class.c: ensure enums have always the correct instance size.
9692         * unicode.c: remove wrong assert.
9693
9694 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
9695
9696         * assembly.c: fix mem corruption issue.
9697         * image.h, image.c: added mono_image_get_resource () to access
9698         managed resources.
9699         * icall.c: implemented Assembly.EntryPoint property and some
9700         Managed Resources related internalcalls.
9701
9702
9703 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9704
9705         * image.c, image.h: impemented mono_image_get_entry_point ().
9706         * appdomain.c: use mono_image_get_entry_point.
9707
9708 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
9709
9710         * reflection.c: support the object type argument when loading
9711         custom attributes.
9712
9713 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
9714
9715         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
9716         String as return type.
9717
9718 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
9719
9720         * reflection.c: fix encoding of named args for custom attrs to match
9721         the ms implementation. Read them back when instantiating custom
9722         attributes.
9723
9724 2002-08-02  Radek Doulik  <rodo@ximian.com>
9725
9726         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
9727         by Dietmar as quick fix
9728         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
9729         16 as stack size, used on more places as quick fix before Dietmar
9730         will fix it properly
9731
9732 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9733
9734         * object.h, object.c: added accessors for fields and properties.
9735
9736 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
9737
9738         * class.c, class.h: made mono_class_get_field_from_name ()
9739         loop on parent types.
9740         Added mono_class_get_property_from_name ().
9741
9742 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
9743
9744         * class.c, class.h: move the code to setup the type vtable in its own
9745         function so that it can be reused also for types created at runtime.
9746         Eliminate the "class" identifier from the header file.
9747         * reflection.c: setup the vtable for enums so that we can create
9748         objects for use in SetConstant ().
9749
9750 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
9751
9752         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
9753         instead of the delegate itself as this pointer (bug #28383)
9754
9755 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
9756
9757         * marshal.c (mono_marshal_get_managed_wrapper): added return type
9758         conversions.
9759
9760 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9761
9762         * loader.c: don't set the pinvoke bit on icalls.
9763
9764 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
9765
9766         * debug-helpers.c (mono_method_full_name): only print a number to
9767         indicate wrapper type (so that the output is more readable in traces).
9768
9769 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
9770
9771         * class.c (mono_class_init): include method override patch from Paolo
9772
9773 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
9774
9775         * icall.c: fixed GetTypeCode().
9776
9777 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
9778
9779         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
9780         use real delegate invoke function to make it work with multicast
9781         delegates (fix bug# 28291).
9782
9783 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
9784
9785         * object.c: load constant strings.
9786
9787 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9788
9789         * reflection.c: no magic numbers.
9790         * tabledefs.h: security action enum.
9791
9792 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
9793
9794         * assembly.c: fix possible memory corruption.
9795
9796 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9797
9798         * reflection.h, reflection.c: added support for linking resources.
9799         * verify.c: check we have an updated corlib.
9800
9801 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
9802
9803         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
9804         string arrays.
9805         (mono_marshal_string_array): null terminate unmanaged string arrays.
9806         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
9807
9808 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9809
9810         * icall.c: Type.GetType () can now return also types from the
9811         calling assembly.
9812
9813 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
9814
9815         * loader.h, loader.c: stack walking support.
9816         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
9817         GetCallingAssembly.
9818
9819 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
9820
9821         * marshal.c: added optimisations for blittable types 
9822
9823         * class.c (mono_array_class_get): do not set blittable attribute on arrays
9824         (mono_class_setup_mono_type): set blittable attribute for single
9825         and double.
9826
9827         * marshal.c (mono_string_utf8_to_builder): impl.
9828         (mono_string_builder_to_utf8): impl.
9829         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
9830
9831 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
9832
9833         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
9834         (mono_marshal_get_managed_wrapper): impl. byref types
9835
9836 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9837
9838         * icall.c:
9839         (search_method): don't display debug message. 
9840
9841 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
9842
9843         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
9844
9845 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
9846
9847         * appdomain.c: set the missing filename when throwing exception.
9848
9849 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
9850
9851         * metadata.c (mono_type_size): code cleanup
9852         (mono_type_stack_size): removed some test code
9853
9854 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
9855
9856         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
9857         mono_get_exception_file_not_found now.
9858
9859         * exception.c (mono_exception_from_name_two_strings): New version
9860         that will call a constructor with two string arguments. 
9861         (mono_get_exception_file_not_found): New helper routine, used to
9862         report file-not-found errors.
9863
9864 2002-07-20  Dick Porter  <dick@ximian.com>
9865
9866         * process.h:
9867         * process.c: Pass file handles to CreateProcess
9868         
9869         * icall.c:
9870         * file-io.h:
9871         * file-io.c: Implemented CreatePipe
9872
9873 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
9874
9875         * metadata.c (mono_get_param_info): set alignment for value types
9876
9877 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9878
9879         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
9880         Constify mono_domain_assembly_open().
9881         * loader.c: handle null namespace in icalls.
9882
9883 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
9884
9885         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
9886         (emit_str_to_ptr_conv): marshal object as structs
9887
9888         * metadata.c (mono_type_to_unmanaged): marshal object as structs
9889
9890         * marshal.c (mono_marshal_get_runtime_invoke): support value types
9891
9892 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
9893
9894         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
9895         (mono_marshal_get_native_wrapper): we an now return value types
9896
9897 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9898
9899         * verify.c: more checks implemented.
9900
9901 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
9902
9903         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
9904         (fix bug #27695)
9905         (mono_marshal_get_native_wrapper): allow byref arguments
9906         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
9907         impl. PtrToStringXXX methods
9908         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
9909         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
9910         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
9911         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
9912         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
9913
9914 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9915
9916         * reflection.c: fix buglet in parsing an assembly name.
9917
9918 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
9919
9920         * marshal.c (emit_ptr_to_str_conv): first impl.
9921
9922 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
9923
9924         * object.c, class.h: cache the vtable in the class as suggested by
9925         vargaz@freemail.hu (Zoltan Varga).
9926
9927 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9928
9929         * class.h, loader.c: added mono_field_from_token().
9930         * verify.c: first cut of type checking code.
9931
9932 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
9933
9934         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
9935
9936 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
9937
9938         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
9939         (fix bug #27782)
9940         (mono_marshal_get_remoting_invoke): impl.
9941         (mono_delegate_begin_invoke): impl.
9942         (mono_mb_emit_save_args): impl.
9943         (mono_delegate_end_invoke): impl.
9944         (mono_marshal_get_delegate_begin_invoke):
9945         (mono_marshal_get_delegate_end_invoke):
9946         (mono_marshal_get_delegate_invoke): generate a special name for
9947         those methods (including the signature) and associate them whith
9948         the delegate class. 
9949
9950 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
9951
9952         * reflection.[ch]: 
9953         (mono_reflection_type_from_name): now it has a MonoImage parameter
9954         which is used as the default image to search the type in. If the image
9955         is NULL or getting the type from it fails, it defaults to corlib.
9956
9957         * icall.c: changed 1 call to mono_reflection_type_from_name to match
9958         new parameter.
9959
9960 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9961
9962         * reflection.c: update the parameter table index.
9963
9964 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
9965
9966         * domain.c: don't include the mark byte in the string hash.
9967
9968 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
9969
9970         * icall.cs: icall for Type.GetTypeCode ().
9971         * verify: a couple of fixes and disabled local initialization checks.
9972
9973 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
9974
9975         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
9976
9977         * debug-helpers.c (mono_method_full_name): print the type of the
9978         runtime wrapper
9979
9980         * metadata.c (mono_signature_hash): a hash function for signatures
9981         (mono_signature_hash): better hash algorithm
9982
9983         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
9984
9985         * debug-helpers.c (mono_method_full_name): this can now generate
9986         method names with signatures
9987
9988         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
9989         method dont have this pointers.
9990
9991 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
9992
9993         * reflection.c: fixup typebuilder tokens.
9994         * image.c: fix buglet.
9995         * marshal.h: remove whitespace.
9996         * metadata.h, metadata.c: reinstate code that was removed.
9997         * verify.c: handle catch directives and fix another couple of bugs.
9998
9999 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10000
10001         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10002         (mono_marshal_get_native_wrapper): make it comp. with the old code
10003         (mono_marshal_get_native_wrapper): support boolean
10004         (mono_marshal_get_managed_wrapper): support more types
10005
10006 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10007
10008         * class.c (class_compute_field_layout): compute class->blittable attribute.
10009
10010 2002-07-09  Dick Porter  <dick@ximian.com>
10011
10012         * threads.c: Make the thread cleaning up cope with threads that
10013         call ExitThread()
10014
10015 2002-07-08  Radek Doulik  <rodo@ximian.com>
10016
10017         * reflection.c (method_encode_code): use non-translated values to
10018         compute finally_start, this fixes exception handling on ppc, yay!
10019
10020         * decimal.h (struct signscale): fix endianess
10021
10022 2002-07-07  Radek Doulik  <rodo@ximian.com>
10023
10024         * reflection.c: swap box_val and not val
10025
10026 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10027
10028         * reflection.c, reflection.h: handle full assembly info in type name.
10029         Handle Type arguments when loading custom attributes.
10030         * icall.c: updated to use new mono_reflection_type_from_name () method.
10031
10032 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10033
10034         * loader.c:
10035         (method_from_memberref): also print assembly name when method not found.
10036
10037 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10038
10039         * icall.c:
10040         (ves_icall_TypeGetProperties): fixed bug #27473. 
10041
10042 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10043
10044         * reflection.c: display image name and token when cannot find the
10045         .ctor for an attribute.
10046
10047 2002-07-05  Martin Baulig  <martin@gnome.org>
10048
10049         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10050
10051 2002-07-04  Dick Porter  <dick@ximian.com>
10052
10053         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10054         compile on mingw.  This will cause mingw builds to not wait for
10055         subthreads to terminate after the main thread does.  I've lodged a
10056         bug with the mingw developers for them to wrap OpenThread().
10057
10058 2002-07-03  Dick Porter  <dick@ximian.com>
10059
10060         * threads.c: Store thread IDs instead of handles, because
10061         GetCurrentThread() returns a pseudohandle and therefore stores
10062         useless values.  mono_thread_cleanup() continues checking the
10063         array of threads until it is empty, to cope with subthreads
10064         spawning new threads after the main thread has finished.
10065
10066         * profiler.h:
10067         * profiler.c:
10068         * profiler-private.h: Pass the thread ID to thread profiler
10069         functions, instead of a handle
10070
10071 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10072
10073         * verify.c: fixes to make it more usable.
10074         * pedump.c: added --verify code to verify IL code in an assembly.
10075
10076 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10077
10078         * reflection.c: turn errors into warnings to allow compiling corlib.
10079
10080 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10081
10082         * reflection.c: add special cases to compile corlib.
10083
10084 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10085
10086         * reflection.c: handle properties with only a set method.
10087
10088 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10089
10090         * opcodes.h: add enum with opcodes in opval order.
10091
10092 2002-07-01  Dick Porter  <dick@ximian.com>
10093         
10094         * object.h:
10095         * object.c (mono_runtime_run_main): Removed unneeded argument
10096
10097 2002-06-28  Martin Baulig  <martin@gnome.org>
10098
10099         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10100
10101 2002-06-27  Dick Porter  <dick@ximian.com>
10102
10103         * threads.c: Store the handle in both the parent thread and in the
10104         subthread, to minimise the time between starting a new thread and
10105         storing its ID.
10106
10107 2002-06-26  Dick Porter  <dick@ximian.com>
10108
10109         * appdomain.c (mono_runtime_cleanup): Close the socket library
10110         after all the threads have finished, not before
10111
10112 2002-06-26  Martin Baulig  <martin@gnome.org>
10113
10114         * debug-symfile.c (mono_debug_find_source_location): Added
10115         `guint32 *line_number' argument.  If it's not NULL, store the line number
10116         there and return the file name without the line number.
10117
10118 2002-06-25  Dick Porter  <dick@ximian.com>
10119
10120         * icall.c:
10121         * process.h:
10122         * process.c: Process forking and other support functions
10123
10124 2002-06-25  Dick Porter  <dick@ximian.com>
10125
10126         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10127         things dont happen when the image is closed.
10128         (mono_image_lookup_resource): Walk the resource section looking
10129         for a particular entry
10130
10131         * cil-coff.h: PE resource section decoding
10132
10133 2002-06-25  Dick Porter  <dick@ximian.com>
10134         
10135         * assembly.h:
10136         * assembly.c: 
10137         (mono_assembly_foreach): Accessor functions to walk the list of
10138         loaded assemblies
10139         (mono_assembly_set_main):
10140         (mono_assembly_get_main): Process methods need to know which
10141         assembly is the "main" one
10142
10143         * object.c (mono_runtime_run_main): Record the main assembly
10144
10145         * debug-helpers.c: Fix typo
10146
10147 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10148
10149         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10150         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10151
10152 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10153
10154         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10155
10156 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10157
10158         * image.c (do_mono_image_open): Initialize reference count,
10159         otherwise we leak the MonoImage.
10160
10161 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10162
10163         * reflection.c: small tweak to handle self-hosting.
10164
10165 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10166
10167         * reflection.c: fix type name parse code.
10168
10169 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10170
10171         * reflection.c: break out of the loop.
10172         * image.c: special case corlib.
10173
10174 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10175
10176         * reflection.c: add all the custom attrs at the end to ensure the
10177         ctors have been properly initialized when the attributes are defined
10178         in the current assembly.
10179
10180 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10181
10182         * reflection.c: handle correctly multiple-nested types.
10183
10184 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10185
10186         * row-indexes.h: fix typos.
10187         * reflection.c: adjust for typos and fix method_def_or_ref
10188         encoding in MethodImpl table.
10189
10190 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10191
10192         * reflection.c: fix entry point patching (thanks Serge!).
10193
10194 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10195
10196         * verify.c: add check for System.Exception
10197
10198 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10199
10200         * image.c, class.c: minifix for code just c&p'ed.
10201         * reflection.c: warning fix.
10202         * object.h, loader.h, domain.c: load also StringBuilder.
10203
10204 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10205
10206         * marshal.h, marshal.c: some support code to handle complex marshaling.
10207
10208 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10209
10210         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10211         Better signatures with vtable error dump.
10212
10213 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10214
10215         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10216
10217 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10218
10219         * icall.c (ves_icall_Type_GetField): impl.
10220
10221 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10222
10223         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10224         to retrieve a marshal description blob for a field or param.
10225
10226 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10227
10228         * reflection.h, reflection.c: change order of nested type emission
10229         to avoid table corruption. The NestedTypes table is sorted.
10230         * icall.c: change order of GetConstructor results to workaround mcs bug.
10231
10232 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10233
10234         * reflection.h, reflection.c: handle field and param marshal
10235         information.
10236
10237 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10238
10239         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10240
10241 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10242
10243         * reflection.c: fix call convention.
10244
10245 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10246
10247         * reflection.h, reflection.c: mono_image_get_memberref_token()
10248         takes a type instead of a class, now. Added
10249         mono_image_get_array_token() to create tokens for the special
10250         multi-dim array methods.
10251
10252 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10253
10254         * assembly.c: handle modules (no assembly table). Split
10255         loading references in its own function.
10256         * class.c: handle moduleref resolution scope.
10257         * image.c, image.h: cache module name in image.
10258
10259 2002-06-07  Martin Baulig  <martin@gnome.org>
10260
10261         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10262         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10263
10264 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10265
10266         * icall.c: more signature fixes that used uint instead of int.
10267
10268 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10269
10270         * reflection.c: fixed signature of field refs.
10271
10272 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10273
10274         * class.c, reflection.c: handle typerefs of nested types
10275         (both on read and when writing files).
10276
10277 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10278
10279         * icall.c: fix method signatures that tried to workaround the previous
10280         typo, d'oh!
10281
10282 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10283
10284         * debug-helpers.c: fix typo.
10285
10286 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10287
10288         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10289         rewrote the PE/COFF writing code (our programs are understood by the
10290         ms runtime, now).
10291
10292 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10293
10294         * gc.c, gc.h, icall.c: weakreference support.
10295
10296 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10297
10298         * Makefile.am, mono-config.c: use $(sysconfdir).
10299
10300 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10301
10302         * icall.c: changed default precision of Double.ToString() to 15.
10303         Fixed memory leak. Unified with Single.ToString.
10304
10305 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10306
10307         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10308
10309 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10310
10311         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10312         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10313         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10314         and myself.
10315
10316 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10317
10318         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10319
10320 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10321
10322         * reflection.c, socket-io.c: more compilation fixes.
10323
10324 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10325
10326         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10327         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10328         unicode.c: warning and compiler compatibility fixes.
10329
10330 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10331
10332         * class.h, metadata.c: fixed warnings/compilation errors.
10333
10334 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10335
10336         * Makefile.am, mono-config.c, mono-config.h: configuration file
10337         support routines.
10338         * loader.c, loader.h: make Dll mapping configurable at runtime in the
10339         config file. Export methods to insert and lookup mappings.
10340
10341 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10342
10343         * reflection.c: handle types and boxed objects in custom attr
10344         constructors.
10345
10346 2002-05-30  Martin Baulig  <martin@gnome.org>
10347
10348         * debug-symfile.c
10349         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
10350
10351 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
10352
10353         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
10354         to lookup the implmap row for a P/Invoke method.
10355         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
10356         P/Invoke method from the runtime on an as needed basis.
10357
10358 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
10359
10360         * metadata.c (mono_metadata_parse_signature): impl.
10361
10362 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10363
10364         * class.c: handle .pack directive.
10365
10366 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10367
10368         * object.c: initialize static fields with RVA data.
10369
10370 2002-05-25  Martin Baulig  <martin@gnome.org>
10371
10372         * debug-symfile.c
10373         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
10374
10375 2002-05-24  Martin Baulig  <martin@gnome.org>
10376
10377         * debug-symfile.c
10378         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
10379         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
10380         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
10381
10382 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10383
10384         * object.c: special case string ctros in invoke.
10385         * gc.c: silly whitespace changes.
10386
10387 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
10388
10389         * threadpool.[ch]: impl. a threadpool that can
10390         be used by mint and mono.
10391
10392 2002-05-22  Martin Baulig  <martin@gnome.org>
10393
10394         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
10395         The first argument is now a `MonoReflectionModuleBuilder *', the return
10396         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
10397         `methods' field to get the method builder.  The `token' argument is the
10398         unfixed token.
10399
10400         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
10401         invalid characters instead of g_assert_not_reached()ing.  This seems
10402         to be the behaviour of mscorlib.
10403
10404 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
10405
10406         * object.c (mono_runtime_invoke_array): applied patch from Rachel
10407         Hestilow to fix bug #25104
10408
10409 2002-05-21  Martin Baulig  <martin@gnome.org>
10410
10411         * debug-symfile.c (mono_debug_find_source_location): New function.
10412         Looks up an IL offset in the line number table and returns the source
10413         location as a string.
10414
10415 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10416
10417         * icall.c:
10418         (mono_double_ToStringImpl): changed %f by %g until we have something
10419         better.
10420
10421 2002-05-21  Nick Drochak  <ndrochak@gol.com>
10422
10423         * icall.c : Use different name for Math.Pow's icall.  Needed to check
10424         parameters first in C#.
10425
10426 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10427
10428         * icall.c, reflection.h: added icall to get info about an event.
10429
10430 2002-05-20  Radek Doulik  <rodo@ximian.com>
10431
10432         * object.c (mono_value_box): don't use memcpy for boxing on BIG
10433         endian
10434         (mono_value_box): don't use memcpy for small sizes on
10435         architectures with unaligned access
10436
10437 2002-05-20  Martin Baulig  <martin@gnome.org>
10438
10439         * reflection.c (mono_reflection_setup_internal_class): Don't crash
10440         if `tb->parent == NULL'.
10441         (mono_reflection_create_internal_class): New function.  This is
10442         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
10443         for enum types.
10444
10445         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
10446         New interncall.
10447
10448 2002-05-19  Martin Baulig  <martin@gnome.org>
10449
10450         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
10451         argument to get the length, don't default to the array length.
10452
10453 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
10454
10455         * assembly.c (mono_assembly_setrootdir): New function used to
10456         override the MONO_ASSEMBLIES directory.
10457
10458 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10459
10460         * icall.c: ValueType_GetHashCode() initialize local var.
10461
10462 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10463
10464         * reflection.c: sort custom attributes table.
10465
10466 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10467
10468         * reflection.c: support named args in custom attributes (write support).
10469
10470 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10471
10472         * reflection.c: fix finally position calculation.
10473
10474 2002-05-15  Radek Doulik  <rodo@ximian.com>
10475
10476         * reflection.c: fixed endianess at many places
10477
10478         * icall.c (ves_icall_InitializeArray): comment out debug msg
10479
10480 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
10481
10482         * object.c (mono_unhandled_exception): new function to handle
10483         unhandled exceptions.
10484         (mono_unhandled_exception): call the UnhandledException event.
10485         (mono_runtime_delegate_invoke): impl.
10486
10487 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
10488
10489         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
10490         returns the RVA, not the direct pointer to the data. Handle the case
10491         when the class size is fixed.
10492
10493 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10494
10495         * reflection.c: fix some endianess issues.
10496
10497 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
10498
10499         * object.c (mono_runtime_invoke): is now able to catch exceptions.
10500
10501         * threads.c (mono_thread_init): added a callback which is invoked
10502         at thread start.
10503
10504 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10505         
10506         * icall.c: make GetHashCode return non-negative values.
10507
10508 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10509
10510         * object.c, icall.c, gc.c: revert to address-based hashcode.
10511
10512 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
10513
10514         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
10515
10516 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10517
10518         * icall.c, class.c: special case <Module>.
10519
10520 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
10521
10522         * icall.c: fix bug in GetNow().
10523
10524 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
10525
10526         * object.c (mono_runtime_class_init): make sure that we call all
10527         static class constructors.
10528
10529 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10530
10531         * reflection.c: sort methodsemantics table.
10532
10533 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10534
10535         * reflection.h, reflection.c: honour init locals setting.
10536
10537 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
10538
10539         * icall.c: copied Double ToStringImpl for Single ToStringImpl
10540
10541 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10542
10543         * reflection.c: support ContructorBuilders in attribute blob creation.
10544
10545 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10546
10547         * reflection.c: some changes to build a binary that can be run
10548         directly in windows.
10549
10550 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
10551
10552         * loader.c: print a big message when an icall can't be found.
10553
10554 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10555
10556         * string-icalls.c: fix bug 24248.
10557
10558 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10559
10560         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
10561         icall.c, reflection.h: separate assembly loading by pathname and by
10562         assembly name. Use the MONO_PATH env var to search for assemblies.
10563
10564 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10565
10566         * assembly.c, image.h: add some support for assemblies
10567         with multiple modules.
10568         * class.c, class.h: export mono_class_from_typeref().
10569         * loader.c: remove duplicated code and use mono_class_from_typeref(),
10570         instead.
10571
10572 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10573
10574         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
10575         documentation says (the ECMA one is correct).
10576
10577 2002-05-02  Dick Porter  <dick@ximian.com>
10578
10579         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
10580         Don't name the synchronisation mutex.
10581
10582 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
10583
10584         * rand.c
10585         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
10586         Make the prototypes match.
10587         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
10588         Same.
10589
10590         * icall.c
10591         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
10592         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
10593         all systems have tm.tm_zone, so use strftime() with %Z to print
10594         the timezone abreviation into a temp string.
10595
10596         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
10597         rather than mono_array_addr() on a MonoString on Big Endian
10598         machines.
10599
10600 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
10601
10602         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
10603         fix bug 24041
10604
10605 2002-04-30  Dick Porter  <dick@ximian.com>
10606
10607         * socket-io.c: Cope with SOCKET being an integer rather than a
10608         pointer now.
10609
10610         * threads.c: Added Thread_free_internal, to deal with thread
10611         handle cleanup.  Moved calls to handle_store() and handle_remove()
10612         to start_wrapper(), so each can only be called once.  Allocate
10613         synchronisation blocks with GC_malloc(), and use GC finalisation
10614         to close the handles.
10615
10616         * icall.c: added System.Threading.Thread::Thread_free_internal
10617
10618 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10619
10620         * icall.c: support Environment.Exit, CommandLineArgs().
10621
10622 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10623
10624         * object.c, object.h: added mono_runtime_run_main () and
10625         mono_runtime_get_main_args () for use in System.Environment.
10626
10627 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10628
10629         * gc.c: fix thinko, enable actual finalization since the jit is now
10630         fixed.
10631
10632 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10633
10634         * gc.c, object.c: take into account that an object may be offset wrt the address
10635         returned by GC_malloc().
10636
10637 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
10638
10639         * image.c: handle files without entries in the assembly table (modules).
10640
10641 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
10642
10643         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
10644         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
10645         allowed to be null when it's System.Object class setup.
10646
10647 2002-04-27  Martin Baulig  <martin@gnome.org>
10648
10649         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
10650         if `tb->parent == NULL' rather than crashing.
10651
10652 2002-04-28  Nick Drochak  <ndrochak@gol.com>
10653
10654         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
10655         calling acos() where asin() should have been called.
10656
10657 2002-04-26  Martin Baulig  <martin@gnome.org>
10658
10659         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
10660         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
10661         there's a subdirectory called `System', but we don't want to read that
10662         subdirectory as an assembly.
10663
10664 2002-04-25  Martin Baulig  <martin@gnome.org>
10665
10666         * debug-symfile.c: Reflect latest MonoString changes.
10667
10668 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10669
10670         * rand.c, rand.h: instance method icalls need to have an explicit
10671         this pointer as first argument in the C implementation.
10672
10673 2002-04-25  Nick Drochak <ndrochak@gol.com>
10674
10675         * icall.c: Fix typo in map for GetNonZeroBytes
10676
10677 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
10678
10679         * string-icalls.c : String does now passes unit tests without any 
10680         errors, the following changes has been made:
10681         
10682         Implemented replace methods.
10683         Renaming of methods to (try) follow the standard.
10684         Fixed compare ordinal
10685         Made all memory allocated directly to function instead of via icall function.
10686         Small performance fix in is_in_array function
10687                         
10688  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
10689
10690         c (mono_string_Internal_ctor_charp_int_int):
10691         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
10692         sindex < 0, throw ArgumentOutOfRangeException instead of
10693         ArgumentNullException.
10694
10695         Added new check for length == 0, however
10696         I need to make it return String.Empty from the C code.
10697         
10698         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
10699         that calculate the length for us here.
10700         
10701         (mono_string_Internal_ctor_sbytep_int_int): Replaced
10702         mono_string_new_utf16 with mono_string_new, since value is utf8.
10703
10704 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10705
10706         * object.c: register the object for finalization if needed.
10707         Allocate one more char in the string for the terminating 0 char.
10708
10709 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10710
10711         * class.c, class.h, image.c: check if a type implemenst a destructor.
10712         Use the proper key for array class lookups.
10713         * icall.c: register the icalls in the System.GC class.
10714         * gc.c, gc.h: GC-related functions and icalls.
10715
10716 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10717
10718         * icall.c:
10719         * socket-io.c:
10720         * unicode.c: free some strings gotten from mono_string_to_utf8 and
10721         changed a couple of free () by g_free ().
10722
10723         * decimal.c: one-liner in the comments for decimal2string ().
10724
10725 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
10726
10727         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
10728
10729 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
10730
10731         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
10732         * object.c (mono_runtime_invoke_array) : handle null in params
10733
10734 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
10735
10736         * string-icalls.c: fixed bug in split (one off bug)
10737
10738 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
10739
10740         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
10741         * icalls.c: added String::Equals as internal method
10742
10743 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
10744
10745         * threads.c: fixed bug in the double interlocked functions
10746
10747 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
10748
10749         * threads.c: implemented all of the new interlocked icalls.
10750         * string-icalls.c: fix a bug in insert.
10751         * icalls.c: added the icalls for interlocked, removed old string functions.
10752         
10753 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
10754
10755         * loader.c: fix off-by-one error when reading argument names.
10756
10757 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10758
10759         * profiler.c: win32 counter implementation (untested).
10760         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
10761         (the latter needs testing and more complete impl. from win32 folks).
10762
10763 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
10764
10765         * object.c: mono_array_new_full workaround mono_array_class_get
10766         problem.
10767
10768 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
10769
10770         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
10771         * object.h (mono_string_chars): Changed casting type.
10772
10773 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
10774
10775         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
10776                            method signatures to use gunichar2 instead of gint16.
10777
10778 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
10779
10780         * object.h, object.c: domain-specific versions of mono_object_new and
10781         mono_array_new.
10782
10783 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
10784
10785         * object.c: changed String layout
10786
10787         * string-icalls.c (mono_string_Internal_ctor_chara): added
10788         internal string constructors.
10789
10790 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
10791
10792         * threads.c: pass 'this' to the thread start routine.
10793
10794 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10795
10796         * string-icalls.c: fix IndexOf and LastIndexOf. Now
10797         InternalCompareStr don't call twice mono_string_cmp_char for the last
10798         character. Improved performance in mono_string_cmp_char.
10799
10800 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10801
10802         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
10803         code into its own library: libmonoruntime.
10804
10805 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
10806
10807         * object.h, object.c: changed array format so that szarrays do not
10808         require a bounds structure.
10809         * icall.c, appdomain.c: support for new szarray format.
10810
10811 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
10812
10813         * metadata.c: compare also the retuns type when comparing signatures:
10814         we didn't do this as an optimization since really overloaded methods
10815         must differ also in the arguments, but this doesn't work with
10816         low-level IL code (or when using explicit conversion operators: see
10817         bug#23498 for an example).
10818
10819 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10820
10821         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
10822
10823 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10824
10825         * icall.c: make MonoType::GetElementType its own icall.
10826
10827 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10828
10829         * icall.c: remove MonoMethod_get_Name().
10830         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
10831         object.
10832
10833 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
10834
10835         * string-icalls.c: optimized a few methods.
10836
10837 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
10838
10839         * icall.c: added all new string internal calls
10840         * string-icalls.c: added, new string internal call implementation.
10841         * object.c: added mono_string_new_size for allocating a string a size
10842
10843 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
10844
10845         * object.c (mono_object_isinst): use the same code as in the
10846         optimized x86 version.
10847
10848 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10849
10850         * profiler.c: TSC-based timer code (faster and more accurate).
10851         Not hooked up in configure, yet (set USE_X86TSC to 1).
10852
10853 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
10854
10855         * profiler.c, profiler.h: track time spent compiling methods.
10856         * threads.c: track thread creation/destruction.
10857
10858 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
10859
10860         * profiler.c, profiler.h, profiler-private.h: profiling interface
10861         and sample implementation. Moved here so that it can be used also by
10862         the jit.
10863
10864 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
10865
10866         * reflection.c, reflection.h: keep types and other handles separate in
10867         the hash tables for referred tokens. Add guid for modules.
10868
10869 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10870
10871         * assembly.c: fix bugs found with valgrind.
10872         * metadata.h, metadata.c: added mono_metadata_guid_heap().
10873
10874 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
10875
10876         * threads: added icall support for getting current domain for
10877                    the thread.
10878  
10879 2002-04-13  Martin Baulig  <martin@gnome.org>
10880
10881         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
10882         (MonoDebugVarInfo): Added `index' field for register based addresses.
10883         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
10884         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
10885         `MonoDebugVarInfo *params' and `guint32 this_offset' with
10886         `MonoDebugVarInfo *this_var'.
10887
10888         * debug-symfile.c (relocate_variable): New static function to write
10889         a location description for a local variable or method parameter.
10890
10891 2002-04-12  Martin Baulig  <martin@gnome.org>
10892
10893         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
10894         stack offset and begin/end scope address of a local variable.
10895         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
10896         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
10897         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
10898
10899         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
10900         Added new relocation types for start/end scope of a local variable.
10901
10902 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10903
10904         * object.h: add mono_object_domain() macro.
10905         * reflection.c: handle typespecs.
10906         * icall.c: MonoMethod::get_Name() implementation.
10907
10908 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10909
10910         * icall.c: String::GetHashCode() icall implementation.
10911
10912 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10913
10914         * icall.c: String::IndexOfAny icall.
10915         * object.c, object.h: make array->max_length more useful.
10916         Intrduced mono_object_class() and mono_string_length() macros.
10917
10918 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10919
10920         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
10921         instead of g_unichar_isdigit.
10922
10923 2002-04-11  Nick Drochak  <ndrochak@gol.com>
10924
10925         * icall.c: Implement a simple Double.ToString().
10926
10927 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
10928
10929         * appdomain.h: only io-layer.h is supposed to be included.
10930         * icall.c: explicitly import environ. Fix warning.
10931
10932 2002-04-10  Nick Drochak  <ndrochak@gol.com>
10933
10934         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
10935                 return true even if it's not Daylight Savings time.
10936                 Only return false for the case where the function isn't
10937                 implemented for a plaform (read Windows).
10938
10939 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10940
10941         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
10942         data with a mutex.
10943
10944 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
10945
10946         * mempool.c (mono_mempool_alloc): only use g_malloc when
10947         absolutely necessary.
10948
10949 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
10950
10951         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
10952
10953         * class.c (mono_class_vtable): use domain mempool to allocate vtable
10954         (mono_class_proxy_vtable): use domain mempool
10955
10956 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10957
10958         * appdomain.h, appdomain.c: split initialization that requires the
10959         execution engine support into mono_runtime_init().
10960
10961 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
10962
10963         * class.c (mono_class_init): don't include vtable inside MonoClass
10964         to save some memory, gather some statistics.
10965         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
10966
10967 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10968
10969         * icall.c: internalcall implementation for ValueType.Equals().
10970
10971 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
10972
10973         * object.c (mono_message_init): moved 
10974         (mono_runtime_exec_main): new arch. independent impl.
10975         (mono_runtime_invoke_array): new method - like
10976         mono_runtime_invoke, but you can pass an array of objects.
10977         (mono_remoting_invoke): new arch. independent impl.
10978         (mono_message_invoke): new arch. independent impl.
10979         (mono_runtime_class_init): new arch. independent impl.
10980         (mono_runtime_object_init): new arch. independent impl.
10981
10982 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10983
10984         * metadata.c, object.c, reflection.c: documented the exported
10985         functions.
10986
10987 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
10988
10989         * icall.c: simpler code to pass the assembly builder data to corlib.
10990         Implement GetNestedTypes() internalcall.
10991
10992 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10993
10994         * class.c: warn if a type can't be loaded.
10995
10996 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
10997
10998         * image.h: typedef MonoImageOpenStatus
10999         * types.h: removed unused file
11000         
11001 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11002
11003         * icall.c: Enum_ToObject accepts enum value arguments.
11004
11005 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11006
11007         * class.c: move initialization of properties, events and nested
11008         classes, so that they happen for interfaces, too.
11009
11010 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11011
11012         * icall.c: cleanup some ugly casts in Array_SetValue*.
11013
11014 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11015
11016         * icall.c: the values array fro enums is of the correct type, now.
11017         Implement (correctly) getFullName instead of assQualifiedName for
11018         MonoType.
11019         * reflection.h, reflection.c: added mono_type_get_name ().
11020
11021 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11022
11023         * assembly.c, image.h: for each MonoImage, record from wich assembly
11024         it was loaded.
11025         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11026         Make Type.Assembly work.
11027
11028 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11029
11030         * debug-symfile.h: use char* instead of gpointer to avoid
11031         unnecessary casts.
11032
11033         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11034
11035         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11036         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11037
11038 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11039
11040         * icall.c (mono_message_init): impl. (code cleanup)
11041         (ves_icall_InternalExecute): impl. FieldGetter
11042
11043         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11044         defined we call all (non-static)methods through the vtable. 
11045
11046 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11047
11048         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11049         finalizer even though the memory is still referenced (and the chunk of
11050         memory is not freed).
11051
11052 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11053
11054         * assembly.c: fix brokeness.
11055
11056 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11057
11058         * class.c: kill some warnings. Check explicit interface method
11059         implementation also without considering the namespace.
11060         Load also literal strings in static class data.
11061
11062 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11063
11064         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11065         (default_assembly_name_resolver): Make the resolver take the
11066         "base" directory where the assembly was originally defined, so we
11067         can load DLLs that are in the same directory as the assembly that
11068         is being referenced.
11069
11070 2002-03-28  Dick Porter  <dick@ximian.com>
11071
11072         * file-io.h: 
11073         * file-io.c:
11074         * socket-io.c: 
11075         * unicode.h: 
11076         * unicode.c: Warning cleanups
11077
11078 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11079
11080         * object.h, reflection.h: use the correct type instead of MonoObject.
11081
11082 2002-03-28  Martin Baulig  <martin@gnome.org>
11083
11084         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11085         (mono_debug_update_symbol_file): Initialize classes if necessary.
11086
11087 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11088
11089         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11090         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11091
11092 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11093
11094         * assembly.h: fix function prototype.
11095         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11096         * mono-endian.h: use const cast.
11097
11098 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11099
11100         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11101
11102 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11103
11104         * loader.c: don't assert when a typeref can't be loaded, give
11105         a chance to the runtime to trow an exception instead.
11106         * loader.h: fix warning.
11107
11108 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11109
11110         * class.c (mono_class_proxy_vtable): added proxy support
11111
11112 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11113
11114         * icall.c: removed last of PAL calls, added System.Environment
11115         * file-io.h, file-io.c: MonoIO implementation
11116         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11117
11118 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11119
11120         * appdomain.c: do not use the byte marker in ldstr table lookup.
11121         * debug-helpers.c: allow two ':' to separate class and method name.
11122         * object.c: allocate arrays bounds with the GC, too.
11123         * verify: add a few more checks.
11124
11125 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11126
11127         * reflection.c: output also literal strings. Allocate parameter data
11128         with GC_malloc() (thanks, Martin, for catching this!).
11129
11130 2002-03-26  Martin Baulig  <martin@gnome.org>
11131
11132         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11133         include the `this' offset in the `param_offsets'.
11134
11135 2002-03-25  Martin Baulig  <martin@gnome.org>
11136
11137         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11138         mono_debug_get_class() function to get the classes. Added new
11139         relocation types for arrays and strings.
11140         (mono_debug_get_class): New static function to search in all
11141         referenced assemblies for a metadata token.
11142
11143         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11144
11145 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11146
11147         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11148         hold gc-allocated objects. Make the string heap a stream like the
11149         others. Removed duplicated code when writing stream info.
11150         Added asserts to catch possible buffer overflows. Set the sorted map
11151         for tables that need sorting. Added some documentation.
11152
11153 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11154
11155         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11156         for interned strings and vtables.
11157
11158 2002-03-24  Martin Baulig  <martin@gnome.org>
11159
11160         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11161         it in the array since it was created with g_slist_prepend().
11162
11163 2002-03-24  Martin Baulig  <martin@gnome.org>
11164
11165         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11166         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11167         (mono_debug_method_from_token): Renamed to
11168         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11169         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11170
11171         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11172         relocation types.
11173
11174         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11175
11176 2002-03-24  Martin Baulig  <martin@gnome.org>
11177
11178         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11179         (mono_debug_method_from_token): New func.
11180
11181         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11182         New interncall, calls mono_debug_local_type_from_signature().
11183         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11184         calls mono_debug_method_from_token().
11185
11186 2002-03-23  Martin Baulig  <martin@gnome.org>
11187
11188         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11189         specifies the number of bytes to be converted, not the array size.
11190         Return the number of chars, not the number of bytes.
11191         (ves_icall_iconv_get_chars): The `byteCount' argument
11192         specifies the number of bytes to be converted, not the array size.
11193
11194 2002-03-23  Martin Baulig  <martin@gnome.org>
11195
11196         * reflection.h (MonoReflectionSigHelper): New type.
11197
11198         * reflection.c (mono_reflection_sighelper_get_signature_local),
11199         (mono_reflection_sighelper_get_signature_local): New functions.
11200
11201         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11202         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11203         interncalls.
11204
11205 2002-03-23  Martin Baulig  <martin@gnome.org>
11206
11207         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11208         is_writeable is set.
11209         (mono_raw_buffer_update): New function to write the modified map
11210         back to disk.
11211
11212         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11213
11214         * debug-symfile.c (mono_debug_update_symbol_file): Call
11215         mono_raw_buffer_update() when done writing.
11216
11217 2002-03-23  Martin Baulig  <martin@gnome.org>
11218
11219         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11220
11221         * debug-symfile.c: Added support for arguments and local variables.
11222
11223 2002-03-23  Dick Porter  <dick@ximian.com>
11224
11225         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11226         protected by ifdefs, hence breaking the w32 build.
11227
11228 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11229
11230         * object.c: implement is_interned() the right way.
11231
11232 2002-03-21  Martin Baulig  <martin@gnome.org>
11233
11234         * debug-symfile.[ch]: New files to handle debugging information
11235         files. There's also support to dynamically update these symbol
11236         files to include machine dependent information.
11237
11238 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11239
11240         * threads.c (mono_thread_create): new function to create thread
11241         from C
11242
11243 2002-03-20  Martin Baulig  <martin@gnome.org>
11244
11245         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11246         method is a constructor.
11247         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11248         points to ves_icall_InternalInvoke().
11249
11250 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11251
11252         * file-io.c: Flush shouldn't throw exceptions.
11253
11254 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11255
11256         * file-io.c: FileStream flush support; FileSetLength now
11257         restores file pointer.
11258
11259 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11260
11261         * class.c: set image for pointer classes.
11262
11263 2002/03/19  Nick Drochak <ndrochak@gol.com>
11264
11265         * sysmath.c: Forgot one.
11266
11267 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11268
11269         * sysmath.c: Avoid redefining existing names.
11270
11271 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11272
11273         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11274         handled by runtime as icall rather than dllimport from libm.so
11275         * file-io.c, file-io.h: fixed handle argument type.
11276
11277 2002-03-18  Dick Porter  <dick@ximian.com>
11278
11279         * reflection.c (mono_image_get_type_info): rename interface to
11280         iface, because of "#define interface struct" on windows.
11281
11282 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11283
11284         * class.c, class.h: rename and export mono_ptr_class_get().
11285         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11286         * reflection.c, reflection.h, icall.c: better/saner type name
11287         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11288         method signatures.
11289
11290 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11291
11292         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11293
11294         * icall.c (ves_icall_InternalInvoke): impl.
11295
11296 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11297
11298         * reflection.c: output the interface map table, too.
11299
11300 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11301
11302         * class.c (class_compute_field_layout): separate computation of 
11303         static field layout
11304
11305 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11306
11307         * icall.c: added System.Buffer support.
11308         * file-io.c: moved file icalls from PAL to FileStream.
11309
11310 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11311
11312         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11313
11314 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11315
11316         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11317
11318 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11319
11320         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11321
11322 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11323
11324         * debug-helpers.{c,h}: moved here from monograph some useful functions
11325         to locate a method by name/signature in a class or image. Included
11326         also a small and flexible IL disassembler.
11327
11328 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11329
11330         * reflection.c: fixup tokens in methods with small header size, too.
11331
11332 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
11333
11334         * object.c (mono_string_to_utf8): remove assert(!error), instead
11335         print a warning. 
11336
11337 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
11338
11339         * icall.c: update to the new mono_Array_class_get interface.
11340
11341 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11342
11343         * appdomain.c, object.c: Boehm-GC enable.
11344         * icall.c: make get_data_chunk() support split data requests.
11345         Ensure a class is initialized in more cases. Return only the first
11346         property found in GetProperties() or the compiler gets confused. 
11347         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
11348         * reflection.h, reflection.c: add fixup mechanism for field and method
11349         tokens. Initialize assembly->typeref in a single place. Output
11350         properties after events. Support custom attributes for events, too.
11351         Typo fix for paramter custom attrs.
11352
11353 2002-03-07  Martin Baulig  <martin@gnome.org>
11354
11355         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
11356
11357 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
11358
11359         * class.c (mono_array_class_get): fix. for multi. dim. arrays
11360
11361 2002-03-06  Martin Baulig  <martin@gnome.org>
11362
11363         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
11364         non-zero lower bounds. See testcases #F10-#F13.
11365
11366 2002-03-05  Martin Baulig  <martin@gnome.org>
11367
11368         * exception.c (mono_get_exception_argument_out_of_range): New exception.
11369
11370         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
11371         ves_icall_System_Array_GetValue(), only calculate the absolute array position
11372         here.
11373         (ves_icall_System_Array_SetValue): Likewise.
11374         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
11375         as argument and does the actual work. This function is used when copying a
11376         multi-dimensional array.
11377         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
11378         now do all the widening conversions of value types.
11379         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
11380
11381 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11382
11383         * class.c: remove some magic numbers and use the smbolic names,
11384         instead. Added init_events() to load event info at class init time.
11385         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
11386         and mono_metadata_methods_from_event().
11387         * reflection.h, reflection.c: added support for writing out the evnets
11388         related information.
11389
11390 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11391
11392         * reflection.h, icall.c: use a different method (GetInterfaces)
11393         to gather interface info and add isbyref, isprimitive and
11394         ispointer to the ves_icall_get_type_info() return value.
11395
11396 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11397
11398         * class.h: stared adding support for events.
11399         * icall.c: split find_members implementation. Added debug icall to get
11400         the address of an object.
11401         * reflection.c: handle TypeBuilders in mono_type_get_object().
11402
11403 2002-03-01  Martin Baulig  <martin@gnome.org>
11404
11405         * icall.c (ves_icall_System_Array_GetLength): This must throw an
11406         ArgumentOutOfRangeException(), not an ArgumentException().
11407         (ves_icall_System_Array_GetLowerBound): Likewise.
11408         (ves_icall_System_Array_GetValue): Improved argument checking.
11409         (ves_icall_System_Array_SetValue): Improved argument checking.
11410
11411 2002-03-01  Martin Baulig  <martin@gnome.org>
11412
11413         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
11414         called with invalid arguments rather than just dying with g_assert().
11415         (ves_icall_System_Array_SetValue): Likewise.
11416         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
11417         raise a NotImplementedException instead.
11418         (ves_icall_System_Array_GetLength): Added argument checking.
11419         (ves_icall_System_Array_GetLowerBound): Added argument checking.
11420
11421 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
11422
11423         * object.h (mono_assert): new macros mono_assert and
11424         mono_assert_not_reached
11425
11426 2002-02-28  Martin Baulig  <martin@gnome.org>
11427
11428         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
11429         and "System::String::IsInterned" to "System::String::_IsInterned".
11430
11431 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
11432
11433         * icall.c: remove hacks for typebuilder. Added icall to create a
11434         modified type from a tybebuilder.
11435         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
11436         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
11437         to create a backing MonoClass for a TypeBuilder.
11438
11439 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11440
11441         * class.c, class.h: more refactoring of class init.
11442         Export mono_class_setup_mono_type() and mono_class_setup_parent().
11443
11444 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
11445
11446         * marshal.c, marshal.h: start of marshaling interface.
11447
11448 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
11449
11450         * icall.c: fix order in assembly qualified name icall.
11451
11452 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
11453
11454         * class.c: do not free str, since we store it in the hash table.
11455         * reflection.h: add label field to MonoILExceptionInfo.
11456         * reflection.c: handle references to more than one assembly. Handle
11457         case when there isn't a module created in the assembly.
11458
11459 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11460
11461         * class.c: Fix typo. Start refactoring of class init code.
11462
11463 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11464
11465         * appdomain.c: exit with 1 on error.
11466         * class.c: we already have the name in MonoClassField.
11467         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
11468         MonoStreamHeader instead of an offset of image->raw_metadata.
11469
11470 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
11471
11472         * appdomain.c (mono_init): Be even more descriptive about the error.
11473
11474 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
11475
11476         * appdomain.c: give the user an informative message when corlib can't
11477         be loaded.
11478
11479 2002-02-26  Martin Baulig  <martin@gnome.org>
11480
11481         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
11482         New icall to get the time zone data.
11483
11484 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11485
11486         * reflection.c: set virtual and raw size of section correctly.
11487         * threads.c: transfer domain information to newly created threads.
11488
11489 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
11490
11491         * class.c: when instancing a class in a domain, load the default
11492         vaules for static fields from the constant table. Fix System.Enum to
11493         not be an enum.
11494         * icall.c: implement Object::GetType() internalcall. Implemented
11495         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
11496         Fixed checking of binding flags in find_members().
11497         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
11498         * reflection.c: handle enumerations when writing to the constant
11499         table. Use a different object cache for types.
11500
11501
11502 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
11503
11504         * object.c (mono_object_isinst): fix for arrays
11505
11506         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
11507
11508 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
11509
11510         * object.c: don't use mprotect ()  and fix intern pool hash table
11511         lookup for big endian systems.
11512
11513 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11514
11515         * icall.c: change type_is_subtype_of () signature.
11516
11517 2002-02-21  Mark Crichton  <crichton@gimp.org>
11518
11519         * rand.c, rand.h: Added random number generator for
11520         System.Security.Cryptography classes.
11521
11522         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
11523
11524         * icall.c: Added System.Security.Cryptography calls.
11525
11526 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
11527
11528         * class.c, icall.c, metadata.c: better support for pointer types.
11529         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
11530         * reflection.c: Add support for getting custom attrs for properties
11531         and simplify some code.
11532
11533 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11534
11535         * icall.c: change getToken () and add custom attribute GetBlob()helper
11536         method.
11537         * reflection.h: add custom attrs array to the reflection builder structures.
11538         * reflection.c: encode and emit custom attributes for all the relevant
11539         reflection objects. Cache fieldref and methodref tokens. Change
11540         mono_image_create_token() interface to take a MonoDynamicAssembly.
11541         More complete custom attributes decoder. Load custom attributes for
11542         Assembly, Field, Method and Constructor objects, too. Make the
11543         returned array an Attribute[] one, not object[]. Added
11544         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
11545         custom attribute constructor.
11546
11547 2002-02-20  Dick Porter  <dick@ximian.com>
11548
11549         * icall.c:
11550         * rawbuffer.c:
11551         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
11552         problem code out for now).
11553
11554 2002-02-19  Radek Doulik  <rodo@ximian.com>
11555
11556         * object.c (mono_ldstr): use hash table to avoid multiple swapping
11557
11558 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
11559
11560         * icall.c: register the GetCustomAttributes method.
11561         * object.c, object.h: add mono_string_new_len ().
11562         * reflection.h, reflection.c: added mono_runtime_invoke(),
11563         mono_install_runtime_invoke(). Added
11564         mono_reflection_get_custom_attrs () to load custom attributes and
11565         create the attribute objects.
11566
11567 2002-02-19  Dick Porter  <dick@ximian.com>
11568         * threads-dummy-types.c:
11569         * threads-dummy-types.h:
11570         * threads-dummy.c:
11571         * threads-dummy.h:
11572         * threads-pthread-types.c:
11573         * threads-pthread-types.h:
11574         * threads-pthread.c:
11575         * threads-pthread.h:  Deleted obsolete files
11576
11577 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
11578
11579         * class.c (mono_class_vtable): runtime init the class when we
11580         allocate static class data.
11581
11582         * icall.c (ves_icall_System_Array_SetValue): check for null values.
11583
11584         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
11585         and String - but we will need generic marshalling support in the
11586         future. 
11587         (mono_init): set the domain name in a ms compatible way
11588
11589         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
11590         String[].
11591
11592 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
11593
11594         * object.c (mono_array_clone): use alloca() instead of g_malloc  
11595         for sizes
11596
11597         * appdomain.c (mono_domain_unload): impl.
11598
11599 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
11600
11601         * appdomain.c, object.c: fix intern pool implementation.
11602         * class.c: fix alignment code.
11603
11604 2002-02-16  Radek Doulik  <rodo@ximian.com>
11605
11606         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
11607         and s2 > s1, just copy lower bytes to be compatible with little
11608         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
11609         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
11610
11611         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
11612         force big_endian to be 1 for big endian machines 
11613         (ves_icall_iconv_new_decoder): ditto
11614
11615 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
11616
11617         * socket-io.c (convert_sockopt_level_and_name): If the system
11618         doesn't define SOL_IP or SOL_TCP, get them by hand using
11619         getprotobyname() and caching the values (because this could be a
11620         slow operation).
11621         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
11622         Use the appropriate struct when the system does support it. Ie,
11623         not all systems have struct ip_mreqn so use struct ip_mreq when
11624         appropriate.
11625
11626 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
11627
11628         * reflection.c: handle finally clauses.
11629
11630 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
11631
11632         * socket-io.c: use g_snprintf() instead of snprintf.
11633
11634 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
11635
11636         * reflection.c (mono_param_get_objects): Cast second argument to
11637         mono_method_get_param_names to a const char** to silence the
11638         compiler warning.
11639
11640         * appdomain.c (mono_domain_assembly_open): Put parens around the
11641         truth statement in the for-loop.
11642
11643         * unicode.c (iconv_convert): Got rid of a compiler warning about
11644         int i being unused when the system has a new iconv.
11645         (iconv_get_length): Same.
11646
11647         * image.c (load_class_names): Cast the second argument to
11648         g_hash_table_insert() to char* to hush compiler warnings about the
11649         arg being a const.
11650         (mono_image_open): Same here.
11651
11652         * socket-io.c: Don't conditionally include sys/filio.h or
11653         sys/sockio.h here anymore since we now get them from
11654         io-layer/io-layer.h
11655         (inet_pton): If the system doesn't support inet_aton, implement
11656         using inet_addr and also #define INADDR_NONE if it isn't defined
11657         by the system.
11658
11659 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
11660
11661         * metadata.c, metadata.h: added function to get packing and size info
11662         of a typedef.
11663         * reflection.h, reflection.c: handle field RVA data. Save info about
11664         the table layout if needed. Assign typedef indexes to all the types
11665         before dumping the info about them to avoid forward reference problems.
11666
11667 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
11668
11669         * socket-io.c (convert_sockopt_level_and_name): ifdef
11670         SO_ACCEPTCONN because it is not defined on my system (old debian)
11671
11672 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11673
11674         * opcode.c: use stddef.h to get NULL.
11675
11676 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
11677
11678         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
11679         for FIONBIO, FIONREAD and SIOCATMARK.
11680         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
11681         define INADDR_NONE and besides, inet_addr() is deprecated and
11682         should not be used. Use inet_pton() instead - it also has the
11683         added bonus that it can easily handle IPv6 addresses as well.
11684         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
11685
11686 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11687
11688         * decimal.c: remove _MSC_VER conditional.
11689
11690 2002-02-13  Dick Porter  <dick@ximian.com>
11691
11692         * socket-io.c: 
11693         * icall.c: Internal calls for Blocking, Select, Shutdown,
11694         GetSocketOption and SetSocketOption
11695
11696 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11697
11698         * assembly.cs: better resolver: use it instead of some kludgy
11699         code.
11700
11701 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
11702
11703         * reflection.c: the best way to speed-up the compiler is to avoid
11704         infinite loops.
11705
11706 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
11707
11708         * class.c (mono_class_vtable): changed the object layout
11709         (obj->vtable->class). 
11710         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
11711
11712 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11713
11714         * assembly.c: look for assemblies in the assembly dir, too.
11715
11716 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11717
11718         * class.c: fix thinko in mono_class_from_type().
11719
11720 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11721
11722         * exception.h, exception.c: added TypeLoadException.
11723         * object.h, object.c: added mono_array_clone ().
11724         * icall.c: handle throwOnError in AssemblyGetType().
11725         Added Array.Clone().
11726         * opcode.h, opcode.c: use a single value for the opcode val.
11727         Compile fix for non-gcc compilers.
11728
11729 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
11730
11731         * opcodes.c, opcodes.h: export interesting info about opcodes.
11732
11733 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
11734
11735         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
11736         icalls. 
11737
11738         * class.c (class_compute_field_layout): set element_class for enums
11739         (mono_class_create_from_typedef): set element_class for normal classes
11740
11741         * icall.c (ves_icall_System_Enum_get_value): impl.
11742
11743         * class.c (mono_class_create_from_typedef): do not set valuetype
11744         flag for System.ValueType and System.Enum
11745
11746 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
11747
11748         * unicode.c (iconv_convert): fix big endian problem.
11749
11750 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
11751
11752         * class.c: add asserts if we are ever going to scribble over memory.
11753         * socket-io.c: not all systems have AF_IRDA defined.
11754
11755 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
11756
11757         * class.c (class_compute_field_layout): do not consider static
11758         fields to compute alignment
11759
11760 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
11761
11762         * appdomain.c (mono_appdomain_get): impl.
11763         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
11764
11765 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11766
11767         * icall.c: ignore "file://" prefix when loading an assembly.
11768
11769 2002-01-23  Dick Porter  <dick@ximian.com>
11770
11771         * socket-io.c:
11772         * icall.c:
11773         * Makefile.am: Added socket support
11774
11775 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
11776
11777         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
11778         code back.  This should return the assemblies that are loaded by
11779         the runtime on behalf of an application domain. 
11780
11781         The current implementation is still broken, it just returns every
11782         assembly loaded, but until we get real applications domain this
11783         will do.
11784
11785 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
11786
11787         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
11788         AppDomain object.
11789
11790 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
11791
11792         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
11793         the mono_class_from_name lookup.
11794         (ves_icall_get_parameter_info): ditto.
11795         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
11796         method.
11797         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
11798
11799 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
11800
11801         * class.c: load also nested classes on class init.
11802         System.ValueType instance methods gets passed boxed
11803         values, unless methods in derived classed that get a pointer to the
11804         data.
11805         * icall.c: use better name parsing code in GetType().
11806         * image.c, image.h: add mono_image_loaded ().
11807         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
11808         * reflection.c, reflection.h: added mono_reflection_parse_type().
11809
11810 2002-01-22  Veronica De Santis <veron78@interfree.it>
11811
11812         * icall.c : Added mapping of internal calls for Manual and Auto reset events
11813         * threads.c : Added the implementation of internal calls for events
11814         * threads.h : Added prototypes of internal calls for events
11815         
11816 2002-01-21  Radek Doulik  <rodo@ximian.com>
11817
11818         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
11819
11820 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
11821
11822         * class.c (mono_class_init): set min_align to 1 (instead of 0)
11823         (mono_class_value_size): use min_align
11824
11825 2002-01-20  Dick Porter  <dick@ximian.com>
11826
11827         * threads.h:
11828         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
11829         so it compiles on w32.
11830
11831 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
11832
11833         * metadata.c (mono_type_stack_size): impl.
11834
11835         * class.c (mono_class_get_field): impl. memberref token
11836
11837 2002-01-16 Veronica De Santis <veron78@@interfree.it>
11838
11839         * icall.h : Added the internal calls mapping for CreateMutex_internal
11840                     and ReleaseMutex_internal.
11841         * threads.h : Added the prototype of mutexes internal calls.
11842         * threads.c : Added the implementations of mutexes internal calls.
11843
11844 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
11845
11846         * metaparse.h: removed unused file.
11847         * reflection.c, reflection.h: added stream_data_align () function 
11848         to align data in streams and keep stream aligned. Add support for
11849         exception support in method headers.
11850
11851 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
11852
11853         * unicode.c: make iconv_convert () return the number of bytess written
11854         in the output buffer.
11855
11856 2002-01-15  Dick Porter  <dick@ximian.com>
11857         * threads.c: Make the runtime's idea of infinite timeouts coincide
11858         with the class library's
11859
11860         Fix a particularly egregious bug in mono_thread_cleanup(). That
11861         code was so utterly bogus it must have been written on a Monday.
11862
11863 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
11864
11865         * reflection.h: add subtypes field to TypeBuilder.
11866         * reflection.c: encode constants for literal fields.
11867         Handle subtypes. Fix user string token (and add a zero byte)
11868         at the end.
11869         
11870 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
11871
11872         * class.c (mono_class_init): bug fix: assign slot numbers for
11873         abstract methods.
11874
11875 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11876
11877         * reflection.c: don't try to output a code RVA for abstract methods.
11878         Small fixes for method header format. Output parameter info to the
11879         ParamDef table. Save method overriding info to MethodImpl table.
11880         Fix property support. Allow typedef.extends to be a type in the
11881         building assembly.
11882         * verify.c: fix off-by-one error.
11883
11884 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
11885
11886         * class.c: fix mono_class_from_mono_type () for szarray types.
11887         Remove unused cache check in mono_class_from_type_spec().
11888         * icall.c: *type_from_name () functions handle simple arrays and byref.
11889         * reflection.c: handle byref and szarray types. Handle methods without
11890         body (gets P/Invoke compilation working). Handle types and fields in
11891         get_token ().
11892         * reflection.h: add rank to MonoTypeInfo.
11893
11894 2002-01-10  Dick Porter  <dick@ximian.com>
11895
11896         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
11897         internal calls
11898
11899 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
11900
11901         * icall.c: initialize class in type_from_handle ().
11902         Loop also in parent classes for get_method ().
11903         * reflection.c: properly encode class and valuetype types.
11904         Start on encoding TypeBuilder types. Handle fieldrefs.
11905         Use correct length when registering a user string.
11906         Handle ConstructorBuilder and MonoMethod in get_token ().
11907         Make mono_type_get_object () aware of cached types.
11908         * object.c: back out change to mono_string_new ().
11909
11910 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
11911         * object.c: mono_string_new should return a NULL when the string 
11912         passed in is NULL -- not try to deference it.
11913         
11914 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11915
11916         * icall.c: hack to make IsSubType work for TypeBuilders.
11917         * reflection.c: emit constructors before methods.
11918         Retrieve param names in mono_param_get_objects().
11919
11920 2002/01/05  Nick Drochak  <ndrochak@gol.com>
11921
11922         * Makefile.am: fix list of headers and sources so automake 1.5
11923         doesn't complain. Removed \# at end of list.
11924
11925 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
11926
11927         * reflection.c: get token for a method ref. Set return type of
11928         constructor to void.
11929         * loader.c: debug message.
11930         * class.c: typo fix.
11931
11932 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
11933
11934         * icall.c: fix array init with rank > 1. FindMembers
11935         loops in parent class as well.
11936         * image.c: do not insert nested types in name cache.
11937         * reflection.c: warning fix.
11938         * reflection.h: add override method (for interface impl).
11939
11940 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
11941
11942         * metadata.c: fix customattr decoding.
11943
11944 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
11945
11946         * rawbuffer.cs: Added native Win32 implementation, avoids using
11947         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
11948
11949 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
11950
11951         * class.c: make the low-level routines handle the cache.
11952
11953 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
11954
11955         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
11956
11957 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
11958
11959         * class.c: fix mono_array_element_size() for objects.
11960         * class.h, class.c: add properties to MonoClass and load them
11961         at init time.
11962         * icall.c: check with isinst() when assigning a value to an array
11963         instead of requiring the classes to match exactly.
11964         Implemented icall for System.Type::GetType().
11965         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
11966         enums. Handle bindingflags when looking for methods and fields.
11967         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
11968         and mono_metadata_methods_from_property().
11969         * reflection.h, reflection.c: added structures for propreties,
11970         parameters and enums. Implemented mono_property_get_object() and
11971         mono_param_get_objects().
11972
11973 2001-12-18  Dick Porter  <dick@ximian.com>
11974
11975         * file-io.c: Use mono_string_to_utf16() instead of
11976         mono_string_chars()
11977
11978         * object.c: Added mono_string_to_utf16(), which copies the non
11979         NULL-terminated MonoString into a new double-null-terminated
11980         buffer.
11981
11982 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
11983
11984         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
11985
11986 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
11987
11988         * file-io.c: raise exceptions if handle is invalid.
11989
11990 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
11991
11992         * assembly.c: yet another check for mscorlib.
11993         * class.c, class.h: load nesting info for classes.
11994         * icall.c: many new functions to support the Reflection classes.
11995         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
11996         * reflection.h, reflection.c: mono_image_create_token(),
11997         mono_assembly_get_object(), mono_type_get_object(),
11998         mono_method_get_object(), mono_field_get_object(): methods to return
11999         objects that parallel the C representation of assemblies, types,
12000         methods, fields.
12001
12002 2001-12-11  Dick Porter  <dick@ximian.com>
12003
12004         * icall.c:
12005         * file-io.c: Internal calls for file IO.
12006
12007 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12008
12009         * tabledefs.h: missing FileAttributes.
12010         * verify.h, verify.c: use is_valid_string () to simplify and check for
12011         valid strings more correctly. Fix warnings and speeling.
12012         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12013         Check code: branches, maxstack, method calls.
12014
12015 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12016
12017         * object.c (mono_object_allocate): removed static, so that the jit
12018         can allocate value types.
12019
12020         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12021
12022 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12023
12024         * class.c: init enum types right away and register the
12025         token->MonoClass map in mono_class_create_from_typedef ().
12026         * verify.h, verify.c: first cut of the verifier.
12027         * pedump.c: add --verify switch to verify metadata tables.
12028         * tabledefs.h: add some missing enums.
12029
12030 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12031
12032         * class.c (mono_install_runtime_class_init): impl.
12033         (mono_class_init): renamed mono_class_metadata_init to
12034         mono_class_init, also removed the metadata_inited flag
12035
12036         * object.c (mono_object_isinst): use faster algorithm
12037
12038 2001-11-30  Radek Doulik  <rodo@ximian.com>
12039
12040         * mono-endian.h: reverted last change
12041         added function prototypes
12042
12043         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12044         add mono-endian.c back
12045
12046         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12047         for unaligned access, I've mistaked it with endianess. I am
12048         sorry.
12049         (mono_read16): fix reverted endianess
12050         (mono_read64): ditto
12051         (mono_read32): ditto
12052
12053 2001-11-30  Dick Porter  <dick@ximian.com>
12054
12055         * exception.c: Implement mono_exception_from_name()
12056
12057 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12058
12059         * metadata.h, metadata.c: remove params_size and locals_size and their
12060         calculation from the metadata code: they are only usefult to the
12061         interp.
12062
12063 2001-11-29  Radek Doulik  <rodo@ximian.com>
12064
12065         * object.c (mono_ldstr): swap bytes here, it's probably not the
12066         best place, but works for me now, I'll redo it once I know mono
12067         better, also note that I add PROT_WRITE and don't reset back, also
12068         note that it's only affects big endians, so x86 should be OK
12069
12070         * mono-endian.h (read16): use just glib macros for both endians
12071
12072         * mono-endian.c: removed as glib macros are used in in
12073         mono-endian.h so we don't need to care about endianess for read
12074         macros as glib does that for us already
12075
12076 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12077
12078         * class.h, class.h: take minimum alignment into consideration so
12079         that the fields of a class remain aligned also when in an array.
12080
12081 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12082
12083         * loader.h, loader.c: add mono_method_get_param_names().
12084         * class.c: 0-init class fields.
12085
12086 2001-11-26  Dick Porter  <dick@ximian.com>
12087
12088         * icall.c:
12089         * threads-types.h:
12090         * threads.c: New file that handles System.Threading on all platforms
12091
12092         * object.c: 
12093         * object.h: Remove the synchronisation struct from MonoObject,
12094         replace it with a pointer that gets initialised on demand
12095
12096         * Makefile.am: Replace all the system-specific threading code with
12097         a single file that uses the new wrapper library
12098
12099 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12100
12101         * class.c, class.h: add mono_install_trampoline() so that the runtime
12102         can register a function to create a trampoline: removes the ugly
12103         requirement that a runtime needed to export arch_create_jit_trampoline.
12104         * object.h, object.c: added mono_install_handler() so that the runtime
12105         can install an handler for exceptions generated in C code (with
12106         mono_raise_exception()). Added C struct for System.Delegate.
12107         * pedump.c: removed arch_create_jit_trampoline.
12108         * reflection.c: some cleanups to allow registering user strings and
12109         later getting a token for methodrefs and fieldrefs before the assembly
12110         is built.
12111         * row-indexes.h: updates and fixes from the new ECMA specs.
12112
12113 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12114
12115         * class.h, class.c: add enum_basetype field to MonoClass.
12116         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12117         to get index in the constant table reated to a field, param or
12118         property.
12119         * reflection.h, reflection.c: handle constructors. Set public-key and
12120         version number of the built assembly to 0.
12121         * row-indexes.h: update from new ECMA spec.
12122
12123 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12124
12125         * class.h, class.c: add a max_interface_id to MonoClass.
12126         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12127         since it's used to do that. Added mono_type_type_from_obj().
12128         Make GetType() return NULL instead of segfaulting if the type was not
12129         found. Handle simple arrays in assQualifiedName.
12130         * object.h: add a struct to represent an Exception.
12131         * reflection.c: output call convention in method signature.
12132         Add code to support P/Invoke methods and fixed offsets for fields.
12133
12134 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12135
12136         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12137         the value.
12138         * icall.c: use mono_array_addr instead of array->vector: fixes the
12139         reflection image writing.
12140         * reflection.c: init call convention byte to 0 in method signature.
12141         Encode the property signature. Don't output property-related methods
12142         twice. Really process the properties for a type (don't cast a field to
12143         a property, my mom always told me that).
12144         Fix 64 bit issues in pointer alignment in a different and more
12145         readable way.
12146
12147 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12148
12149         * loader.h: Removed type class from MonoDefaults, added monotype
12150
12151         * loader.c: Loaded MonoType, removed loading of Type
12152
12153         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12154         and fills in System.Type._impl with a RuntimeTypeHandle rather
12155         than the actual MonoClass *
12156
12157         (ves_icall_type_from_handle): change from type_class to
12158         monotype_class
12159
12160         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12161         implemented
12162
12163         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12164         implemented
12165
12166         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12167
12168         (ves_icall_System_Reflection_Assembly_GetType): implemented
12169
12170         (ves_icall_System_MonoType_assQualifiedName): implemented
12171
12172         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12173
12174 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12175
12176         * assembly.c (mono_assembly_open): Implement a cache for the
12177         assemblies. 
12178
12179         (mono_assembly_close): only destroy the assembly when the last
12180         reference is gone.
12181         
12182 2001-11-09  Dick Porter  <dick@ximian.com>
12183
12184         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12185
12186 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12187
12188         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12189
12190 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12191
12192         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12193         from Martin Weindel.
12194         * object.h: add mono_string_chars ().
12195
12196 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12197
12198         * reflection.c (build_compressed_metadata): Eliminates warnings
12199         and uses 64-bit clean code.
12200
12201         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12202         (mono_type_equal): Change signature to eliminate warnings.
12203
12204 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12205
12206         * icall.c, loader.c: remove the internalcall array constructors.
12207         Changes to match the new MonoArray structure.
12208         * object.h, object.c: an array object doesn't allocate an extra
12209         vector. Add mono_array_new_full () to create jagged arrays easily.
12210
12211 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12212
12213         * metadata.h, metadata.c: add mono_metadata_field_info () to
12214         retreive all the info about a field from vairous tables.
12215         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12216         * class.h, class.c: augment MonoClassField with more info.
12217         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12218         policy and load a field's RVA if needed.
12219
12220 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12221
12222         * class.c (mono_class_metadata_init): create a trampoline for all
12223         virtual functions instead of actually compiling them.
12224
12225 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12226
12227         * class.h, class.c: include name in MonoClassField.
12228         * class.c: fix fundamental type of System.Object and System.String.
12229         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12230         tokens in ldtoken.
12231         * icall.c: remove internalcalls for the Reflection stuff that is now
12232         done in C# code.
12233         * loader.c: mono_field_from_memberref () implementation.
12234         * mono-endian.c: thinko (s/struct/union/g).
12235         * object.c, object.h: make the mono_string_* prototypes actually use
12236         MonoString instead of MonoObject.
12237         * reflection.c, reflection.h: updates for changes in the reflection
12238         code in corlib: we use C structures that map to the actual C# classes.
12239         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12240         fat method header if needed and use the info from the ILGenerator for
12241         methods. Handle fields in types. Misc fixes.
12242
12243 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12244
12245         * class.c (mono_class_metadata_init): bug fix: always allocate
12246         space for static class data
12247
12248 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12249
12250         * class.c (mono_compute_relative_numbering): use relative
12251         numbering to support fast runtime type checks.
12252
12253 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12254
12255         * class.c (mono_class_create_from_typeref): added debugging output
12256         to print class name when MonoDummy is returned instead of real class
12257
12258 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12259
12260         * class.c (mono_class_metadata_init): interface offset table now
12261         contains pointers into the vtable - this is more efficient for the jit
12262
12263 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12264
12265         * class.c (mono_class_metadata_init): use a temporary vtable (the
12266         old algorithm only worked for the interpreter, but not for the jit)
12267
12268 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12269
12270         * loader.c (method_from_memberref): use mono_class_get to get the
12271         class of an array instead of using System.Array directly.
12272         (mono_get_method): also add MEMBERREF methods to the method cache
12273         which usefull for arrays.
12274
12275 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12276
12277         * pedump.c (arch_compile_method): added to compute vtable entry
12278
12279         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12280         number of interfaces.
12281         
12282         * class.h: merged MonoArrayClass into MonoClass
12283
12284         * class.c (mono_class_create_from_typedef): compute the vtable size and
12285         allocate space to include the vtable inside MonoClass
12286         (mono_class_metadata_init): initialize the vtable
12287
12288 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12289
12290         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12291         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12292         * image.c: endian fixes by Laurent Rioux.
12293         * object.h, object.c: rename MonoStringObject to MonoString and
12294         MonoArrayObject to MonoArray. Change some function names to conform to
12295         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12296         guint16* as first argument, so don't use char*.
12297         Provide macros to do the interesting things on arrays in a portable way.
12298         * threads-pthread.c: updates for the API changes and #include <sched.h>
12299         (required for sched_yield()).
12300         * icall.c: updates for the API changes above.
12301         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12302         platforms that need them.
12303
12304 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12305
12306         * class.c: set the correct type for all the fundamental
12307         type when loading the class.
12308
12309 2001-10-05  Dick Porter  <dick@ximian.com>
12310
12311         * threads-pthread.c (pthread_mutex_timedlock): Simple
12312         compatibility version for C libraries that lack this call.
12313
12314 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12315
12316         * class.c: MonoTypes stored in MonoClass are stored as
12317         fundamental MonoTypes when the class represents a
12318         fundamental type (System.Int32, ...).
12319         The TypeHandle return by ldtoken is a MonoType*.
12320         * icall.c: ves_icall_get_data_chunk () write out all the
12321         PE/COFF stuff. Implement ves_icall_define_method (),
12322         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12323         * image.c: properly skip unknown streams.
12324         * loader.h, loader.c: add type_class to mono_defaults.
12325         * metadata.c, metadata.h: export compute_size () as
12326         mono_metadata_compute_size () with a better interface.
12327         Typo and C&P fixes.
12328         * pedump.c: don't try to print the entry point RVA if there is no entry point.
12329         * reflection.c, reflection.h: many cleanups, fixes, output method
12330         signatures and headers, typedef and typeref info, compress the metadata
12331         tables, output all the heap streams, cli header etc.
12332         * row-indexes.h: typo fixes.
12333
12334 2001-10-04  Dick Porter  <dick@ximian.com>
12335
12336         * object.h: Add a synchronisation mutex struct to MonoObject
12337
12338         * object.c (mono_new_object): Initialise the object
12339         synchronisation mutexes
12340
12341         * icall.c: System.Threading.Monitor internal calls
12342         
12343         * threads-pthread.h:
12344         * threads-pthread.c: System.Threading.Monitor internal calls
12345
12346         * threads-types.h: New file, includes the system-specific thread
12347         structures
12348         
12349         * threads-pthread-types.h:
12350         * threads-pthread-types.c: New files, handle pthread-specific
12351         synchronisation types
12352
12353         * threads-dummy-types.h: 
12354         * threads-dummy-types.c: New files of dummy support for
12355         thread-specific types
12356
12357         * metadata.c:
12358         * image.c:
12359         * pedump.c: include mono-endian.h not endian.h
12360         
12361         * Makefile.am: More threads files.
12362         Name mono-endian.h not endian.h
12363
12364 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
12365
12366         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
12367         stuff and implement a few more bits.
12368         * icall.c: a field needs to be dereferenced twice. Do not use the same
12369         name for two variables in the same scope.
12370         * image.c, image.h: cleanups.
12371
12372 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
12373
12374         * class.c (mono_class_metadata_init): bug fix: compute the right size
12375
12376 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
12377
12378         * icall.c: implemented some of the Reflection internalcalls.
12379         * image.c, image.h: start writing out the PE/COFF image.
12380         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
12381         that does the reverse than decode_blob_size ().
12382         * object.c: use mono_metadata_encode_value (). Move here
12383         temporary implementation of mono_string_to_utf8 ().
12384         * rawbuffer.c: make malloc_map static.
12385
12386 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12387
12388         * metadata.c: fix type comparison for arrays.
12389         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
12390         Added a couple of new classes to monodefaults.
12391         * icall.c: added a couple of Reflection-related internalcalls.
12392         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
12393         Added a byval_arg MonoType to MonoClass.
12394
12395 2001-09-28  Dick Porter  <dick@ximian.com>
12396
12397         * icall.c:
12398         * threads-pthread.h: 
12399         * threads-pthread.c: Implemented internal calls for
12400         LocalDataStoreSlot operations.  Applied mutexes around all shared
12401         data.  Reworked the thread creation and Start() operations to
12402         avoid a race condition.
12403         
12404         * threads-dummy.h:
12405         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
12406
12407 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
12408
12409         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
12410
12411 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
12412
12413         * class.c, loader.c: warn and return NULL instead of erroring out.
12414         * icall.c: added System.AppDomain::getCurDomain().
12415         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
12416
12417 2001-09-25  Dick Porter  <dick@ximian.com>
12418
12419         * threads-pthread.h:
12420         * threads-pthread.c: Implemented timed thread joining and added
12421         System.Threading.Thread::Join_internal internal call
12422
12423         * icall.c: Added System.Threading.Thread::Join_internal internal call
12424
12425         * threads-dummy.h:
12426         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
12427
12428 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
12429
12430         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
12431         mono_string_intern () to implement the semantics of the ldstr opcode
12432         and the interning of System.Strings.
12433         * icall.c: provide hooks to make String::IsIntern and String::Intern
12434         internalcalls.
12435
12436 2001-09-23  Dick Porter  <dick@ximian.com>
12437
12438         * threads-dummy.c: 
12439         * threads-dummy.h: New files of dummy threading routines
12440
12441         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
12442         support code based on system specifics
12443
12444         Rename PTHREAD_LIBS to THREAD_LIBS
12445         
12446 2001-09-23  Dick Porter  <dick@ximian.com>
12447
12448         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
12449         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
12450         internal calls.
12451         (mono_thread_init): Set up a Thread object instance to return when
12452         the main thread calls Thread.CurrentThread
12453         (mono_thread_cleanup): Wait for all subthreads to exit
12454
12455         * icall.c: New internal calls for System.Threading.Thread::Sleep
12456         (including Schedule) and CurrentThread
12457
12458         * threads.h: New file, to insulate thread-specific stuff from the
12459         rest of the code
12460
12461 2001-09-21  Dick Porter  <dick@ximian.com>
12462
12463         * threads-pthread.h: 
12464         * threads-pthread.c: New file, for handling pthreads-style
12465         threading support.  Start() now starts a new thread and executes
12466         the ThreadStart delegate instance.
12467
12468         * icall.c: Added the internalcall for
12469         System.Threading.Thread::Start_internal
12470
12471         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
12472
12473 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
12474
12475         * loader.c: work around the different signatures for delegates
12476         constructors csc generates in compiled code vs the ones compiled in mscorlib.
12477
12478 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
12479
12480         * class.h, class.c: add mono_class_get_field_from_name ().
12481         * *: Fix C comments and other ANSI C issues.
12482
12483 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
12484
12485         * endian.h, assembly.c: fix some endianness issues.
12486
12487 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
12488
12489         * loader.h, load.c: add delegate_class to mono_defaults.
12490         Handle runtime provided methods in mono_get_method ().
12491
12492 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
12493
12494         * loader.c (mono_get_method): use pinvoke for internal call
12495
12496         * icall.c: use pinvoke for internal call
12497
12498         * loader.c (method_from_memberref): set the method name
12499
12500 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
12501
12502         * metadata.c: help the compiler generate better code for
12503         mono_class_from_mono_type ().
12504
12505 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
12506
12507         * class.c (mono_class_metadata_init): delayed computing of the
12508         class size to mono_class_metadata_init ()
12509
12510 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
12511
12512         * class.c, class.h: add an interfaces member to MonoClass.
12513         * image.c, image.h: add assembly_name field to MonoImage
12514         from the assembly table.
12515         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
12516
12517 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
12518
12519         * class.c: Handle Array in mono_class_from_mono_type ().
12520         * metadata.c, pedump.c: some endian fixes.
12521
12522 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12523
12524         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
12525         * metadata.c: fix small problem introduced with the latest commit.
12526
12527 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
12528
12529         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
12530         We don't need a MonoMetadata pointer anymore to compare signatures in
12531         mono_metadata_signature_equal (), update callers.
12532         Reduced memory usage an number of allocations for MonoMethodHeader and
12533         MonoMethodSignature.
12534
12535 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
12536
12537         * metadata.c: added compare for szarray.
12538
12539 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
12540
12541         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
12542         and add a couple more types to it and mono_defaults. Give an hint on
12543         classes that need implementing in our corlib and are referenced
12544         in mscorlib.
12545
12546 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
12547
12548         * class.h, class.c: keep track if a class is also an Enum.
12549         * loader.c: Implement a couple more types for use in libffi
12550         marshalling. Gives better diagnostics when failing to dlopen
12551         a library. Set method->klass for P/Invoke methods, too.
12552
12553 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
12554
12555         * class.c, class.h: add a MonoType this_arg to MonoClass that
12556         represents a pointer to an object of the class' type that
12557         can be used by the interpreter and later the type cache.
12558         Add best guess alignment info for valuetype objects.
12559
12560 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
12561
12562         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
12563         into MonoType: one less level of indirection and allocation and
12564         simplifies quite a bit of code. Added cache for MonoTypes that are
12565         used frequently, so that we don't need to allocate them all the time.
12566
12567 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
12568
12569         * class.c (mono_class_create_from_typedef): System.Enum is also a
12570         value type, although it does not derive from System.ValueType
12571         (maybe a bug in the ms compiler?)
12572
12573         * metadata.c (mono_type_size): return the right size for value types
12574
12575         * loader.c (mono_get_method): only initialize method header if not abstract
12576
12577         * class.c (mono_class_from_mono_type): use mono_default values. 
12578
12579 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
12580
12581         * *: use MonoClass pointers instead of <type_tokens>
12582         
12583         * class.h: new flag: metadata_inited.
12584
12585         * class.c (mono_class_metadata_init): impl.
12586         (mono_class_instance_size): impl.
12587         (mono_class_data_size): impl.
12588
12589 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12590
12591         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
12592         MonoClass now has the name and name_space fields. 
12593         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
12594         mono_get_method () takes and optional MonoClass as argument.
12595         Removed mono_typedef_from_name() and added mono_class_token_from_name()
12596         instead that takes advantage of a map from class names to typedef
12597         tokens in MonoImage.
12598
12599 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
12600
12601         * metadata.c: zero is not a valid alignment boundary.
12602         Merge MONO_TYPE_VOID in default decoding code.
12603
12604 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
12605
12606         * image.h: merged MonoMetadata into MonoImage
12607
12608         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
12609         identify the type of elements.
12610
12611 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
12612
12613         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
12614         * cil-coff.h: split MonoMSDOSHeader and add size info.
12615         * image.c: add some consistency checks.
12616         * metadata.c: fix row size computation: one programmer
12617         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
12618         add explanation for the locator routine.
12619         Fix decoding of size in method header.
12620         
12621 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
12622
12623         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
12624         (g_concat_dir_and_file): Bring g_concat_dir_and_file
12625         function from gnome-libs.  This uses the right path separator
12626         based on the OS, and also works around a bug in some systems where
12627         a double slash is not allowed. 
12628         (default_assembly_name_resolver): Use g_concat_dir_and_file
12629         (mono_assembly_open): ditto.
12630
12631 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
12632
12633         * metadata.c (mono_metadata_signature_equal): impl.
12634
12635         * *: void is now a realy MonoType (instead of using NULL)
12636         
12637         * metadata.c (do_mono_metadata_parse_type): use
12638         mono_metadata_parse_type to parse void value.
12639
12640 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
12641
12642         * metadata.c, metadata.h: in the signature and method header store
12643         only the space required for holding the loca vars and incoming arguments.
12644
12645 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
12646
12647         * metadata.c (do_mono_metadata_parse_type): treat void like any
12648         other type (instead of assigning NULL);
12649
12650 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
12651
12652         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
12653
12654 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
12655
12656         * image.c (do_mono_image_open): added a cache for arrays.
12657
12658 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
12659
12660         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
12661         decode a single column from a row in a metadata table and changes
12662         to take advantage of it in the typedef locator (gives a nice speed up).
12663         Store offset info for function params.
12664
12665 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
12666
12667         * image.h (MONO_IMAGE_IS_CORLIB): removed 
12668
12669 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
12670
12671         * assembly.c: how could mono_assembly_close () had ever worked?
12672         * metadata.c, metadata.h: provide offset info for local vars.
12673         Implement mono_type_size () to take care of alignment as well
12674         as size (it was mono_field_type_size in cli/class.c before).
12675
12676 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
12677
12678         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
12679
12680         * assembly.h (CORLIB_NAME): set to corlib.dll
12681
12682         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
12683
12684 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
12685
12686         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
12687         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
12688         tokentype.h: massive namespace cleanup.
12689
12690 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
12691
12692         * metadata.h, metadata.c: decode exception clauses when parsing method header.
12693
12694 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
12695
12696         * metadata.c (mono_metadata_free_type): added check for type !=
12697         NULL (void) before calling mono_metadata_free_type()
12698
12699 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
12700
12701         * metadata.h, row_indexes.h: added header with enumerations to use
12702         to index in the columns from tables in metadata and to decode coded
12703         tokens: we should start using this instead of embedding magic numbers
12704         all over the code.
12705
12706 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
12707
12708         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
12709         Move metadata_t info from cli_image_info_t to MonoImage, where
12710         it's easily accessible. Changed all the uses accordingly.
12711         Added the method and class caches to MonoImage.
12712         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
12713         and mono_metadata_decode_value () signature to be more consistent
12714         with the other parse functions (and simplify code). Taken advantage
12715         of zero-length array allocation with GCC. Removed reduntant (and
12716         wrong) MonoFieldType struct and use MonoParam instead. Changed
12717         mono_metadata_parse_field_type () to use common code for parsing.
12718         Added mono_metadata_typedef_from_field () and
12719         mono_metadata_typedef_from_method () to lookup a typedef index from a
12720         field or method token.
12721         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
12722
12723 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
12724
12725         * metadata.c (mono_metadata_parse_field_type): Implement. 
12726         (do_mono_metadata_parse_type): Split engine from
12727         mono_metadata_parse_type, so that we can create smaller structures
12728         for things that just have one pointer to the MonoType (look at
12729         the MonoFieldType)
12730
12731 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
12732
12733         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
12734         as Jan Gray found out, it is incorrect. 
12735
12736 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
12737
12738         * assembly.c: Implement asssembly loading.  This loads an image
12739         and loads all the referenced assemblies.  Come to think of it, we
12740         could always do lazy loading of the assemblies. 
12741
12742         * image.c (mono_image_open): Keep loaded images in a hashtable.
12743
12744         * image.h (MonoImage): Add reference count.
12745
12746 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
12747
12748         * assembly.c (mono_assembly_open): Keep track of the file name in
12749         case the assembly has no ASSEMBLY table.
12750
12751         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
12752         from get.c here.
12753
12754 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
12755
12756         * metadata.c, metadata.h: decode local vars in method header
12757         parse function. Change callers accordingly.
12758
12759 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
12760
12761         * metadata.h, cil-coff.h: protect against multiple inclusion.
12762         Added some new structures to hold information decoded from metadata:
12763         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
12764         and relevant decoding/free functions.
12765         * metadata.c: implement decoding functions. Add warning for out of bounds
12766         index in mono_metadata_locate(). Implement mono_get_method () to retreive
12767         all the info about a method signature and invocation. Remove check on
12768         uninitialized local var in parse_mh() and fix memory leak.
12769
12770 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
12771
12772         * metadata.h: More macros.
12773
12774         * tokentype.h: New file.
12775
12776 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
12777
12778         * assembly.c: added a consistency check and initialize
12779         some structures with g_new0().
12780         * metadata.c: fixed a couple more bugs in table size computation
12781         and add other checks for out-of bound access to metadata.
12782
12783 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
12784
12785         * metatada.c: fix bugs computing table sizes. Spew a
12786         warning when index in string heap is out of bounds.
12787
12788 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
12789
12790         * metadata.h: Add a couple of macros to manipulate tokens. 
12791
12792 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
12793
12794         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
12795         cli_section_tables).
12796
12797 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
12798
12799         * metadata.c (mono_metadata_user_string): New function, provides
12800         access to the UserString heap. 
12801
12802 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
12803
12804         * metadata.c: Add inline documentation.
12805
12806 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
12807
12808         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
12809         files. 
12810
12811 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
12812
12813         * typeattr.h: New file, TypeAttribute flags. 
12814
12815 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
12816
12817         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
12818         mono_assembly_ensure_section): Section loading code.
12819         (load_section_tables): Load the sections.
12820
12821         * mono/metadata/metadata.c (mono_metadata_locate_token,
12822         mono_metadata_locate): Functions to locate the information
12823         definition given a token or a table and an index.
12824         (mono_metadata_compute_table_bases): New.
12825         (compute_size): New function to compute the sizes of the various
12826         tables.
12827
12828         * mono/metadata/metadata.h: Finish listing the different index
12829         types. 
12830
12831         * mono/metadata/pedump.c: Improve to dump new information.
12832
12833 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
12834
12835         * mono/metadata/metadata.c: Entered all the tables matching
12836         Beta2. 
12837
12838         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
12839