2004-12-04 Martin Baulig <martin@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2004-12-04  Martin Baulig  <martin@ximian.com>
2
3         * loader.c (mono_method_get_signature_full): New public function;
4         like mono_method_get_signature(), but with an additional
5         `MonoGenericContext *' argument.
6
7         * class.c (mono_class_inflate_generic_signature): Formerly known
8         as inflate_generic_signature(); make this public.
9
10 2004-12-04  Martin Baulig  <martin@ximian.com>
11
12         * metadata.c
13         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
14         instead of a `MonoGenericContainer *'.  
15         (mono_metadata_parse_array_full): Likewise.
16         (mono_metadata_parse_signature_full): Likewise.
17         (mono_metadata_parse_method_signature_full): Likewise.
18         (mono_metadata_parse_generic_inst): Likewise.
19         (mono_metadata_parse_generic_param): Likewise.
20         (mono_metadata_parse_mh_full): Likewise.
21         (mono_type_create_from_typespec_full): Likewise.
22
23 2004-12-03  Martin Baulig  <martin@ximian.com>
24
25         * class-internals.h (MonoGenericContainer): Replaced the
26         `MonoGenericContext * pointer with a `MonoGenericContext'
27         structure and made it the first element.
28
29 2004-12-03  Martin Baulig  <martin@ximian.com>
30
31         * class.c
32         (inflate_generic_type): Set the `context->container' when creating
33         a new MonoGenericContext.
34         (mono_class_inflate_generic_method): Likewise.
35         (mono_class_create_from_typespec): Just use `context->container'
36         to get the container.
37
38         * loader.c (method_from_methodspec): Set `context->parent' from
39         `context->container' - and if that's a method container, use its
40         parent.  Also set the `context->container' when creating a new
41         MonoGenericContext.
42         (mono_get_method_from_token): Use just `context->container' to get
43         the container.
44
45         * metadata.c (do_mono_metadata_parse_generic_class): Also set
46         `gclass->context->container'.
47
48         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
49         the `context->container' when creating a new MonoGenericContext.
50
51 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
52
53         * reflection.c (compare_genericparam): Sort params with identical
54         owner by their number. Fixes gen-111 on sparc.
55
56 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
57
58         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
59         around the domain changes.
60
61         * appdomain.c (mono_domain_unload): Handle the case when the thread
62         calling Unload is itself being aborted during unloading. Fixes #70022.
63
64         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
65
66         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
67         checkpoint_func as an icall so it gets a wrapper.
68         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
69         in the cross-appdomain wrappers too.
70
71         * threads.c (mono_thread_has_appdomain_ref): Make this public.
72
73         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
74
75         * reflection.c: Fix some memory leaks.
76         
77 2004-12-02  Martin Baulig  <martin@ximian.com>
78
79         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
80
81         * metadata.c (generic_class_cache): New static hashtable.
82         (mono_metadata_lookup_generic_class): New public method.
83
84 2004-12-02  Martin Baulig  <martin@ximian.com>
85
86         * class.c (mono_class_create_from_typedef): Call
87         mono_class_setup_parent() and mono_class_create_mono_type() before
88         parsing the interfaces.
89
90 2004-12-02  Martin Baulig  <martin@ximian.com>
91
92         * metadata.c (generic_inst_cache): New static hashtable.
93         (mono_metadata_lookup_generic_inst): New public function.
94         (mono_metadata_inflate_generic_inst): New public function.
95         (mono_metadata_parse_generic_inst): New public function.
96         (do_mono_metadata_parse_generic_class): Use the new
97         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
98         since this'll also use the cache.
99
100         * reflection.c (mono_reflection_bind_generic_method_parameters):
101         Use mono_metadata_lookup_generic_inst() to use the new cache.
102
103         * class.c (inflate_mono_type): Use
104         mono_metadata_inflate_generic_inst() to inflate a generic
105         instance; this'll also use the new cache.
106
107         * loader.c (method_from_methodspec): Use
108         mono_metadata_parse_generic_inst() and
109         mono_metadata_inflate_generic_inst() rather than parsing it
110         manually, so we can use the new cache.
111
112 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
113
114         * threads.c (wait_for_tids): Do not incorrectly free threads when 
115         the wait times out.
116
117 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
118
119         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
120         iter->args based on whether parameters are passed in registers (i.e.
121         MONO_ARCH_REGPARMS is defined)
122
123 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
124
125         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
126         the exception message. Fixes #70070.
127         (method_from_methodspec): Fix warnings.
128
129 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
130
131         * process.c: (complete_path) return the path quoted
132
133 2004-12-01  Martin Baulig  <martin@ximian.com>
134
135         * class-internals.h (MonoGenericInst): New structure.
136         (MonoGenericClass): Replaced `type_argc', `type_argv' and
137         `is_open' with `MonoGenericInst *inst'.
138         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
139         `is_open' with `MonoGenericInst *inst'.
140
141 2004-11-30  Martin Baulig  <martin@ximian.com>
142
143         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
144
145         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
146         to `generic_class_cache'.
147
148         * metadata.c
149         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
150         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
151         (mono_generic_inst_is_valuetype): Renamed to
152         mono_generic_class_is_valuetype().
153
154         * class-internals.h
155         (MonoGenericInst): Renamed to MonoGenericClass.
156         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
157         (MonoClass): Renamed `generic_inst' to `generic_class'.
158         (MonoGenericContext): Renamed `ginst' to `gclass'.
159
160         * object-internals.h
161         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
162
163         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
164         mono_reflection_generic_class_initialize().
165
166         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
167         now known as "System.Reflection.MonoGenericClass".
168         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
169
170 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
171
172         * class-internals.h: Added a flag field to MonoClass to cache the
173         declarative security attributes actions associated with the class.
174         * domain-internals.h: Added booleans to MonoJitInfo to cache the
175         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
176         applicable to the JITted method.
177         * reflection.c|h: Added functions to extract (as flags) which security
178         actions are available (declaratively) for a method, class or assembly.
179         * metadata.c|h: Added functions to search the declarative security
180         table in the metadata.
181         
182 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
183
184         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
185         EXPORTEDTYPES are already in the class name cache, so there is no
186         need to add extra code here to look at them. Just removes a bit of
187         cruft.
188
189         (ves_icall_System_Environment_get_TickCount): No need for #if
190         WINDOWS. We already have the code in io-layer.
191
192 2004-11-28  Martin Baulig  <martin@ximian.com>
193
194         * loader.c
195         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
196         Fixes gen-112.cs.
197
198 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
199
200         * assembly.c (do_mono_assembly_open): Instead of having a
201         conditional WITH_BUNDLE, incorporate support for bundles here, by
202         having a global `bundles' variable holding a pointer to the actual
203         bundles. 
204
205         (mono_register_bundled_assemblies): New API call used by the
206         bundle code. 
207
208         See mkbundle.1 for details.
209         
210 2004-11-27  Martin Baulig  <martin@ximian.com>
211
212         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
213         the vtable for generic methods.
214
215 2004-11-26  Martin Baulig  <martin@ximian.com>
216
217         * metadata.c
218         (mono_metadata_generic_method_hash): New public function.
219         (mono_metadata_generic_method_equal): Likewise.
220
221         * class-internals.h
222         (MonoGenericContainer): Added `GHashTable *method_hash'.
223
224         * reflection.c (ReflectionMethodBuilder): Added
225         `MonoGenericContainer *generic_container'.
226         (reflection_methodbuilder_to_mono_method): Don't create a new
227         MonoGenericContainer each time we're called.
228         (mono_reflection_bind_generic_method_parameters): Use
229         `container->method_hash' to cache the results so we don't create a
230         different method if we're called several times with the same
231         arguments.
232
233         * loader.c (method_from_methodspec): Use the new
234         `container->method_hash' here, too.
235
236 2004-11-26  Martin Baulig  <martin@ximian.com>
237
238         * class.c (inflate_generic_signature): Correctly compute
239         `res->has_type_parameters'.
240         (mono_class_vtable): Use the `has_type_parameters' flag to
241         determine whether we're a generic method.
242
243         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
244
245 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
246
247         * object.c (mono_runtime_run_main): Fix a small memory leak.
248
249 2004-11-25  Martin Baulig  <martin@ximian.com>
250
251         * class.c (set_generic_param_owner): Fixed the loop.
252
253 2004-11-25  Martin Baulig  <martin@ximian.com>
254
255         * object.c (mono_class_vtable): Don't create any JIT wrappers for
256         generic methods.
257
258 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
259
260         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
261         names. Fixes #69787.
262
263 2004-11-24  Martin Baulig  <martin@ximian.com>
264
265         * class.c (mono_class_create_generic_2): If we don't have a
266         `ginst->parent', inflate `gklass->parent' to get our parent.
267
268 2004-11-24  Martin Baulig  <martin@ximian.com>
269
270         * reflection.c (compare_genericparam): Correctly sort the
271         GenericParam table; fixes #69779.
272
273 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
274
275         * reflection.c: When writing a PE file, don't create a huge
276         buffer in memory. Just write the arrays we have to the file.
277         This reduces memory usage.
278
279         * metadata-internals.h: MonoDynamicStream pefile is no longer used
280         globally.
281
282 2004-11-17  Martin Baulig  <martin@ximian.com>
283
284         * class.c (mono_class_init): Don't setup `class->parent' for
285         dynamic instances; moved this to mono_class_generic_2().
286         (mono_class_create_generic): Also set `klass->inited' for dynamic
287         generic instances.
288         (mono_class_create_generic_2): Don't do anything for dynamic
289         generic instances.  Set `klass->parent' here and also call
290         mono_class_setup_parent() here. 
291
292         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
293         `MonoType *parent' argument; set `ginst->parent' before calling
294         mono_class_create_generic_2(), so we set the correct parent.
295
296 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
297
298         * reflection.c: allow getting attributes from ModuleBuilder
299         (used by ikvm).
300
301 2004-11-17  Martin Baulig  <martin@ximian.com>
302
303         * class.c (mono_class_create_from_typedef): If a type parameter is
304         inherited from an outer class, set its owner to that class.
305
306 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
307
308         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
309           for (int*) written size. This fixes bug #69592.
310
311 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
312
313         * icall.c: Added IsAuthenticodePresnet internal call.
314         * image.c|h: New function that check a MonoImage for an Authenticode
315         signature in the certificate PE data directory.
316         * security.c|h: New internal call to ask the runtime if an 
317         Authenticode signature seems referenced in the PE header.
318
319 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
320
321         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
322
323         * reflection.c (mono_image_create_pefile): Free the assembly streams
324         after writing out the assembly file.
325
326         * object.c (mono_runtime_run_main): Fix small memory leak.
327
328         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
329         property access modifiers. Fixes #69389.
330
331 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
332
333         * domain.c, object.c, object-internals.h, domain-internals.h,
334         object.h, marshal.c: keep dynamic code info per domain.
335
336 2004-11-15  Martin Baulig  <martin@ximian.com>
337
338         * class.c (mono_type_get_name_recurse): Put type arguments in
339         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
340         see bug #68387.
341
342 2004-11-15  Martin Baulig  <martin@ximian.com>
343
344         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
345         (mono_class_setup_vtable): When computing `the_cname' for a
346         generic instance, don't include the namespace since we'd otherwise
347         add it twice.
348
349 2004-11-15  Martin Baulig  <martin@ximian.com>
350
351         * class.c (mono_class_create_generic): Changed return type to void.
352         (mono_class_create_generic_2): New public function; setup
353         `class->method', `class->field' and `class->interfaces' here
354         instead of in mono_class_init().
355
356         * class.h (mono_class_create_generic): Moved to class-internals.h.
357
358 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
359
360         * reflection.c (mono_image_create_pefile): take a file HANDLE.
361         rather than writing to memory, write to this file. Right now,
362         we are just writting into a buffer, and copying that. However
363         we can avoid the buffer later.
364
365         (mono_dynamic_stream_reset): new function
366
367         * icall.c, object-internals.h: update for the above.
368
369 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
370
371         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
372         have been using gc'd memory. First it is slower, unlikely
373         the comment in the source code said, secondly, it increases
374         our footprint to do it in the gc.
375
376         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
377         the method so that it does not have to copy to managed code.
378
379 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
380
381         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
382
383 2004-11-12  Martin Baulig  <martin@localhost>
384
385         * reflection.c (mono_image_create_token): Allow generic method
386         definitions here, since they may appear in an `.override'; see
387         gen-98/gen-99 for an example.
388
389 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
390
391         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
392         #69365.
393
394         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
395         descriptive.
396
397 2004-11-11  Martin Baulig  <martin@ximian.com>
398
399         * class.c (mono_class_setup_vtable): In an explicit interface
400         implementation, the method name now includes the arity.
401
402 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
403
404         * object.c (mono_array_full_copy): Fix warning.
405
406 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
407
408         * appdomain.c: Removed look_for_method_by_name(). Use the new method
409         mono_class_get_method_from_name() instead.
410         
411         * class-internals.h: Added two new types of wrappers. 
412         Added MonoRemotingTarget enum. Added new trampoline function type, which
413         takes an additional MonoRemotingTarget value as parameter, so it is
414         possible to request a trampoline for a specific target.
415         
416         * class.c: Added new mono_class_get_method_from_name() method.
417         
418         * class.h: In MonoRemoteClass, we can have now to vtables, one for
419         general remoting sinks and one specific for cross domain calls.
420         
421         * debug-helpers.c: Added new wrapper names.
422         
423         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
424         of a remote class.
425         
426         * image.c: Porperly delete value objects form the remoting invoke hashtable.
427         
428         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
429         with several other methods (mono_marshal_get_xappdomain_dispatch,
430         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
431         and others) can generate a fast remoting wrapper for cross domain calls.
432         More information can be found in docs/remoting.
433         Other changes: Removed mono_find_method_by_name, and used
434         mono_class_get_method_from_name instead.
435         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
436         is stored in the remoting invoke hashtable.
437         
438         * marshal.h: published the new method for getting the xdomain wrapper,
439         and also added a method for getting the adequate wrapper for a given
440         method and target.
441         
442         * object-internals.h, object.c: Added a couple of methods for capying and
443         cloning arrays.
444         Modified mono_install_remoting_trampoline, which takes the new remoting
445         trampoline that has a remoting target as parameter.
446         mono_class_proxy_vtable now also takes a remoting target as parameter, and
447         will return the most suitable vtable for the target.
448         Added mono_remote_class_vtable, which returns the vtable of a remote class
449         (which can be the normal remoting vtable or the xdomain vtable).
450         
451         * threads.c: the xdomain invoke and dispatch wrappers must also be
452         protected against interruptions.
453
454 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
455
456         * icall.c: use memmove in BlockCopyInternal when the source and
457         destination arrays are the same.
458
459 2004-11-09  Martin Baulig  <martin@ximian.com>
460
461         * class-internals.h (MonoGenericContainer): Removed `method' and
462         `signature', replaced them with `is_method' and `is_signature'
463         flags.  Added `context'.
464
465         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
466         instead of a `MonoGenericContainer *'.
467
468         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
469         for dynamic type parameters.
470         (mono_metadata_load_generic_params): Setup `container->context'.
471
472         * reflection.c (mono_reflection_setup_generic_class): Setup
473         `tb->generic_container->context'.
474         (do_mono_reflection_bind_generic_parameters): Use
475         mono_class_inflate_generic_type() to correctly inflate types,
476         rather than using our own hack just for MONO_TYPE_VAR.
477
478 2004-11-09  Martin Baulig  <martin@ximian.com>
479
480         * class.c (mono_class_inflate_generic_method): Small fix; don't
481         crash here.
482
483         * icall.c
484         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
485         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
486         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
487         (ves_icall_Type_BindGenericParameters): Likewise.
488         (ves_icall_Type_get_IsGenericInstance): Likewise.
489         (ves_icall_Type_GetGenericParameterPosition): Likewise.
490         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
491         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
492         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
493
494 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
495
496         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
497         assembly versions and public key tokens. Fixes #69113.
498
499 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
500
501         * metadata.c: fix bug introduced with the type cache changes
502         on 2004-11-06.
503
504 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
505
506         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
507         the MonoClass pointer instead of the token in exception clauses.
508         * reflection.c: updates for the above and make the code not depend
509         on the structure of MonoExceptionClause.
510
511 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
512
513         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
514         Add support for dynamic assemblies. Fixes #69114.
515
516         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
517
518 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
519
520         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
521         since most only those methods use it. the code member of
522         MonoMethodPInvoke was dead, so that can be removed too. Also,
523         remove inline_count (again, not used), and move slot so that it
524         can share bits with some other flags. This saves 8 bytes in the
525         structure and gives us about 50 kb back for mcs helloworld.cs
526
527         * *.[ch]: Do naming changes for the above.
528
529         * loader.c (mono_method_get_header): Lazily init the header
530         on first access.
531         (mono_get_method_from_token): don't init the header here
532         (mono_free_method): the header may never be allocated
533
534         Overall, this saves 150 kb of unmanaged allocations
535         for mcs helloworld.cs. That accounts for 10% of the unmanaged
536         memory at runtime.
537         
538         * loader.c, loader.h (mono_method_get_header): new accessor.
539
540         * *.[ch]: use the above method. Prepares us to lazily load
541         the header.
542
543         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
544         three warnings, which are actual bugs (see 69206).
545
546         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
547         unused. Saves a cool 4 bytes / method.
548
549 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
550
551         * metadata.c (builtin_types): Add types for System.Object here.
552         (mono_metadata_parse_type_full): Cache MonoType*'s that are
553         for a class or valuetype from klass->this_arg or klass->byval_arg.
554
555         On mcs for a hello world, this gets us down from 21836 MonoType's
556         to 14560.
557
558         (mono_metadata_free_type): Account for the above change.
559
560 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
561
562         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
563         exception instead of asserting if name is null.
564         (ves_icall_System_AppDomain_GetData): Ditto.
565
566 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
567
568         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
569         EnumBuilder.
570
571         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
572         Return NULL when the domain does not have entry_assembly set.
573
574         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
575         Add a 'resource_modules' argument.
576         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
577
578         * reflection.c (mono_reflection_create_runtime_class): Move setting
579         of wastypebuilder here, so mono_get_type_object () returns a MonoType
580         for enums too.
581
582         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
583         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
584         Throw an ArgumentNullException if 'ptr' is null.
585
586         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
587         assemblies here. Fixes #69020.
588
589 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
590
591         * reflection.c (build_compressed_metadata): Fix the previous patch for
592         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
593         the stack.
594
595 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
596
597         * assembly.c (mono_assembly_names_equal): Allow a match if one of
598         the cultures is false. Fixes #69090.
599
600         * reflection.c (build_compressed_metadata): Fix invalid memory read 
601         detected by valgrind.
602         
603         * reflection.c (mono_reflection_get_type): Avoid triggering a 
604         TypeResolve multiple times for the same type. Fixes #65577.
605
606 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
607
608         * marshal.c: Avoid using ldftn to call managed functions. It is
609         much slower than just a call.
610
611         * reflection.c (mono_module_get_object): free the basename we
612         allocate here from glib.
613         
614         * reflection.c (ensure_runtime_vtable): make sure to free
615         overrides.  Also, we were allocating an array of MonoMethod not an
616         array of MonoMethod*.
617
618         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
619
620         * image.c (mono_image_close): free image->guid here.
621
622 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
623
624         * reflection.c: Fix some spec conformance issues with the PE file
625         structures so mcs compiled apps run on the Net 2.0 beta.
626
627 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
628
629         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
630         Implement this. Fixes #67264.
631
632         * debug-helpers.h debug-helpers.c marshal.c: Move 
633         mono_find_method_by_name to debug-helpers.c.
634
635 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
636
637         * object.c (mono_release_type_locks): type_initialization_hash is
638         a GHashTable.
639
640         * reflection.c object.c object-internals.h: Fix warnings.
641
642         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
643         without accessors. Fixes #61561.
644
645         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
646         application base from the root domain if not set. Fixes #65641.
647         (mono_runtime_init): Fix warning.
648
649 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
650
651         * appdomain.c: call mono_thread_pool_init.
652         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
653         of worker threads based on the number of CPUs and the environment
654         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
655         for non-windows (windows) systems.
656
657 2004-10-27  Chris Toshok  <toshok@ximian.com>
658
659         * mono-debug-debugger.c (write_class): don't call mono_class_init
660         here, as even with the check for (!klass->init_pending), we get
661         into a situation where we're hitting cycles in class
662         initialization.  Fixes #68816.
663
664 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
665
666         * image.c: Avoid overwriting values in the loaded_images_hash when an
667         assembly is loaded multiple times. Fixes #61152.
668
669         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
670         so multiple satellite assemblies for the same name can be loaded.
671         Fixes #68259.
672
673         * mono_domain_assembly_preload: Actually return the loaded assembly, 
674         not NULL.
675
676         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
677         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
678
679         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
680         pending finalizers are not invoked after the appdomain has been 
681         unloaded. Fixes #67862.
682
683 2004-10-22  Martin Baulig  <martin@ximian.com>
684
685         * mono-debug-debugger.c
686         (mono_debugger_runtime_invoke): Don't box valuetypes.
687
688 2004-10-22  Chris Toshok  <toshok@ximian.com>
689
690         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
691         don't hide private methods.
692
693 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
694
695         * icall.c: Allows the runtime to "share" (when known) the public key
696         token of an assembly. This avoid the need to recalculate the token 
697         (from the public key) in managed code.
698
699 2004-10-21  Chris Toshok  <toshok@ximian.com>
700
701         * debug-helpers.c (append_class_name): argh, revert last patch.
702         
703 2004-10-21  Chris Toshok  <toshok@ximian.com>
704
705         * debug-helpers.c (append_class_name): use '+' as the delimiter,
706         not '/', so that it matches what the debugger uses to look up
707         methods.
708
709 2004-10-21  Martin Baulig  <martin@ximian.com>
710
711         * mono-debug-debugger.c (mono_debugger_throw_exception): New
712         public method; this is called each time an exception is thrown and
713         allows the debugger to use exception catch points.
714
715 2004-10-21  Martin Baulig  <martin@ximian.com>
716
717         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
718         the stack pointer and the exception object in some struct and pass
719         that to the debugger.
720
721 2004-10-21  Chris Toshok  <toshok@ximian.com>
722
723         * mono-debug-debugger.c (do_write_class): add instance/static
724         event support.  We don't expose "raise" or "other" yet.
725         (event_is_static): new method.
726
727 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
728
729         * mono-debug-debugger.c
730         (mono_debugger_handle_exception): Remove
731         bogus return value for fussy compilers.
732
733 2004-10-20  Martin Baulig  <martin@ximian.com>
734
735         * mono-debug-debugger.c
736         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
737         (mono_debugger_handled_exception): Likewise.
738
739 2004-10-20  Martin Baulig  <martin@ximian.com>
740
741         * mono-debug-debugger.h (MonoDebuggerEvent): Added
742         MONO_DEBUGGER_EVENT_EXCEPTION.
743
744         * mono-debug-debugger.c (mono_debugger_handle_exception): New
745         public function to send the debugger a notification for an
746         exception and inform it about a catch/finally clause.
747
748 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
749
750         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
751         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
752         fix 2.95 build. 
753
754         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
755
756 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
757
758         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
759         marshalled as [In,Out]. Fixes #58325.
760
761 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
762
763         * reflection.c (mono_method_body_get_object): Implement some fields.
764
765 2004-10-12  Martin Baulig  <martin@ximian.com>
766
767         * reflection.c (mono_reflection_bind_generic_parameters): Small
768         fix, correctly retrieve our parent from a generic instance.
769
770 2004-10-12  Martin Baulig  <martin@ximian.com>
771
772         * metadata.c (mono_metadata_generic_param_equal): We always have
773         an owner.
774
775         * class.c
776         (mono_class_from_generic_parameter): We need to have an owner.
777         (my_mono_class_from_generic_parameter): Likewise.
778
779         * reflection.c (mono_reflection_setup_generic_class): Renamed to
780         mono_reflection_create_generic_class() and added a new
781         mono_reflection_setup_generic_class().  
782         (mono_reflection_initialize_generic_param): If we're a nested
783         generic type and inherited from the containing class, set our
784         owner to the outer class.
785
786 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
787
788         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
789
790         * reflection.c (mono_method_body_get_object): New function to create
791         a MethodBody object.
792
793         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
794
795 2004-10-11  Martin Baulig  <martin@ximian.com>
796
797         * metadata.c (_mono_metadata_type_equal): Renamed to
798         do_mono_metadata_type_equal() and made static.
799
800 2004-10-11  Martin Baulig  <martin@ximian.com>
801
802         * appdomain.c: Bump corlib version number to 28.
803
804 2004-10-10  Martin Baulig  <martin@ximian.com>
805
806         * class-internals.h
807         (MonoGenericInst): Added `MonoGenericContainer *container'.
808         (MonoGenericMethod): Likewise.
809         (MonoGenericContext): Likewise.
810         (MonoGenericParam): Added `MonoGenericContainer *owner'.
811
812         * metadata.c
813         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
814         (do_mono_metadata_parse_generic_inst): Likewise.
815         (mono_metadata_parse_type_full): New public method.  This is the actual
816         mono_metadata_parse_type() implementation - with an additional
817         `MonoGenericContainer *' argument.
818         (mono_metadata_parse_array_full): Likewise.
819         (mono_metadata_parse_signature_full): Likewise.
820         (mono_metadata_parse_method_signature_full): Likewise.
821         (mono_metadata_parse_mh_full): Likewise.
822         (mono_type_create_from_typespec): Likewise.
823         (mono_metadata_interfaces_from_typedef_full): New public method;
824         this is similar to the other _full() methods, but we take a
825         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
826         (mono_metadata_parse_generic_param): Take an additional
827         `MonoGenericContainer *' argument and lookup the MonoGenericParam
828         from that container.
829         (mono_metadata_generic_param_equal): New static method to compare
830         two type parameters.
831         (_mono_metadata_type_equal): New static method; takes an
832         additional `gboolean signature_only' argument - if true, we don't
833         compare the owners of generic parameters.
834         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
835         with a TRUE argument - do a signature-only comparision.
836
837         * loader.c: Use the new _full() methods and pass the
838         MonoGenericContainer to them.
839
840         * object-internals.h (MonoReflectionTypeBuilder): Added
841         `MonoGenericContainer *generic_container' field.
842         (MonoReflectionMethodBuilder): Likewise.
843
844 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
845
846         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
847         case initial images of dynamic assemblies.
848
849         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
850
851         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
852
853         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
854         length of event->other array.
855         (typebuilder_setup_events): Ditto.
856
857         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
858         'assembly_by_name' and add an 'assemblies' list.
859
860         * assembly.h assembly.c: Add a new search hook for determining whenever
861         an assembly is already loaded. Use this instead of searching in the
862         loaded_assemblies list.
863
864         * domain.c appdomain.c: Implement the new search hook so loaded 
865         assemblies are now scoped by appdomain. Fixes #67727.
866
867 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
868
869         * threads.c (mono_thread_attach): Initialize synch_lock field so
870         mono_thread_detach works again.
871
872         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
873         'lib' too. Fixes #63130.
874
875 2004-10-06  Jackson Harper  <jackson@ximian.com>
876
877         * culture-info-tables.h: regenerated.
878
879 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
880
881         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
882         implemented by other interfaces in the result. Fixes #65764.
883         
884         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
885         Handle unloadable modules without crashing.
886
887         * image.c (load_modules): Revert the previous patch since modules must
888         have a fixed index inside the array.
889         
890         * image.c (load_modules): Don't include native modules in the modules
891         array.
892
893 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
894
895         * reflection.h: Add param_defaults field.
896
897         * reflection.c: Add support for parameter defaults in dynamic methods.
898         Fixes #64595.
899
900         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
901         an empty string when a type has no namespace. Fixes #64230.
902
903 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
904
905         * tabledefs.h: Added "internal" security actions to support non-CAS
906         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
907         Note: they do not seems to be used anymore in 2.0 (new metadata format)
908
909 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
910
911         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
912         constructor of abstract class. Fixes #61689.
913
914 2004-10-04  Martin Baulig  <martin@ximian.com>
915
916         * class-internals.h (MonoGenericContainer): New type.
917         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
918         `MonoGenericContainer *generic_container'.
919         (MonoClass): Replaced `gen_params' and `num_gen_params' with
920         `MonoGenericContainer *generic_container'.
921
922         * metadata.c (mono_metadata_load_generic_params): Return a
923         `MonoGenericContainer *' instead of a `MonoGenericParam *';
924         removed the `num' argument.
925
926 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
927
928         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
929         for dynamic images.
930
931         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
932         machine fields.
933
934         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
935
936         * reflection.c: Save pe_kind and machine values into the generated
937         image file.
938
939         * appdomain.c: Bump corlib version number.
940
941         * object-internals.h: Reorganize layout of LocalBuilder.
942
943         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
944         New helper function.
945
946         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
947         created MonoType for dynamic types. Fixes #66180.
948
949 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
950
951         * threadpool.c: the ares hashtable needs a critical section around it.
952         this prevents some nasty segfaults
953
954 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
955
956         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
957         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
958         bug 67324).
959         
960 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
961
962         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
963         
964 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
965
966         * image.c: Always canonicalize image file names, to avoid loading
967         the same assembly twice when referenced using a relative path.
968
969 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
970
971         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
972
973         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
974
975         * marshal.c: Fix warnings.
976
977 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
978
979         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
980         attempting to marshal the delegate_trampoline as the method_addr.
981         This patch has a static hashtable of marshalled delegates so that 
982         we can map delegate_trampoline addresses back to delegates.  This
983         allows a delegate passed to managed code to be passed back into native
984         code.  Fixes #67039
985
986 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
987
988         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
989
990         * reflection.c (method_encode_code): Align method headers properly.
991         Fixes #66025.
992
993 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
994
995         * marshal.c: In the runtime invoke wrapper, reset the abort
996         exception if it is cached. This avoids the automatic rethrowal of 
997         the exception after the catch of the wrapper. Also check for pending
998         interruptions before calling the managed method. This is done using
999         the new method emit_thread_force_interrupt_checkpoint, since the
1000         normal checkpoint method is ignored when running the invoke wrapper.
1001         * object.c: If the abort exception is rethrown, set the abort_exc
1002         field of the thread, so it will be rethrown aftere every catch.
1003         * threadpool.c: Only run an interruption checkpoint if what has been
1004         requested is a stop of the thread (aborts will be ignored).
1005         * threads.c: By default, a thread will now never be interrumped while
1006         running the runtime invoke wrapper (this ensures that runtime_invoke
1007         will always return to the caller if an exception pointer is provided).
1008         There is a new special method mono_thread_force_interruption_checkpoint()
1009         to force an interruption checkpoint even if running a protected
1010         wrapper, which is used by the same runtime invoke wrapper to do a check
1011         at a safe point.
1012
1013 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1014
1015         * object.c, object-internals.h: Implemented mono_release_type_locks,
1016         which releases the cctor locks held by a thread.
1017         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1018         by a thread. Added mono_thread_exit() method to be used to safely stop
1019         a thread.
1020
1021 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1022
1023         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1024         Move null check before dereference.  Avoid indexing beyond the end
1025         of the 'modules' array.
1026
1027 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1028
1029         * metadata-internals.h (MonoImage): Add module_count field.
1030         * image.c (load_modules): Set image->module_count.
1031         (mono_image_load_file_for_image): Use image->module_count.
1032         * reflection.c (mono_image_load_module): Append to image->modules array 
1033         of dynamic assembly.
1034         (mono_module_get_object): Fix loop to actually increment index.
1035         Use image->module_count.
1036         * assembly.c (mono_assembly_load_references): Use image->module_count.
1037         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1038         Likewise.
1039
1040 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1041
1042         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1043         Avoid assert on generic types.
1044
1045 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1046
1047         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1048
1049         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1050
1051         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1052         function to convert a MarshalSpec structure to its managed counterpart.
1053
1054         * reflection.c: Fix warnings.
1055         
1056         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1057         field.
1058
1059         * icall.c (mono_create_icall_signature): Fix build.
1060
1061 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1062
1063         * icall.c: Add MakePointType icall.
1064
1065         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1066         warnings.
1067
1068 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1069
1070         * threadpool.c: reuse allocated slots in the queue.
1071
1072 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1073
1074         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1075
1076         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1077
1078         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1079         previous change.
1080
1081         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1082         ThrowOnUnmappableChar.
1083
1084         * icall.c (ves_icall_Type_GetPacking): New icall.
1085
1086 2004-09-24  Martin Baulig  <martin@ximian.com>
1087
1088         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1089
1090 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1091
1092         * appdomain.c:
1093         (mono_domain_set): allow setting a domain that is being unloaded.
1094         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1095         being unloaded.
1096
1097 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1098
1099         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1100         the GetCustomAttributes icall.
1101
1102 2004-09-23  Martin Baulig  <martin@ximian.com>
1103
1104         * object-internals.h (MonoReflectionGenericParam): Replaced
1105         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1106         with `guint32 attrs'.
1107
1108 2004-09-23  Martin Baulig  <martin@ximian.com>
1109
1110         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1111
1112 2004-09-23  Martin Baulig  <martin@ximian.com>
1113
1114         * object-internals.h (GenericParameterAttributes): New enum.
1115
1116 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1117
1118         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1119         
1120         * class.c (init_events): Fill out event->other field.
1121
1122         * class.c: Fix warnings.
1123
1124         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1125
1126 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1127
1128         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1129         walk which doesn't supply the IL offset.
1130
1131 2004-09-22  Martin Baulig  <martin@ximian.com>
1132
1133         * reflection.c (mono_reflection_setup_internal_class): If we're
1134         System.ValueType, System.Object or System.Enum, set
1135         `klass->instance_size' and create the vtable.
1136         (mono_reflection_create_internal_class): If we're an enum type,
1137         get the base class from our current corlib.
1138
1139 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1140
1141         * reflection.h (MonoResolveTokenError): New type.
1142
1143         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1144         icall.
1145
1146         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1147
1148 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1149
1150         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1151         Support also calling constructors, but only for already allocated objects.
1152
1153 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1154
1155         * reflection.c (type_get_qualified_name): If the klass is null
1156         return the typename to avoid a NullRefEx.
1157         (encode_cattr_value): Get the qualified name of the boxed type,
1158         not the underlying enumtype.  Fixes #62984.
1159
1160 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1161
1162         * marshal.c: Fix problems with previous checkin.
1163
1164 2004-09-21    <vargaz@freemail.hu>
1165
1166         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1167         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1168
1169         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1170
1171 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1172
1173         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1174         should only return a type for pointers, arrays, and passbyref types.
1175         Fixes bug #63841.
1176
1177 2004-09-21  Martin Baulig  <martin@ximian.com>
1178
1179         * domain.c (mono_debugger_check_runtime_version): New public
1180         function.
1181
1182         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1183
1184 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1185
1186         * reflection.c: Added missing sort to the declarative security 
1187         attributes table. MS implementation stops seeing the attributes if the
1188         token number regress in the table (as shown by ildasm and permview).
1189
1190 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1191
1192         * object-internals.h (MonoReflectionModule): Add 'token' field.
1193         
1194         * reflection.c (mono_reflection_get_token): Add support for Module
1195         and Assembly.
1196         (mono_module_get_object): Set 'token' field.
1197         (mono_module_file_get_object): Set 'token' field.
1198
1199         * icall.c: Add new Assembly and Module icalls.
1200
1201         * appdomain.c: Bump corlib version.
1202
1203 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1204
1205         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1206         tokens of metadata objects.
1207
1208         * reflection.h reflection.c (mono_reflection_get_token): New function
1209         to obtain the token of a metadata object.
1210
1211         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1212
1213 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1214
1215         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1216         
1217         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1218
1219 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1220
1221         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1222         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1223         AssemblyBuilder to access the permissions set in the class lib.
1224         * reflection.c: Added security attributes encoding step in 
1225         mono_image_build_metadata.
1226         * tabledefs.h: Added new security actions defined in 2.0:
1227         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1228
1229 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1230
1231         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1232         macro parameter.
1233
1234 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1235  
1236         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1237           finalized. There where random SIGSEVs at program termination, when
1238           an object being finalized was trying to do a string comparison and
1239           the current culture was already finalized.
1240  
1241 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1242
1243         * threads.c: call thread_cleanup before finishing the thread if we get
1244         there.
1245
1246 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1247
1248         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1249         assemblies from the parent. Fixes #65665.
1250
1251 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1252
1253         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1254         modifiers.
1255
1256 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1257
1258         * reflection.h: add prototype for mono_get_dbnull_object
1259         * reflection.c: add prototypes for get_default_param_value_blobs 
1260         and mono_get_object_from_blob for fussier compilers
1261
1262 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1263  
1264         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1265         false deadlock checks in class initialization.
1266  
1267 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1268
1269         * image.c (mono_image_addref): Fix comment.
1270
1271         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1272         possible.
1273
1274 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1275
1276         * reflection.c (mono_param_get_objects): Modified to return
1277         ParameterInfo.DefaultValue object.
1278
1279         (get_default_param_value_blobs):
1280         (mono_get_object_from_blob):
1281         (mono_get_dbnull_object): New helper routines. 
1282
1283         * object.c (mono_get_constant_value_from_blob): New helper routine
1284         carved out from get_default_field_value ()
1285
1286         * object-internals.h (mono_get_constant_value_from_blob): Added
1287         function declaration.
1288
1289 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1290
1291         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1292         referenced assemblies. Fixes #62135.
1293
1294         * exception.h exception.c (mono_get_exception_file_not_found2): New
1295         helper function.
1296
1297 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1298
1299         * class.h class.c: Add mono_type_get_underlying_type ().
1300
1301 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1302
1303         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1304         Fix GetTypes() to support dynamically created assemblies.
1305
1306 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1307
1308         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1309         
1310         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1311         previous patch.
1312
1313         * reflection.h reflection.c loader.c: Allow dynamic construction of
1314         pinvoke methods. Fixes #65571.
1315         
1316         * reflection.c (mono_reflection_get_type): Revert previous change since
1317         it causes regressions.
1318
1319 2004-09-08  Martin Baulig  <martin@ximian.com>
1320
1321         * class.c (class_compute_field_layout): Don't call
1322         mono_class_layout_fields() for open generic instances.
1323
1324 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1325         * threads.c appdomain.c: fix typo in GC macro
1326
1327 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1328
1329         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1330         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1331
1332 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1333
1334         * image.c (mono_image_close): Applied patch from 
1335         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1336         assembly is loaded multiple times from data.
1337         
1338         * image.c (mono_image_open): Fix warning.
1339
1340 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1341
1342         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1343         once. Fixes #58334.
1344         
1345         * reflection.c (mono_reflection_create_runtime_class): Initialize
1346         klass->nested_classes. Fixes #61224.
1347
1348 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1349
1350         * threads.c: sched_yield() on exit, to allow threads to quit.
1351
1352 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1353
1354         * object.c (mono_unhandled_exception): Remove leftover debug code.
1355
1356 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1357
1358         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1359
1360 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1361
1362         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1363         
1364         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1365
1366 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1367
1368         * marshal.c (emit_marshal_array): Null terminate string arrays.
1369         
1370         * marshal.c (raise_auto_layout_exception): Fix warning.
1371
1372         * reflection.c (mono_param_get_objects): Initialize the default value
1373         with DBNull.Value, not null. Fixes #62123.
1374
1375 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1376
1377         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1378         throw an exception with a cute explanation.
1379
1380 2004-09-06  Dick Porter  <dick@ximian.com>
1381
1382         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1383         Close the new process's thread handle, as we don't use it.  The
1384         handle stays around forever otherwise.
1385
1386 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1387
1388         * object.c (arith_overflow): Fix warning.
1389
1390         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1391         calling conventions in method refs. Fixes #65352.
1392
1393         * reflection.c: Fix warnings.
1394
1395 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1396
1397         * icall.c: Add a new icall for Array.Clear
1398
1399 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1400
1401         * object.c: When allocating an array, we have to throw
1402         an overflow exception if any of the lengths are < 0.
1403
1404 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1405
1406         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1407         properly. Also move implementation of string array marshalling to 
1408         managed code. Fixes #42316.
1409
1410 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1411
1412         * assembly.c: provide more information when loading an assembly fails.
1413
1414 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1415
1416         * filewatcher.c: don't expect the development fam package to be
1417         installed.
1418
1419 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1420
1421         * marshal.c: Make a copy of the signature cookie since it will be
1422         freed by the caller.
1423         
1424         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1425
1426         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1427
1428         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1429         marshal specs.
1430
1431         * marshal.c: More refactoring.
1432         
1433         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1434         smaller functions.
1435
1436 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1437
1438         * object.c: In mono_message_invoke, fill the output parameter array after
1439           calling the managed method (it was done before the call). This fixes
1440           bug #59299.
1441
1442 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1443
1444         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1445         as well.
1446
1447 2004-09-02  Martin Baulig  <martin@ximian.com>
1448
1449         * class.c (mono_class_instance_size): Don't allow generic type
1450         definitions or open generic instances.
1451         (mono_class_array_element_size): If we're a value type, call
1452         mono_class_instance_size() on the original class.
1453
1454         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1455         handle generic instances.
1456
1457         * mono-debug-debugger.c (write_type): Handle generic instances
1458         like classes.
1459
1460 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1461
1462         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
1463         the allocation request fails. Fixes #65089.
1464
1465         * object.c (mono_runtime_free_method): Do not call mono_free_method.
1466         
1467         * object.c (mono_runtime_free_method): New function to free a dynamic
1468         method.
1469
1470         * marshal.c (mono_delegate_free_ftnptr): New function to free the
1471         delegate trampoline.
1472
1473         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
1474         with hasthis as dynamic,
1475
1476         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
1477
1478         * domain.c (mono_jit_info_table_remove): New function to remove an
1479         entry from the jit info table.
1480
1481         * class-internals.h (MonoMethod): Add 'dynamic' field.
1482
1483         * loader.c: Fix warnings.
1484
1485 2004-09-01  Martin Baulig  <martin@ximian.com>
1486
1487         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
1488         instead of mono_debugger_lock() because the latter one is a no-op
1489         unless running in the debugger.
1490
1491 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1492
1493         * class.c (class_compute_field_layout): Classes with auto-layout or
1494         reference fields are not blittable.
1495         
1496 2004-09-01  Dick Porter  <dick@ximian.com>
1497
1498         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
1499         mono_image_get_filename() to get the assembly location.
1500
1501         * icall.c:
1502         * metadata.h: Fix compile warnings
1503
1504 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1505
1506         * class.c (class_compute_field_layout): System.Object is blittable.
1507
1508         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
1509         as in/out. Fixes #59909.
1510
1511 2004-09-01  Martin Baulig  <martin@ximian.com>
1512
1513         * metadata.h (MONO_TYPE_ISREFERENCE): Call
1514         mono_metadata_generic_inst_is_valuetype() if we're a generic
1515         instance to check whether our underlying type is a reference type.
1516
1517 2004-09-01  Martin Baulig  <martin@ximian.com>
1518
1519         * metadata.c (mono_type_size): If we're a generic instance, call
1520         mono_class_value_size() for value types.
1521
1522 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
1523
1524         * marshal.c: Implement more custom marshalling functionality. Fixes
1525         #64915.
1526
1527 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1528
1529         * mono-debug.c, debug-mono-symfile.c: add some locking love.
1530
1531 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
1532
1533         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
1534
1535         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
1536
1537         * icall.c: Fix some warnings.
1538
1539         * threads.c (abort_appdomain_thread): Fix unref errors.
1540         (mono_thread_current): Fix THREAD_DEBUG define.
1541
1542 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
1543
1544         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
1545
1546         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
1547
1548 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
1549
1550         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
1551         string arrays.
1552
1553 2004-08-28  Martin Baulig  <martin@ximian.com>
1554
1555         * metadata.c
1556         (mono_metadata_generic_inst_is_valuetype): New public function.
1557
1558         * metadata.h (MONO_TYPE_ISSTRUCT): Call
1559         mono_metadata_generic_inst_is_valuetype() if we're a generic
1560         instance to check whether our underlying type is a valuetype.
1561
1562 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
1563
1564         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
1565         #63768.
1566
1567 2004-08-25  Martin Baulig  <martin@ximian.com>
1568
1569         * loader.c (mono_get_method_from_token): Abstract methods can also
1570         be generic and thus have type parameters.
1571
1572         * metadata-internals.h
1573         (MonoDynamicImage): Added `GPtrArray *gen_params'.
1574
1575         * reflection.c (mono_image_get_generic_param_info): Don't create a
1576         metadata row, just add an entry to the `gen_params' array.
1577         (build_compressed_metadata): Sort the `gen_params' array and then
1578         actually create the metadata.
1579
1580 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1581
1582         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
1583
1584 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
1585
1586         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
1587
1588 2004-08-24  Martin Baulig  <martin@ximian.com>
1589
1590         * class.cs (mono_class_is_subclass_of): Like an interface, a
1591         generic instance also derives from System.Object.
1592
1593 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
1594
1595         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
1596         custom modifiers to be in any order. Fixes #61990.
1597
1598 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
1599
1600         * object.c: Register mono_object_new_fast icall.
1601         
1602         * object.c (mono_class_get_allocation_ftn): Return to calling
1603         mono_object_new_fast, since it seems faster to compute the object 
1604         size in unmanaged code than passing it as a parameter.
1605
1606         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
1607
1608         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
1609         this function with Boehm as the oom handler, so we don't have to check
1610         the result of GC_malloc.
1611
1612         * object.c: Remove checks for oom.
1613
1614         * object.h object.c (mono_class_get_allocation_ftn): New function to
1615         return the icall which can be used to allocate an instance of a given
1616         class. 
1617
1618         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
1619
1620         * class-internals.h: Add 'enabled' field.
1621
1622 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
1623
1624         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
1625
1626 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
1627         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
1628         value 0x0010.
1629
1630 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
1631
1632         * appdomain.c: use the Tls function for appdomain too,
1633         at Zoltan's request. Actually return in mono_context_get
1634
1635         * appdomain.c, profiler.c, threads.c: use __thread
1636
1637 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
1638
1639         * appdomain.c threads.c: Call GC_CreateThread on windows.
1640
1641         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
1642         multiple libraries since this don't work on windows.
1643
1644 2004-08-18  Martin Baulig  <martin@ximian.com>
1645
1646         * class-internals.h
1647         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
1648         MonoMethodHeader.
1649
1650         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
1651         MonoMethodNormal since we also need it for abstract and interface
1652         methods.
1653
1654         * reflection.c
1655         (build_compressed_metadata): Sort the GenericParam table.
1656         (mono_image_create_token): Added `gboolean create_methodspec'
1657         argument; this is false when generating a MethodImpl token.
1658         (reflection_methodbuilder_to_mono_method): Abstract and interface
1659         methods may also have generic parameters.
1660
1661 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
1662
1663         * appdomain.c: thread local alloc
1664
1665 2004-08-17  Martin Baulig  <martin@ximian.com>
1666
1667         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
1668
1669         * icall.c
1670         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
1671         argument.
1672
1673         * class.c (mono_type_get_full_name): New public function.
1674         (mono_type_get_name): Don't include the type arguments.
1675
1676 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
1677
1678         * Makefile.am: Build static versions of libmetadata and libmonoruntime
1679         for inclusion into the mono executable.
1680
1681 2004-08-16  Martin Baulig  <martin@ximian.com>
1682
1683         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
1684         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
1685
1686 2004-08-14  Martin Baulig  <martin@ximian.com>
1687
1688         * class.c (dup_type): Also copy the `byref' field.
1689
1690 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
1691
1692         * reflection.c (create_dynamic_mono_image): Revert the last change 
1693         since it breaks bootstrap.
1694
1695 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
1696
1697         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
1698
1699         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
1700         not free them with g_free.
1701
1702 2004-08-11  Martin Baulig  <martin@ximian.com>
1703
1704         * reflection.c (mono_reflection_setup_internal_class): Also call
1705         mono_class_setup_mono_type() if we already have a `tb->type.type'.
1706
1707 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
1708
1709         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
1710         called during default (first) AppDomain creation. Keep track of
1711         Evidence when loading assemblies.
1712
1713 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
1714
1715         * opcodes.c, opcodes.h: reduce runtime relocations.
1716
1717 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
1718
1719         * culture-info.h, locales.c: fixes and chages to sue the new
1720         optimized format of the locale data.
1721         * culture-info-tables.h: regenerated.
1722
1723 2004-08-06  Geoff Norton <gnorton@customerdna.com>
1724         
1725         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
1726
1727 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
1728
1729         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
1730         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
1731         * domain-internals.h: icall declaration.
1732         * icall.c: icall registration.
1733         * object-internals.h: New fields in MonoAssembly for CAS.
1734
1735 2004-08-05  Duncan Mak  <duncan@ximian.com>
1736
1737         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
1738         CEE_LDELEM_ANY.
1739
1740 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
1741
1742         * reflection.c: fix to deal with object[] arrays in custom ctors
1743         (bug #62550).
1744
1745 2004-08-05  Martin Baulig  <martin@ximian.com>
1746
1747         * class.c (mono_class_array_element_size): Added support for
1748         generic instances and correctly handle "recursive" types.
1749
1750 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
1751
1752         * assembly.c: Fix warnings.
1753
1754 2004-08-04  Martin Baulig  <martin@ximian.com>
1755
1756         * class.c
1757         (mono_type_get_name_recurse): Added `gboolean include_arity'
1758         argument specifying whether or not we should include the generic
1759         arity in the type name.
1760         (_mono_type_get_name): New static function.
1761         (mono_class_setup_vtable): If we're a generic instance, don't
1762         include the generic arity in the names of explicit method
1763         implementations.        
1764
1765 2004-08-03  Martin Baulig  <martin@ximian.com>
1766
1767         * class.c (mono_type_get_name_recurse): Enclose the generic type
1768         arguments in `<', '>'.
1769
1770 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
1771
1772         * gc.c: make GC warning messages use the trace API, they are just
1773         noise to most of the users.
1774
1775 2004-08-03  Martin Baulig  <martin@ximian.com>
1776
1777         * debug-mono-symfile.c (read_string): Correctly read the string.
1778
1779 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
1780
1781         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
1782         
1783         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
1784         icalls.
1785         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
1786
1787 2004-07-30  Martin Baulig  <martin@ximian.com>
1788
1789         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
1790         Reflect latest symbol writer changes.   
1791
1792 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
1793
1794         * object.c: always create an object if null is passed
1795         to Invoke() where a valuetype is expected.
1796
1797 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
1798
1799         * marshal.c (mono_marshal_init): make managed
1800         signatures match native ones better for 64bits.
1801
1802 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1803
1804         * appdomain.c: hack to build correctly the private bin path on windows.
1805         Fixes bug #61991.
1806
1807 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
1808
1809         * assembly.c: Load mscorlib from the correct framework directory
1810           (mono/<version>/mscorlib.dll).
1811         * appdomain.h: Added prototypes for new functions.
1812         * internals.h: Added some prototypes.
1813         * domain.c: When initializing the runtime, get from the executable and
1814           the configuration files the runtime version that the app supports.
1815           Added support methods for reading app.exe.config. Added list of versions
1816           supported by the JIT. Added two new methods: mono_init_from_assembly,
1817           which initializes the runtime and determines the required version from
1818           the provided exe file, and mono_init_version, which initializes
1819           the runtime using the provided version.
1820         * icall.c: Get machine.config from version-specific directory.
1821         * reflection.c: When generating an image, embed the version number
1822           of the current runtime.
1823
1824 2004-07-28  Dick Porter  <dick@ximian.com>
1825
1826         * socket-io.c
1827         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
1828         returned sockaddr size before creating the remote address object.
1829         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
1830         61608.
1831
1832 2004-07-28  Dick Porter  <dick@ximian.com>
1833
1834         * locales.c (string_invariant_compare_char): Fix invariant char
1835         compares between upper and lower cases.  Fixes bug 61458.
1836
1837 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
1838         
1839         * marshal.c: actually cache stelem.ref wrappers.
1840         
1841 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
1842
1843         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
1844         sections and remove the mono_cli_rva_map () function.
1845
1846 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
1847
1848         * debug-mono-symfile.c: fix one more endianess issue, from a patch
1849         by Geoff Norton (<gnorton@customerdna.com>).
1850
1851 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
1852
1853         * class.c: fix class loads for pointer types (typeof(int) !=
1854         typeof(int*)).
1855
1856 2004-07-27  Martin Baulig  <martin@ximian.com>
1857
1858         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
1859         reading the debugging information from an external ".mdb" file.
1860
1861 2004-07-24  Martin Baulig  <martin@ximian.com>
1862
1863         * reflection.c (mono_image_get_type_info): Only write a class
1864         layout entry if we actually have a size or a packing size.
1865
1866 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
1867
1868         * reflection.c (type_get_fully_qualified_name): 
1869         insert cast to get type checking of ?: with non-gcc compilers
1870
1871 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
1872
1873         * rand.c: use g_getenv for both lookups of
1874         MONO_EGD_SOCKET
1875
1876 2004-07-17  Martin Baulig  <martin@ximian.com>
1877
1878         * reflection.c (mono_reflection_bind_generic_method_parameters):
1879         Set `gmethod->reflection_info'.
1880
1881 2004-07-17  Martin Baulig  <martin@ximian.com>
1882
1883         * class.c (mono_class_create_from_typedef): Insert the newly
1884         created class into the hash table before computing the interfaces
1885         since we could be called recursively.
1886
1887 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
1888
1889         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
1890         function to implement stelem.ref in managed code
1891         * class-internals.h, debug-helpers.c: a new wrapper type
1892         for the above.
1893
1894 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
1895
1896         * gc.c: allow GC handles to work even when no GC is compiled in.
1897         Fix part of bug #61134 (GetAddrOfPinnedObject).
1898
1899 2004-07-13  Peter Williams  <peter@newton.cx>
1900  
1901         * process.c (complete_path): Make sure we don't attempt to execute
1902         directories.
1903  
1904 2004-07-12  Geoff Norton <gnorton@customerdna.com>
1905
1906         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
1907           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
1908           and will add/subtract the hour if needed
1909
1910 2004-07-12  Martin Baulig  <martin@ximian.com>
1911
1912         * reflection.c (mono_field_get_object): If we have
1913         `field->generic_info', take the attributes from
1914         `field->generic_info->generic_type'.    
1915
1916 2004-07-12  Martin Baulig  <martin@ximian.com>
1917
1918         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
1919         This function must be called before initializing the runtime.
1920         (mono_debug_init_1): New function; call this after initializing
1921         the runtime, but before loading the assembly.  It tells the
1922         debugger to load corlib and the builtin types.
1923
1924         * mono-debug-debugger.c: Did some larger changes in the debugging
1925         code; support recursive class declarations, make sure we actually
1926         add all classes.
1927
1928 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1929
1930         * debug-helpers.c: undo my previous patch and fixed the real issue in
1931         ../mini/exceptions-x86.c
1932
1933 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1934
1935         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
1936         when no HOME env. variable was set and a NullRef was thrown in a .cctor
1937         called from other .cctors.
1938
1939 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
1940
1941         * loader.c: Removed the mono_loader_wine_init hack now that we are
1942         doing a managed version of Windows.Forms.
1943
1944 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
1945
1946         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
1947         threadpool.c, threads.c: remove static data from rootset.
1948
1949 2004-07-09  Dick Porter  <dick@ximian.com>
1950
1951         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
1952         Don't do any more processing if the matched length was 0.  It was
1953         increasing the size of the string before.  Fixes bug 61167.
1954
1955 2004-07-09  Dick Porter  <dick@ximian.com>
1956
1957         * socket-io.h:
1958         * socket-io.c
1959         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1960         Add support for SO_PEERCRED if its available.
1961
1962 2004-07-09  Peter Bartok <pbartok@novell.com>
1963         * loader.c: winelib.exe.so error message is now only displayed if
1964         MONO_DEBUG is set. To help us avoid questions when people are trying
1965         out the new Managed.Windows.Forms.
1966
1967 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
1968
1969         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
1970         for isinst and castclass wrappers.
1971
1972         * class-internals.h icall.c: Move registration and lookup of JIT icalls
1973         to libmetadata from the JIT, so they could be used by the marshalling
1974         code and the interpreter.
1975
1976         * marshal.c: Register marshalling related JIT icalls here instead of
1977         in mini.c. Use CEE_MONO_ICALL instead of the family of 
1978         CEE_MONO_PROC<x> opcodes to call marshalling functions.
1979
1980         * metadata.h: Remove unneeded marshalling conversions.
1981
1982         * opcodes.c: Update for new opcodes.
1983         
1984 2004-07-08  Martin Baulig  <martin@ximian.com>
1985
1986         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
1987         (mono_debug_get_domain_data): Make this function static.
1988
1989 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
1990
1991         * gc.c, object.h: add nice GC handle API for embedders.
1992
1993 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
1994
1995         * reflection.c: more changes for the new api
1996
1997         * object.c: When we reflect on a field w/ a constant value, it
1998         will not have a memory location, so we must access metadata. Also,
1999         allow easier reading of strings so that we can read them from
2000         the constant data.
2001
2002         * class.c (mono_class_layout_fields): no need for literal fields here.
2003
2004         * class-internals.h: api changes for const fields
2005
2006         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2007
2008 2004-07-06  Martin Baulig  <martin@ximian.com>
2009
2010         * mono-debug.h: Increment version number to 44.
2011
2012         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2013         now a gpointer, rewrote this whole method.
2014
2015         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2016         function.  Add information about the wrapper in a new "misc table".
2017
2018         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2019         for the new misc table.
2020
2021 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2022
2023         * metadata-internals.h image.c: Add a cache for helper signatures.
2024
2025         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2026
2027 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2028
2029         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2030         delegates from a delegate. Fixes #61033.
2031         
2032         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2033         marshalling of stringbuilder arrays. Fixes #59900.
2034
2035 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2036
2037         * icall.c: Add EnumBuilder:setup_enum_type icall.
2038
2039 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2040
2041         * icall.c: Added a new icall for the property version of
2042         OffsetOfStringData.
2043
2044 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2045
2046         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2047         it has a constant size across platforms.
2048
2049         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2050         stack trace.
2051
2052 2004-06-29  Martin Baulig  <martin@ximian.com>
2053
2054         * mono-debug.c (mono_debug_add_method): Protect the whole function
2055         in mono_debugger_lock(), not just parts of it.
2056
2057 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2058
2059         * reflection.c: make sure padding bytes in heaps are zeroed.
2060
2061 2004-06-24  David Waite  <mass@akuma.org>
2062
2063         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2064         image.c, loader.c, locales.c, marshal.c, metadata.c,
2065         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2066         string-icalls.c, threads.c: change to C90-style comments from C99 /
2067         C++ -style
2068
2069 2004-06-24  Dick Porter  <dick@ximian.com>
2070
2071         * threads.c
2072         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2073         return createdNew.  Fixes bug 60412.
2074
2075         * threads-types.h: 
2076         * icall.c: Add createdNew parameter to CreateMutex icall
2077
2078 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2079
2080         * reflection.c, object-internals.h: save default value in params.
2081
2082 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2083
2084         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2085         no need to build a new path combining that with the application base.
2086         Fixes bug #60442.
2087
2088 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2089
2090         * reflection.c: fixed minor standard compliance issues.
2091
2092 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2093
2094         * reflection.c: fixed issue with encoding some custom attributes
2095         (arrays in properties and fields, bug #60411).
2096
2097 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2098
2099         * reflection.c: fix start address when copying the public key token.
2100
2101 2004-06-23  Martin Baulig  <martin@ximian.com>
2102
2103         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2104         the `exc' object in a static object to put it into the GC's root set.
2105
2106 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2107
2108         * reflection.c: make mono_reflection_setup_internal_class ()
2109         callable a second time to setup a new parent class.
2110
2111 2004-06-23  Dick Porter  <dick@ximian.com>
2112
2113         * threads.c: Check for WAIT_IO_COMPLETION return values.
2114
2115 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2116
2117         * appdomain.c: Removed the g_free on the public key token. Now copy 
2118         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2119         * assembly.c: Added public key token string value when loading 
2120         assemblies. Fix bug #60439.
2121         * icall.c: Added missing informations (like public key) in 
2122         GetReferencedAssemblies. Fix #60519.
2123         * image.h: Changed definition for public key token from const char*
2124         public_tok_value to guchar public_key_token [17];
2125         * reflection.c: Updated for changes to public key token.
2126
2127 2004-06-22  Lluis Sanchez Gual
2128
2129         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2130         for the field in base classes.
2131
2132 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2133
2134         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2135         mark headers as not supported, they are installed only for use by the
2136         debugger.
2137
2138 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2139
2140         * *.c, *.h: avoid namespace pollution in public headers.
2141
2142 2004-06-21  Martin Baulig  <martin@ximian.com>
2143
2144         * exception.c (mono_get_exception_security): It's in
2145         "System.Security", not in "System".
2146
2147         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2148         the exception classes.
2149
2150 2004-06-21  Martin Baulig  <martin@ximian.com>
2151
2152         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2153         Protect the exception object from being finalized.
2154
2155 2004-06-21  Martin Baulig  <martin@ximian.com>
2156
2157         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2158         public function.
2159
2160 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2161
2162         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2163         if it was not loaded before. Fix parts of #60439.
2164
2165 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2166
2167         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2168         code that was broken since Ben's change: wrappers are now
2169         dependent on the method signature only again.
2170
2171 2004-06-21  Martin Baulig  <martin@ximian.com>
2172
2173         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2174         added interface support.
2175
2176 2004-06-21  Martin Baulig  <martin@ximian.com>
2177
2178         * class.c (mono_vtable_get_static_field_data): New public method.
2179
2180 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2181
2182         * filewatcher.c : Windows build fix to be compliant with API changes.
2183
2184 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2185
2186         * class.h, class.c: more accessors.
2187         * metadata.h, metadata.c: prepare for hiding MonoType and
2188         MonoMethodSignature: people should use the accessors from now on
2189         outside of the tree.
2190
2191 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2192
2193         * *.c, *.h: more API cleanups.
2194
2195 2004-06-18  Jackson Harper  <jackson@ximian.com>
2196
2197         * assembly.c: Trace loading assemblies.
2198         * loader.c: Trace loading native libraries.
2199         * mono-config.c: Trace loading config files.
2200         
2201 2004-06-18  Dick Porter  <dick@ximian.com>
2202
2203         * locales.c: Tell ICU the lengths of strings, it can cope with
2204         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2205
2206 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2207
2208         * image.c: swapped name/filename;
2209
2210 2004-06-18  Martin Baulig  <martin@ximian.com>
2211
2212         * mono-debug-debugger.c (write_class): Write the parent class at
2213         the end of the header.
2214
2215 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2216
2217         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2218
2219 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2220
2221         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2222         (bundle_obj): New conditional define.
2223         (BUILT_SOURCES): Remove.
2224         ($(bundle_srcs)): Make parallel-make safe.
2225         (libmonoruntime_la_LIBADD): Make unconditional.
2226         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2227         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2228
2229 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2230
2231         * culture-info-tables.h: It was inconsistent with the latest
2232           supp info files.
2233
2234 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2235
2236         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2237         be loaded.
2238
2239         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2240         with gcc 2.95.
2241
2242 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2243
2244         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2245         cleaned up public header threads.h.
2246
2247 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2248
2249         * Makefile.am, *.c, *.h: more API cleanups.
2250
2251 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2252
2253         * Makefile.am: removed monosn from compilation.
2254         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2255         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2256         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2257         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2258         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2259         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2260
2261 2004-06-15  Jackson Harper  <jackson@ximian.com>
2262
2263         * assembly.c: Make locales lower case when searching the GAC for
2264         assemblies. gacutil will always make locales lowercase when
2265         installing so this effectively makes them case insensitive.
2266         
2267 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2268
2269         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2270         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2271           parameter which allows to choose whether the wait can be interrupted or 
2272           not. Also added the method mono_monitor_enter(), which locks the monitor
2273           using an infinite wait and without allowing interruption.
2274           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2275           interrupted.
2276         * object.h: Added new fields in MonoThread. suspend_event holds the event
2277           used to susped/resume the thread. synch_lock is the lock object to use for
2278           modifying the thread state.
2279         * threads.c: Use the new synch_lock object for locking, instead of "this",
2280           which can generate deadlocks.
2281           Moved thread state change in Thread.Sleep and Thread.Join from managed
2282           to unmanaged code. This avoids a deadlock when the thread was suspended
2283           just after acquiring the thread lock.
2284           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2285           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2286           which is not fully implemented in the io-layer.
2287         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2288
2289 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2290
2291         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2292         threads-types.h: more API cleanups.
2293
2294 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2295
2296         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2297         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2298         threadpool.c, threads.c: first pass at the exported API cleanup.
2299
2300 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2301
2302         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2303
2304 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2305
2306         * icall.c: added internalGetHome.
2307
2308 2004-06-14  Dick Porter  <dick@ximian.com>
2309
2310         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2311         possible to return successfully when '.' or '..' were the only
2312         entries in a directory, but were skipped.  The MonoIOStat was not
2313         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2314         Fixes bug 59574.
2315
2316 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2317
2318         * reflection.c: make binaries run on .Net 1.1 by default.
2319
2320 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2321
2322         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2323
2324 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2325
2326         * marshal.c: keep track of struct size with explicit layout
2327         (bug #59979).
2328
2329 2004-06-12  Martin Baulig  <martin@ximian.com>
2330
2331         * mono-debug-debugger.c: Comment out a debugging g_message().
2332
2333 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2334
2335         * reflection.c, reflection.h: do not free custom attrs that are cached.
2336         * icall.c: use braces to make code clearer.
2337
2338 2004-06-11  Martin Baulig  <martin@ximian.com>
2339
2340         * class.h (MonoInflatedField): New type.
2341         (MonoClassField): Replaced `MonoType *generic_type' with
2342         `MonoInflatedField *generic_info'.
2343
2344         * icall.c
2345         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2346
2347 2004-06-11  Martin Baulig  <martin@ximian.com>
2348
2349         * reflection.c (mono_image_create_method_token): Correctly encode
2350         varargs methods.
2351
2352 2004-06-11  Martin Baulig  <martin@ximian.com>
2353
2354         * metadata.c (mono_metadata_parse_method_signature): When parsing
2355         a MethodDef which has VarArgs, also set sentinelpos if we don't
2356         have any parameters.
2357
2358 2004-06-11  Martin Baulig  <martin@ximian.com>
2359
2360         * verify.c (mono_method_verify): In CEE_CALL, use
2361         mono_method_get_signature() to get the method's signature, unless
2362         we're a PInvoke method.
2363
2364 2004-06-10  Jackson Harper  <jackson@ximian.com>
2365
2366         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2367         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2368         logical name as the supplied path is just a prefix to the gac not
2369         the direct path to it.
2370         
2371 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2372
2373         * reflection.c: make the token for a created method match
2374         the token of the MethodBuilder it was created from
2375         (IKVM requires this behaviour now).
2376
2377 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2378
2379         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2380         reflection.c, socket-io.c: leak fixes.
2381
2382 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2383
2384         * icall.c: handle sentinel pos in vararg methods in position different
2385         from 0.
2386
2387 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2388
2389         * culture-info-tables.h: freshly generated.
2390
2391 2004-06-09  Martin Baulig  <martin@ximian.com>
2392
2393         * loader.c (mono_get_method_constrained): Call `mono_class_init
2394         (constrained_class)'.   
2395
2396 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2397
2398         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2399         any methods. Fixes #59629.
2400
2401 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2402
2403         * culture-info-tables.h: reflecting locale-builder updates.
2404
2405 2004-06-08  Dick Porter  <dick@ximian.com>
2406
2407         * object.h:
2408         * locales.c: Fixed compile warnings, including a real bug in
2409         CompareInfo_internal_compare.
2410         
2411 2004-06-08  Dick Porter  <dick@ximian.com>
2412
2413         * locales.c
2414         (ves_icall_System_Globalization_CompareInfo_internal_index):
2415         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2416         Double-check the resuls of usearches, because ICU currently
2417         ignores most of the collator settings here.  Fixes bug 59720.
2418         
2419 2004-06-08  Dick Porter  <dick@ximian.com>
2420
2421         * locales.c
2422         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2423         Fix memory leak and segfault-causing typo.  No idea how this one
2424         lasted so long without being noticed.
2425
2426 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2427
2428         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2429         any methods. Fixes #59629.
2430
2431 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2432
2433         * assembly.c:
2434         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2435         own the critical section before). Removed dead code (that's done
2436         in the preload hook).
2437
2438         (mono_assembly_load_with_partial_name): call the preload hook.
2439
2440 2004-06-08  Martin Baulig  <martin@ximian.com>
2441
2442         * metadata.c (mono_metadata_signature_alloc): Default
2443         `sentinelpos' to -1.
2444
2445         * reflection.c (mono_image_get_array_token): Likewise.
2446
2447 2004-06-08  Martin Baulig  <martin@ximian.com>
2448
2449         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2450
2451         * metadata.c (mono_metadata_parse_method_signature): When parsing
2452         a MethodDef which has VarArgs, set sentinelpos.
2453
2454         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2455         `gint16' since we're using -1 for non-varargs methods.
2456
2457         * reflection.c
2458         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
2459         (method_encode_signature): Added varargs support.
2460         (method_builder_encode_signature): Likewise.
2461         (mono_image_get_varargs_method_token): New static method.
2462         (mono_image_create_method_token): New public method; this is
2463         called via an icall instead of mono_image_create_token() when
2464         calling a varargs method.       
2465
2466 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
2467
2468         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
2469
2470 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2471
2472         * culture-info-tables.h : Reflecting the latest locale-builder that
2473           fixed empty array representation ({} to {0}).
2474
2475 2004-06-07  Jackson Harper  <jackson@ximian.com>
2476
2477         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
2478         looking up extra gac paths. This allows MONO_GAC_PATH to act
2479         exactly like a prefix.
2480         
2481 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2482
2483         * reflection.c (mono_reflection_type_from_name): Make a copy of the
2484         type name before modifying it. Fixes #59405.
2485
2486 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2487
2488         * culture-info.h: added fields for "all datetime patterns".
2489         * locales.c: (  ves_icall_System_Globalization_CultureInfo
2490           _construct_datetime_format ()): fill xxx_patterns fields.
2491         * object.h: added fields for "all datetime patterns" to
2492           MonoDateTimeFormatInfo.
2493         * culture-info-tables.h: reflecting locale-builder updates.
2494
2495 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2496
2497         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
2498         the event has no add and remove methods. Fixes #59629.
2499
2500 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
2501
2502         * object.c: Fixed possible integer overflow when allocating large
2503         strings.
2504
2505 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2506
2507         * culture-info-tables.h: reflecting locale-builder updates.
2508
2509 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2510
2511         * culture-info-tables.h: reflecting locale-builder updates.
2512
2513 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
2514
2515         * culture-info-tables.h: reflecting locale-builder updates.
2516
2517 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
2518
2519         * threads.c: Made Thread.Sleep abortable.
2520
2521 2004-06-02  Martin Baulig  <martin@ximian.com>
2522
2523         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
2524
2525         * debug-mono-symfile.h: Bumped symbol file version number to 37.
2526
2527 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
2528
2529         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
2530
2531 2004-05-30  Jackson Harper  <jackson@ximian.com>
2532
2533         * reflection.c: Do not hardcode assembly versions or public key
2534         tokens anymore. All of this except the corlib section was dead
2535         code anyways.
2536         
2537 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
2538
2539         * object.c (mono_runtime_invoke_array): Automatically create boxed
2540         objects for byref valuetypes if needed. Fixes #59300.
2541         
2542         * object.c (mono_method_return_message_restore): Handle 
2543         MONO_TYPE_OBJECT as well.
2544
2545 2004-05-28  Jackson Harper  <jackson@ximian.com>
2546
2547         * reflection.c: The modified type encoding was causing build
2548         problems. Reverted for now.
2549         
2550 2004-05-28  Jackson Harper  <jackson@ximian.com>
2551
2552         * reflection.c/h: Take an assembly ref so that we dont create
2553         fully qualified names when encoding types in the same assembly as
2554         the custom attribute being emitted.
2555         * appdomain.c: Increment version number.
2556         
2557 2004-05-26  Duncan Mak  <duncan@ximian.com>
2558
2559         * icall.c
2560         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
2561         Set the full version number (major, minor, build, revision).
2562
2563 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
2564
2565         * marshal.c (emit_struct_conv): increment src/dst after blit
2566         (mono_marshal_get_managed_wrapper,
2567         mono_marshal_get_native_wrapper): make sure we have marshalling
2568         info before marshalling params (info computation affects
2569         blittable)
2570
2571         * class.c (class_compute_field_layout): correctly deal with
2572         blittable
2573         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
2574         value types (as per what windows dows by default)
2575         (mono_class_setup_mono_type): System.ValueType is blittable
2576         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
2577         blittable
2578
2579         * marshal.c (mono_marshal_load_type_info): flag types  as
2580         non-blittable if the native layout doesn't match the managed
2581         layout
2582
2583 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2584
2585         * appdomain.c: don't add stuff in the private search path that is
2586         above the application base. If application base is not set, there's
2587         no private search path.
2588
2589 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
2590
2591         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
2592         byref struct arguments in native->managed marshalling.
2593
2594 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
2595
2596         * marshal.c (mono_marshal_get_runtime_invoke): correctly
2597         cache methods using signature (special case for methods
2598         that are value type or string class)
2599         
2600         * image.c (mono_image_close): clean up allocated GSList's
2601         in runtime_invoke_cache.
2602
2603 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2604
2605         * mono-config.c: set the correct path for mono_cfg_dir on windows when
2606         there's no MONO_CFG_DIR environment variable defined.
2607
2608 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2609
2610         * threads.c: windows version must be >= 0x0500 to include OpenThread.
2611
2612 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
2613
2614         * threadpool.c: Really wait for 500ms after the async call, even if the wait
2615           is interrumped.
2616         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
2617           before waiting for it, and call CloseHandle after the wait to unref it.
2618           This will make sure that handles are not disposed too early.
2619
2620 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2621
2622         * appdomain.c:
2623         * appdomain.h:
2624         * icall.c: removed
2625         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
2626         needed now.
2627
2628         * object.c: se the application_base only for the domain that runs
2629         Main. Fixes bug #59216,
2630
2631 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2632
2633         * appdomain.c:
2634         * object.c: only the domain in which Main is run have
2635         SetupInformation.ConfigurationFile set, so moved a few lines from
2636         appdomain.c to object.c.
2637
2638 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2639
2640         * appdomain.c: we tried to load [name].(dll|exe), but according
2641         to bug #57710, we must also try [culture]/[name].(dll|exe) and
2642         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
2643         There's a test case attached to bug #58922.
2644
2645 2004-05-27  Dick Porter  <dick@ximian.com>
2646
2647         * icall.c:
2648         * file-io.c: Implemented icalls for locking and unlocking regions
2649         in a file.
2650         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
2651         FALSE on error (fixes both compiler warning and real bug.)
2652
2653 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
2654
2655         * culture-info-tables.h: reflecting locale-builder updates.
2656
2657           (Added missing ChangeLog entry for 05/26)
2658
2659 2004-05-27  Jackson Harper  <jackson@ximian.com>
2660
2661         * locales.c: Fix some cut and paste errors.
2662         
2663 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2664
2665         * mono-config.c: set the correct path for config. directory on windows.
2666
2667 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
2668
2669         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
2670           on win32.
2671
2672 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
2673
2674         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
2675         from pinvoke functions.
2676         
2677         * marshal.c (mono_ftnptr_to_delegate): Implement this.
2678
2679 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
2680
2681         * culture-info-tables.h: reflecting locale-builder updates.
2682
2683 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
2684
2685         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
2686         #59086.
2687
2688 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
2689
2690         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
2691         * icall.c: Modified icalls for RNG.
2692         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
2693         Windows (CryptoAPI).
2694
2695 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
2696
2697         * locales.c: Fix build.
2698
2699 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
2700
2701         * culture-info-tables.h: reflecting locale-builder updates.
2702
2703 2004-05-25  Jackson Harper  <jackson@ximian.com>
2704
2705         * locales.c: When creating the current culture use the $LANGs
2706         specific culture. So DateTimeFormat and NumberFormat entries are created.
2707         
2708 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
2709
2710         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
2711         a char array as parameter.
2712
2713 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
2714
2715         * image.c: In mono_image_open(), always use an absolute path name to
2716           look for already loaded images.
2717
2718 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
2719
2720         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
2721         missing in the windows build (like older cygwin include files).
2722
2723 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
2724
2725         * icall.c: Fixed check for possible integer overflow in Buffer_
2726         BlockCopy icall. Replaced comments style // by /* */.
2727
2728 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
2729
2730         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
2731         
2732         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
2733         check after MONO_VTADDR. Fixes pinvoke2.exe.
2734
2735         * marshal.h marshal.c metadata.h: Add beginnings of support for
2736         ftnptr -> delegate marshalling.
2737
2738 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
2739
2740         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
2741         * threads.c: Fix warnings.
2742
2743 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
2744
2745         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
2746         * icall.c: Registered icalls for Suspend and Resume.
2747         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
2748           Thread.Abort.
2749         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
2750         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
2751         * process.c: Use WaitForSingleObjectEx.
2752         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
2753           checkpoints.
2754         * threads.c, threads.h: Make use of new Ex wait methods. Improved
2755           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
2756           for Suspend and Resume. Added new mono_thread_stop, used for stoping
2757           background threads. Added basic support for Abort in Windows.
2758           Start new threads using a managed delegate invoke wrapper. This wrapper
2759           has an interruption checkpoint that is needed since an interruption
2760           can be requested before the thread leaves the unmanaged code that starts 
2761           the thread.
2762         * marshal.c: Added interruption checkpoint after every native call, and
2763           also before managed calls for wrappers called from unmanaged code to
2764           go into managed code.
2765         * object.h: Added new field in MonoThread to keep track of interruption
2766           requests.
2767
2768 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
2769
2770         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
2771         calls.
2772
2773 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2774
2775         * appdomain.c:
2776         * assembly.c:
2777         * gc.c:
2778         * locales.c:
2779         * mono-config.c:
2780         * rand.c: getenv -> g_getenv (windows!)
2781
2782         * process.c: complete_path is also used on non-windows platforms.
2783
2784 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2785
2786         * icall.c: new signature for Process_Start.
2787
2788         * process.[ch]: new signature for Process_Start. If we're on windows
2789         and UseShellExecute is false, we have to search for the program by
2790         ourselves if we don't get a full path.
2791
2792 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
2793
2794         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
2795         marshalling and call CleanUpNativeData if needed. Fixes #58646.
2796
2797 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2798
2799         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
2800         Fixes bug #58373.
2801
2802 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2803
2804         * process.c: use double quotes to quote program name and arguments on
2805         windows. Fixes bug #58575.
2806
2807 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2808
2809         * file-io.c: don't return "." and ".." when using windows Find*File.
2810
2811 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
2812
2813         * marshal.c: Don't pass wrappers to message init because method 
2814         addressed used to lookup metadata. part of remoting[2|3] fix.
2815
2816 2004-05-15  Jackson Harper  <jackson@ximian.com>
2817
2818         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
2819         path is essentially the same as MONO_PATH except that it points to
2820         GACs instead of lib directories.
2821         * loader.h: The user gac is gone so we dont need function to
2822         enable/disable it.
2823         * mono-config.c: user gac option is now gone.
2824         
2825 2004-05-15  Jackson Harper  <jackson@ximian.com>
2826
2827         * culture-info.h: Make defines more consistent, add calendar data
2828         to the culture info table.
2829         * culture-info-tables.h: Add basic calendar data. Basically
2830         everyone gets default gregorian until all the data is
2831         updated.
2832         * locales.c: Use the new consistent defines. Set calendar data for
2833         culture info objects.
2834         * object.h: add a field for calendar data to CultureInfo
2835         
2836 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
2837
2838         * image.c: image->runtime_invoke_cache is keyed on signatures now.
2839         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
2840         a signature.
2841         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
2842         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
2843         an extra param that is the pointer of the method to invoke. The IL for
2844         the invoke method is no longer specific to the method, but to the
2845         signature of the method. Thus, we can share the same code for multiple
2846         methods. This reduces the number of methods that have to be compiled.
2847
2848 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
2849
2850         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
2851
2852         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2853
2854         * icall.c: Optimize Buffer.BlockCopy.
2855
2856 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2857
2858         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
2859         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
2860         quote). Changed them to "MMMM yyyy".
2861
2862 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
2863
2864         * rand.c
2865         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
2866
2867 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
2868
2869         * reflection.h: Updated after changes to managed structures.
2870
2871         * appdomain.c: Bump corlib version.
2872
2873 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2874
2875         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
2876         windows.
2877
2878 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2879
2880         * Makefile.am: link to ../os/libmonoos.la on windows.
2881
2882         * assembly.c:
2883                 -If MONO_DEBUG, warn about non-existing directories in
2884                 MONO_PATH.
2885                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
2886                 compile time variable.
2887                 -Removed init_default_path and call mono_set_rootdir from
2888                 libmonoos.a instead (windows only).
2889
2890         * assembly.h: declare mono_assembly_getrootdir().
2891
2892         * domain.c:
2893         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
2894
2895         * loader.c: s/getenv/g_getenv/
2896
2897 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
2898
2899         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
2900
2901         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
2902
2903         * metadata.h: Add new marshalling conversions.
2904
2905         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
2906         function.
2907
2908         * reflection.c (mono_reflection_get_type): Lookup the type in all
2909         modules of a multi-module assembly. Fixes #58291.
2910
2911 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
2912
2913         * threads.c: Before aborting a background, set the StopRequested
2914         state.  This avoids throwing the Abort exception.
2915         In mono_thread_manage, don't continue with the shutdown until all
2916         aborted threads have actually stopped.
2917
2918 2004-05-10  Jackson Harper  <jackson@ximian.com>
2919
2920         * locales.c: Remove the modifier from culture names.
2921         
2922 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2923
2924         * Makefile.am: monosn is not installed any more. It has been deprecated
2925         in favor of sn.
2926
2927 2004-05-07  Jackson Harper  <jackson@ximian.com>
2928
2929         * locales.c
2930         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
2931         Fix array construction, add bailout if the length is 0.
2932
2933 2004-05-07  Dick Porter  <dick@ximian.com>
2934
2935         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
2936         machine doesn't have a DNS entry.  Patch by Urs Muff
2937         (umuff@quark.com), fixes bug 57928.
2938
2939 2004-05-06  Jackson Harper  <jackson@ximian.com>
2940
2941         * reflection.c: Handle null PublicTokens properly. alloc mem for
2942         assembly names culture so we dont crash when freeing it.
2943         
2944 2004-05-06  Jackson Harper  <jackson@ximian.com>
2945
2946         * assembly.c: Check the usergac when loading with partial names.
2947         
2948 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
2949
2950         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
2951         does nothing for now (not required for Linux/Windows) but the class
2952         library can call it (and a newer or modified runtime could need it).
2953         * icall.c: Registred icall.
2954
2955 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2956
2957         * loader.c: prints a message on module loading error we set MONO_DEBUG
2958         environment variable.
2959
2960 2004-05-05  Jackson Harper  <jackson@ximian.com>
2961
2962         * appdomain.c: Handle PublicKeyToken=null properly.
2963         
2964 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
2965
2966         * environment.c|h: Added icall ves_icall_System_Environment_
2967         GetOSVersionString to get the current OS version as a string.
2968         * icall.c: Registred icall.
2969
2970 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
2971
2972         * object.c: in mono_object_get_virtual_method(), take into account that
2973         non-virtual methods don't have a slot in the vtable. Check needed when
2974         the object is a proxy.
2975
2976 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
2977
2978         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
2979         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
2980
2981         * object.c (mono_class_compute_gc_descriptor): Fix warning.
2982
2983         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
2984         passed when a valuetype is expected.
2985
2986         * object.c (mono_unhandled_exception): Only set the exit code if the
2987         exception happens in the main thread. Fixes thread5.exe.
2988
2989         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
2990         invalid names. Fixes #58047.
2991
2992 2004-05-03  Jackson Harper  <jackson@ximian.com>
2993
2994         * assembly.c: This line was committed accidently and is unneeded.
2995         
2996 2004-05-03  Jackson Harper  <jackson@ximian.com>
2997
2998         * icall.c: Add new icall for Assembly::LoadWithPartialName
2999         * assembly.c/.h: new function that probes the GAC to load partial
3000         assembly names by Paolo Molaro.
3001         
3002 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3003
3004         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3005         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3006         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3007         full type name.
3008
3009 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3010
3011         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3012         * reflection.c: fix bug when parsing a full type name and Version is not
3013         the last thing in the string.
3014
3015 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3016
3017         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3018         crashes when it is freed.
3019
3020 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3021
3022         * assembly.c: print the compat warning to stderr.
3023
3024 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3025
3026         * assembly.c (mono_assembly_load_references): Add a compatibility
3027         hack to run old applications that might be still referencing the
3028         3300-based assemblies, only do this for System.xxx.
3029
3030 2004-05-01  Jackson Harper  <jackson@ximian.com>
3031
3032         * appdomain.c: If the culture is neutral we set it to "".
3033         
3034 2004-04-29  Jackson Harper  <jackson@ximian.com>
3035
3036         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3037
3038 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3039  
3040         * string-icalls.c: added low overhead function for copying chars
3041         * icall.c: added needed icall for the above function
3042  
3043 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3044
3045         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3046         Environment.GetLogicalDrives.
3047
3048 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3049
3050         * rand.c: try and talk to egd or prngd
3051         for random bytes if opening devices fail.
3052
3053 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3054
3055         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3056         alignment for the type using the native alignment of its members 
3057         instead of using klass->min_align.
3058
3059         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3060
3061 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3062
3063         * file-io.c:
3064         * socket-io.c: added check for sys/aio.h.
3065
3066 2004-04-28  Dick Porter  <dick@ximian.com>
3067
3068         * threads.c: Don't abort a thread thats already aborting, when
3069         terminating everything.
3070
3071 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3072
3073         * icall.c: added 2 new async calls for Socket.
3074
3075         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3076         IO on *nix systems.
3077
3078         * threadpool.c: removed unused variable.
3079
3080 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3081
3082         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3083
3084 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3085
3086         * locales.c: put back string_invariant_tolower () and
3087         string_invariant_toupper ().
3088
3089 2004-04-26 David Waite <mass@akuma.org>
3090
3091         * file-io.h:
3092         * socket-io.h:
3093         * threads.h:
3094         * unicode.h: remove comma from end of enumeration declarations
3095
3096 2004-04-26 David Waite <mass@akuma.org>
3097
3098         * debug-mono-symfile.h:
3099         * decimal.c:
3100         * mono_debug.h:
3101         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3102
3103
3104 2004-04-26  Jackson Harper  <jackson@ximian.com>
3105
3106         * appdomain.c: Increment version number.
3107         
3108 2004-04-26  Jackson Harper  <jackson@ximian.com>
3109
3110         * appdomain.c: Set assembly references public token value when
3111         PublicKeyToken is specified, not the hash_value. Free public token
3112         values when free assembly name data. Previously the public key
3113         token was hex decoded, however we are using hex encoded public key
3114         tokens, so this is not neccasary.
3115         * assembly.c: Lookup assemblies in the gac if their public token
3116         value is set. Add function to allow enabling user gac
3117         lookups. Specify whether or not the assembly was loaded from the
3118         GAC. Compare full assembly names when checking the cache for
3119         assemblies (Temporarily disabled see comment in code). Remove
3120         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3121         specifies trace-loader they get extra info to stdout on the
3122         loading of assemblies.
3123         * image.h: Add a field for an assembly references public token
3124         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3125         whether an assembly has been loaded from the GAC.
3126         * image.c: Remove a corlib -> mscorlib name mapping.
3127         * loader.h: Add function to enable/disable the user gac.
3128         * mono-config.c: Check if the usergac is enabled in the config
3129         file.
3130         * icall.c: New icall to determine whether or not an assembly has
3131         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3132         * tabldefs.h: Add constant for assemblyref flag that specifies a
3133         full public key is used instead of a public token.
3134         * reflection.c: Remove mscorlib -> corlib mappings. Set
3135         PublicTokenValue instead of hash value. This value is a hex
3136         string so it does not need to be expanded.
3137
3138 2004-04-26  Martin Baulig  <martin@ximian.com>
3139
3140         * mono-debug-debugger.c (mono_debugger_initialize): Set
3141         `mono_debugger_initialized' before calling mono_debug_lock().
3142
3143 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3144
3145         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3146           InternalToUpper/InternalToLower.
3147         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3148           removed invariant culture shortcut.  This is now done in managed code.
3149         * locales.c: (string_invariant_toupper/tolower) removed.
3150
3151 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3152
3153         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3154         Added Poll internal call.
3155
3156         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3157         call for Poll. Select was too heavy for polling a single socket.
3158
3159         * threadpool.[ch]: added mono_threadpool_cleanup.
3160         * threads.c: use it. Don't use Thread_Abort on windows.
3161
3162 2004-04-23  Martin Baulig  <martin@ximian.com>
3163
3164         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3165
3166 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3167
3168         * icall.c: Registred new icalls for key pair protection and added an
3169         icall for Environment.GetFolderPath on Windows.
3170         * security.c|h: Added new icalls for key pair protection.
3171
3172 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3173
3174         * socket-io.c: don't display the non-supported family warning for known
3175         families. Now this is not displayed on windows when checking support
3176         for IPv4/IPv6.
3177
3178 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3179
3180         * class.c: don't display the layout warning for static fields.
3181
3182 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3183
3184         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3185         * locales.c, locales.h: Added new icalls for culture-specific
3186         Char.ToLower and Char.ToUpper.
3187
3188 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3189
3190         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3191         by David Waite.
3192
3193 2004-04-20  Martin Baulig  <martin@ximian.com>
3194
3195         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3196         of the type name before passing it to mono_reflection_type_from_name().
3197
3198 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3199
3200         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3201         encodings here. Fixes #56965.
3202
3203 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3204
3205         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3206         fix test on strstr result not that I can see anything that
3207         relies on the result.
3208
3209 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3210
3211         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3212         Fixes #57081.
3213
3214         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3215
3216         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3217         function to determine which marshalling to use for strings. Fixes
3218         #56965.
3219
3220         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3221
3222         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3223
3224 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3225
3226         * icall.c: #include mono-config.h
3227
3228 2004-04-15  Jackson Harper  <jackson@ximian.com>
3229
3230         * culture-info-tables.h: Fix date formats for en-US culture.
3231         
3232 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3233
3234         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3235         ThreadPool.SetMinThreads.
3236         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3237         ThreadPool.SetMinThreads.
3238
3239 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3240
3241         * mono-config.c: also load the .config file in the directory
3242         where the assembly was found.
3243
3244 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3245
3246         * assembly.c: load per-assembly config files.
3247         * icall.c: decrapified code to get the config dir and moved to
3248         mono-config.c.
3249         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3250         per-assembly config files. When doing a dll map lookup give precedence
3251         to the per-assembly data.
3252
3253 2004-04-14  Martin Baulig  <martin@ximian.com>
3254
3255         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3256         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3257         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3258
3259         * mono-debugger-debugger.c: While the debugger is locked, remember
3260         whether the symbol tables have changes and send one single
3261         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3262
3263 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3264
3265         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3266
3267         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3268         function.
3269
3270         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3271         account when marshalling string arrays. Fixes #56965.
3272
3273 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3274
3275         * icall.c: Add new icalls mapping for security.
3276         * security.c|h: Add internal calls for WindowsIdentity,
3277         WindowsImpersonationContext and WindowsPrincipal.
3278
3279 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3280
3281         * class.c: Added comment to ensure the System.MonoDummy class
3282         is removed when no longer necessary
3283
3284 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3285
3286         * appdomain.c: Pass arguments to the bootstraping exceptions to
3287         minimize JITed methods at boot
3288
3289         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3290         second string to be null.
3291
3292         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3293         Change the protocol to minimize the JIT methods at startup.  Now
3294         it Returns the internal codepage, if the value of "int_code_page"
3295         is 1 at entry, and we can not compute a suitable code page
3296         number, returns the code page as a string.
3297
3298 2004-04-13  Jackson Harper  <jackson@ximian.com>
3299
3300         * culture-info-tables.h: Fix number of decimal digits for all
3301         english locales.
3302
3303 2004-04-13  Jackson Harper  <jackson@ximian.com>
3304
3305         * icall.c: Clairfy out of sync error message. It is not always
3306         your corlib that is out of sync.
3307
3308 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3309
3310         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3311         properties when only the set accessor is overriden. Fixes #55874.
3312
3313 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3314
3315         * assembly.c (mono_assembly_load_references): Make this thread safe.
3316         Fixes #56327.
3317
3318 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3319
3320         * monosn.c: Add missing initialization calls.
3321
3322 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3323
3324         * locales.c:
3325         ves_icall_System_Globalization_CultureInfo_construct_number_format
3326         Fix g_assert so it compiles on fussier compilers re int/ptr
3327         mismatch
3328
3329 2004-04-08  Dick Porter  <dick@ximian.com>
3330
3331         * socket-io.h:
3332         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3333         53992.  Also rearrange the code so that the internal calls return
3334         an error value and exceptions are thrown from managed code.
3335
3336         * icall.c: Add type info to the socket icalls.
3337
3338 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3339
3340         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3341         owes me a beer.
3342
3343 2004-04-07  Martin Baulig  <martin@ximian.com>
3344
3345         * class.c (mono_class_from_generic_parameter): Don't default
3346         `klass->parent' to `mono_defaults.object_type'.
3347
3348 2004-04-07  Martin Baulig  <martin@ximian.com>
3349
3350         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3351         `param->pklass->reflection_info'.       
3352
3353 2004-04-07  Jackson Harper  <jackson@ximian.com>
3354
3355         * culture-info-tables.h: Fix date separator symbol.
3356         
3357 2004-04-07  Martin Baulig  <martin@ximian.com>
3358
3359         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3360         from System.Type to System.MonoType.
3361
3362 2004-04-07  Martin Baulig  <martin@ximian.com>
3363
3364         * reflection.h
3365         (MonoReflectionGenericParam): Added `has_reference_type' and
3366         `has_value_type' fields.
3367
3368         * reflection.c (mono_image_get_generic_param_info): Encode the
3369         correct flags if we have the `class' or `struct' constraint.
3370
3371 2004-04-07  Martin Baulig  <martin@ximian.com>
3372
3373         * reflection.h
3374         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3375
3376 2004-04-07  Jackson Harper  <jackson@ximian.com>
3377
3378         * appdomain.c: Revert extra patches, just wanted to bump the
3379         version number.
3380         
3381 2004-04-07  Jackson Harper  <jackson@ximian.com>
3382
3383         * Makefile.am: Add culture-info private headers.
3384         * icall.c: Add new icalls for contructing locales.
3385         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3386         * locales.h: Declare new culture info construction methods.
3387         * object.h: Add new fields used to avoid the CultureMap to
3388         MonoCultureInfo.
3389         * culture-info.h: Definition of structs used in the culture info
3390         tables.
3391         * culture-info-tables.h: Autogenerated tables that contain culture
3392         info data. This file was generated with the locale-builder tool.
3393         * appdomain.c: Incement corlib version number.
3394         
3395 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3396
3397         * appdomain.c: (mono_runtime_init) move mono_thread_init
3398         to before mono_object_new calls so critical sections
3399         are initialized before use.
3400
3401 2004-04-07  Martin Baulig  <martin@ximian.com>
3402
3403         * icall.c
3404         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3405         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3406         (ves_icall_MonoGenericParam_initialize): Removed.
3407         (monogenericparam_icalls): Removed.
3408         (generictypeparambuilder_icalls): Added new table for
3409         System.Reflection.Emit.GenericTypeParameterBuilder.
3410
3411         * reflection.c
3412         (mono_reflection_define_generic_parameter): Removed.
3413         (mono_reflection_initialize_generic_parameter): This is now called
3414         from GenericTypeParameterBuilder's .ctor.
3415
3416 2004-04-06  Martin Baulig  <martin@ximian.com>
3417
3418         * class.c (mono_class_init): Don't inflate nested classes in a
3419         generic instance.
3420         (mono_type_get_name_recurse): Include the generic arguments for
3421         generic instances and generic type declarations.
3422         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3423         (_mono_class_get_instantiation_name): Removed.
3424         (mono_class_create_generic): Always use `gklass->name' as our name.
3425
3426         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3427
3428         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3429         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3430         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3431         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3432         closed generic methods here.
3433
3434         * reflection.c
3435         (mono_reflection_generic_inst_get_nested_types): Removed.
3436         (inflate_mono_method): Copy the generic parameters from the
3437         MonoMethodHeader into out MonoGenericMethod.
3438
3439 2004-04-06  Martin Baulig  <martin@ximian.com>
3440
3441         * row-indexes.h
3442         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3443
3444         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3445
3446         * reflection.c (build_compressed_metadata): If we have any entries
3447         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3448         set the header version to 1.1.
3449
3450 2004-04-06  Martin Baulig  <martin@ximian.com>
3451
3452         * class.c (mono_class_init): If we're a generic instance,
3453         initialize our nested classes, too.
3454         (_mono_class_get_instantiation_name): Deal with the new `!%d'
3455         suffix. 
3456
3457 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3458
3459         * process.c: quote the argument passed to the shell on windows.
3460
3461 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
3462
3463         * threads.c (mono_alloc_special_static_data): Allow this to be
3464         called during startup.
3465
3466 2004-04-02  Martin Baulig  <martin@ximian.com>
3467
3468         * icall.c
3469         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
3470
3471 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
3472
3473         * icall.c: Fix build.
3474
3475 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
3476
3477         * Makefile.am: Added security.c|h.
3478         * icall.c: Added icall for get_UserName;
3479         * security.c: New file for security related icalls. Added function
3480         get_UserName for System.Environment (fix #56144).
3481         * security.h: New. Header file for security.c
3482
3483 2004-04-02  Dick Porter  <dick@ximian.com>
3484
3485         * icall.c: Deleted the icalls that were obsoleted some time ago
3486         by the ICU string code, and which were mixed into the icall
3487         rearranging.  Fixes bug 55969.
3488
3489         * string-icalls.h: 
3490         * string-icalls.c: Deleted the code that those icalls reference.
3491
3492 2004-04-01  Martin Baulig  <martin@ximian.com>
3493
3494         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
3495
3496         * class.c (mono_class_from_generic_parameter): Don't set 
3497         TYPE_ATTRIBUTE_INTERFACE.
3498         (my_mono_class_from_generic_parameter): Likewise.
3499
3500 2004-04-01  Martin Baulig  <martin@ximian.com>
3501
3502         * loader.c (find_method): Added an optional `MonoClass *ic'
3503         argument to search in a specific interface.
3504         (mono_get_method_constrained): New public function.
3505
3506 2004-04-01  Martin Baulig  <martin@ximian.com>
3507
3508         * reflection.c (mono_image_get_generic_field_token): Use the
3509         `handleref' cache here.
3510
3511 2004-04-01  Martin Baulig  <martin@ximian.com>
3512
3513         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
3514
3515         * reflection.c (create_generic_typespec): Use the `typespec' hash
3516         here, not the `typeref' one.    
3517
3518 2004-04-01  Martin Baulig  <martin@ximian.com>
3519
3520         * class.c (mono_class_inflate_generic_type): Moved the
3521         functionality into a new static inflate_generic_type() which
3522         returns NULL if it didn't do anything.  Only increment the
3523         `mono_stats.inflated_type_count' if we actually inflated
3524         something.
3525         (mono_class_get_full): Check the classes type to see whether we
3526         need to inflate it; also inflate MONO_TYPE_(M)VAR.
3527
3528 2004-04-01  Jackson Harper  <jackson@ximian.com>
3529
3530         * reflection.c: Set culture for assembly references.
3531         
3532 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
3533
3534         * reflection.[ch], icall.[ch], Fix support for pinning variables.
3535
3536 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3537
3538         * assembly.c:
3539         (do_mono_assembly_open): the critical section also covers
3540         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
3541
3542 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3543
3544         * threads.c:
3545         (mono_manage_threads): abort the background threads when finishing.
3546         Fixes bug #47232.
3547
3548 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3549
3550         * gc.c: only close the done_event handle if there was no timeout.
3551         C-ified comments.
3552
3553 2004-03-30  Martin Baulig  <martin@ximian.com>
3554
3555         * icall.c (icall_entries): It's called "System.Activator", not
3556         "System.Activation".    
3557
3558 2004-03-30  Martin Baulig  <martin@ximian.com>
3559
3560         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
3561         (mono_class_create_from_typespec): Likewise.
3562
3563 2004-03-30  Martin Baulig  <martin@ximian.com>
3564
3565         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
3566         `has_ctor_constraint' and `initialized'.
3567
3568 2004-03-30  Martin Baulig  <martin@ximian.com>
3569
3570         * reflection.c (encode_new_constraint): New static function to add
3571         the constructor constraint attribute to a type parameter.
3572         (encode_constraints): Call encode_new_constraint() if necessary.
3573
3574         * reflection.h
3575         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
3576
3577         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
3578         
3579 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
3580
3581         * reflection.c, icall.c: add support for pinning variables. 
3582
3583 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
3584
3585         * marshal.c (mono_marshal_get_managed_wrapper):
3586         init bool local with zero rather than null.
3587
3588 2004-03-29  Martin Baulig  <martin@ximian.com>
3589
3590         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
3591         the "official" behavior here.
3592         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
3593
3594 2004-03-29  Martin Baulig  <martin@ximian.com>
3595
3596         * icall.c: Reflect latest API changes.
3597
3598 2004-03-29  Martin Baulig  <martin@ximian.com>
3599
3600         * loader.c (mono_get_method_from_token): Also call
3601         mono_metadata_load_generic_params () for abstract and interface
3602         methods; replace the type arguments in the method signature with
3603         the ones which are loaded from the metadata.
3604
3605 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
3606
3607         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
3608         of the lock is not the current thread. MS.NET don't do it, in spite of
3609         what the documentation says. See bug #56157.
3610
3611 2004-03-28  Martin Baulig  <martin@ximian.com>
3612
3613         * class.c (mono_class_init): Don't call init_properties() and
3614         init_events() for generic instances; set `prop->parent' when
3615         inflating properties.
3616
3617         * reflection.c (mono_generic_inst_get_object): Call
3618         `mono_class_init (ginst->klass)'.
3619         (mono_type_get_object): Only create a MonoGenericInst if your
3620         generic type is a TypeBuilder.
3621         (do_mono_reflection_bind_generic_parameters): Only set
3622         `ginst->is_dynamic' if our generic type is a TypeBuilder.
3623
3624 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
3625
3626         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
3627         Fixes #56091.
3628
3629 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3630
3631         * icall.c: added Kill_internal icall.
3632         * process.[ch]: added Kill_internal icall.
3633
3634 2004-03-25  Martin Baulig  <martin@ximian.com>
3635
3636         * class.h (MonoStats): Added `generic_instance_count',
3637         `inflated_method_count', `inflated_type_count' and
3638         `generics_metadata_size'.       
3639
3640 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3641
3642         * reflection.c: no warnings now.
3643
3644 2004-03-25  Martin Baulig  <martin@ximian.com>
3645
3646         * class.c (mono_class_get_full): New public function; does a
3647         mono_class_get(), but also takes a `MonoGenericContext *'.
3648
3649         * loader.c (mono_field_from_memberref): Renamed to
3650         `field_from_memberref', made static and added `MonoGenericContext *'
3651         argument.
3652         (mono_field_from_token): Added `MonoGenericInst *' argument.
3653         (method_from_memberef): Likewise.
3654         (mono_get_method_from_token): Likewise.
3655         (mono_get_method_full): New public function; does a
3656         mono_get_method(), but also takes a `MonoGenericContext *'.
3657
3658         * verify.c (mono_method_verify): Get the method's generic context
3659         and pass it to mono_field_from_token(), mono_get_method_full() and
3660         mono_class_get_full().
3661
3662 2004-03-25  Martin Baulig  <martin@ximian.com>
3663
3664         * class.c (mono_class_inflate_generic_type): Take a
3665         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
3666         `MonoGenericMethod *'.
3667
3668 2004-03-25  Martin Baulig  <martin@ximian.com>
3669
3670         * loader.h (MonoMethodInflated): Store the MonoGenericContext
3671         instead of the MonoGenericMethod here.
3672
3673 2004-03-25  Martin Baulig  <martin@ximian.com>
3674
3675         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
3676         each time we create a new MonoGenericInst, we also create a new
3677         context which points back to us.
3678
3679         * class.c (inflate_method): Use `ginst->context' instead of
3680         creating a new context.
3681
3682         * loader.c (method_from_memberref): Use
3683         `klass->generic_inst->context' instead of creating a new context.
3684
3685 2004-03-25  Martin Baulig  <martin@ximian.com>
3686
3687         * class.h (MonoGenericContext): New struct.
3688         (MonoGenericMethod): Removed `generic_inst'.
3689
3690         * class.c (mono_class_inflate_generic_method): Take a
3691         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
3692
3693 2004-03-25  Martin Baulig  <martin@ximian.com>
3694
3695         * loader.h (MonoMethodInflated): New typedef.
3696
3697         * metadata.h (MonoMethodSignature): Removed `gen_method', make
3698         `generic_param_count' consume just 30 bits, added `is_inflated'
3699         and `has_type_parameters' flags (one bit each).
3700
3701         * class.c (mono_class_inflate_generic_method): Create a
3702         MonoMethodInflated instead of a MonoMethodNormal and set
3703         `is_inflated' in the method signature.
3704
3705         * class.h (MonoGenericMethod): Removed `generic_method'.
3706
3707 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
3708
3709         * image.c: Make sure the name of a MonoImage is always an absolute path.
3710           This fixes bug #54415.
3711
3712 2004-03-24  Martin Baulig  <martin@ximian.com>
3713
3714         * class.c (mono_class_setup_vtable): If we're a generic instance,
3715         use our generic type's vtable size.
3716
3717 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
3718
3719         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
3720         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
3721         problems.
3722
3723 2004-03-23  Martin Baulig  <martin@ximian.com>
3724
3725         * class.h (MonoDynamicGenericInst): Added `int count_events' and
3726         `MonoEvent *events'.
3727
3728         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
3729         (typebuilder_icalls): Added "get_event_info"; calls
3730         mono_reflection_event_builder_get_event_info(). 
3731
3732         * reflection.c (mono_reflection_generic_inst_initialize): Added
3733         `MonoArray *events'.
3734         (mono_reflection_event_builder_get_event_info): New function.
3735
3736 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
3737
3738         * object.h: add mono_type_initialization_init
3739
3740         * object.c (mono_runtime_class_init): 
3741         implement class constructor synchronization rules
3742         to cope with threading issues.  
3743         add mono_type_initialization_init
3744
3745         * appdomain.c (mono_runtime_init): call 
3746         mono_type_initialization_init
3747
3748         * class.h: removing initializing field from MonoVTable
3749
3750 2004-03-23  Martin Baulig  <martin@ximian.com>
3751
3752         * class.c (my_mono_class_from_generic_parameter): Use
3753         `param->name' if it's not NULL. 
3754
3755 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
3756
3757         * class.c: do not insert non-virtual methods in the vtable.
3758         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
3759         that means the method is non-virtual. This never would have
3760         happened before.
3761
3762 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
3763
3764         * profiler.c: Added lock for accessing coverage_hash.
3765
3766 2004-03-22  Martin Baulig  <martin@ximian.com>
3767
3768         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
3769         `method->method->signature->generic_param_count != 0' to make it
3770         work for interface methods.
3771
3772 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3773
3774         * process.c: quote the string passed to the shell using g_shell_quote.
3775
3776 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3777
3778         * threads.c:
3779         (mono_threads_manage): don't remove the finalizer thread and self
3780         from the threads hash table so that mono_thread_manage can be called
3781         more than once.
3782
3783 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3784
3785         * process.c: quote the arguments when UseShellExecute is true. Fixes
3786         bug #55790.
3787
3788 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3789
3790         * threads.c: set mono_thread_detach as a cleanup routine for every
3791         thread. This way it's always executed upon thread termination, either
3792         aborted or finished normally. No more xsp hangs!
3793
3794 2004-03-17  Martin Baulig  <martin@ximian.com>
3795
3796         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
3797         `int count_nested' and a `MonoType **nested'.
3798
3799         * reflection.c (mono_reflection_bind_generic_parameters): Moved
3800         most of the functionality into a new static
3801         do_mono_reflection_bind_generic_parameters() and don't take a
3802         `MonoType *nested_in' argument any more.  Don't compute nested
3803         types here.
3804         (mono_reflection_generic_inst_get_nested_types): New public method
3805         to get nested types.
3806
3807         * class.c (mono_class_create_generic): Set `klass->nested_in' if
3808         we're a nested class.
3809
3810         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
3811         mono_reflection_generic_inst_get_nested_types() to compute the
3812         nested types.
3813
3814 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
3815
3816         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
3817         descriptive error message under windows.
3818         
3819 2004-03-17  Martin Baulig  <martin@ximian.com>
3820
3821         * class.c (dup_type): Added `const MonoType *original' argument;
3822         copy the attrs from the original type.
3823
3824 2004-03-17  Martin Baulig  <martin@ximian.com>
3825
3826         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
3827         `m->generic_inst_cache' here.
3828
3829 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
3830
3831         * exception.h exception.c: Add stack_overflow_exception.
3832
3833 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3834
3835         * threadpool.c:
3836         (overlapped_callback): call SetEvent *after* invoking the callback.
3837         No need to call CloseHandle.
3838
3839 2004-03-16  Martin Baulig  <martin@ximian.com>
3840
3841         * reflection.c (mono_image_get_fieldref_token): Take a
3842         `MonoReflectionField *' instead of a `MonoClassField *' and a
3843         `MonoClass *'; store the `MonoReflectionField *' in the hash.
3844
3845 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3846
3847         * appdomain.c: don't add the culture to the filename we're looking for
3848         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
3849
3850 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3851
3852         * locales.c: don't ignore symbols when doing case insensitive compares.
3853         Thanks Dick! Fixes bug #54046.
3854
3855         * threads.c: surround 'threads' usage with enter/leave in
3856         mono_thread_manage.
3857
3858 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
3859
3860         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
3861         implicitly marshalled as [Out]. Fixes #55450.
3862
3863         (mono_marshal_get_runtime_invoke): Zero out the result if there is
3864         an exception.
3865
3866 2004-03-16  Martin Baulig  <martin@ximian.com>
3867
3868         * class.c (mono_class_from_generic_parameter): Use the actual
3869         parameter name. 
3870
3871 2004-03-16  Martin Baulig  <martin@ximian.com>
3872
3873         * reflection.c (type_get_signature_size): New static function.
3874         Compues the size of the type in a method signature.
3875         (method_get_signature_size): New static function; calls
3876         type_get_signature_size() to compute the actual size of the
3877         method's signature.
3878         (method_encode_signature): Use method_get_signature_size() to get
3879         the signature's size rather than using `nparams * 10'.
3880
3881 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3882
3883         * file-io.h: define here WapiOverlapped on windows. I don't want the
3884         regular OVERLAPPED one.
3885
3886         * file-io.c:
3887         * threadpool.c: somehow, BindIoCompletionCallback is not found.
3888         Disabling AIO on windows.
3889
3890 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3891
3892         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
3893         bug #55385.
3894
3895 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3896
3897         * appdomain.c: upgraded corlib version.
3898
3899         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
3900         and BeginWrite. Allow opening files for asynchrnous operations.
3901
3902         * file-io.h: new struct that maps FileStreamAsyncResult.
3903         * icall.c: added new icalls.
3904         * process.[ch]: support setting child process environment variables
3905         and use the SHELL or COMSPEC when UseShellExecute is true.
3906
3907         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
3908         callback for async. IO is here and also BindHandle.
3909
3910         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
3911         from here.
3912
3913 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
3914
3915         * reflection.c (create_custom_attr): Allow len == 0.
3916
3917         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
3918         computation on big-endian machines.
3919
3920 2004-03-13  Martin Baulig  <martin@ximian.com>
3921
3922         * class.h (MonoGenericInst): Added `int count_ifaces'.
3923
3924         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
3925         `ginst->count_ifaces' instead `klass->interface_count' since we
3926         may get called before the vtable is created.
3927
3928         * loader.c (mono_method_get_param_names): If we're a generic
3929         instance, return and don't initialize the class.
3930
3931         * reflection.c (mono_reflection_setup_generic_class): Don't call
3932         ensure_runtime_vtable().
3933         (mono_reflection_bind_generic_parameters): Set
3934         `ginst->count_ifaces'.
3935
3936 2004-03-11  Jackson Harper <jackson@ximian.com>
3937
3938         * icall.c:
3939         * unicode.c:
3940         * unicode.h: Remove unused System.Char icalls.
3941         
3942 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
3943
3944         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
3945         code when we P/Invoke the first library in Windows.Forms, instead
3946         of when we first open the assembly.
3947
3948         * assembly.c: Drop the lookup from here.
3949
3950 2004-03-10  Martin Baulig  <martin@ximian.com>
3951
3952         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
3953         class for properties, fields and events.  Finally fixes #54945.
3954
3955 2004-03-10  Martin Baulig  <martin@ximian.com>
3956
3957         * metadata.c (mono_metadata_class_equal): New static function;
3958         checks whether two generic instances or two generic parameters are
3959         equal.
3960         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
3961         compare classes.        
3962
3963 2004-03-10  Martin Baulig  <martin@ximian.com>
3964
3965         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
3966
3967         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
3968         argument and write it into the `reflection_info' field.
3969
3970         * icall.c
3971         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
3972         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
3973
3974 2004-03-09  Jackson Harper  <jackson@ximian.com>
3975
3976         * char-conversions.h: use 8 bits for numeric data its all we need
3977         * icall.c: numeric data is only 8 bits now.
3978
3979 2004-03-09  Martin Baulig  <martin@ximian.com>
3980
3981         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
3982
3983         * class.c (init_properties, init_events): Initialize the new
3984         `parent' field.
3985
3986         * reflection.c (typebuilder_setup_properties): Likewise.
3987         (typebuilder_setup_events): Likewise.
3988
3989         * reflection.h (MonoEventInfo): Replaced `parent with
3990         `declaring_type' and `reflected_type'.
3991
3992         * icall.c (ves_icall_get_property_info): Distinguish between
3993         declaring and reflected type.
3994         (ves_icall_get_event_info): Likewise.
3995
3996 2004-03-09  Martin Baulig  <martin@ximian.com>
3997
3998         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
3999         (ves_icall_Type_GetField): Correctly set field->klass.
4000
4001 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4002
4003         * loader.h: Fix warning.
4004
4005 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4006
4007         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4008         library routine if present.  Notice that it will still continue
4009         executing even if its missing, for those working on the Gtk#
4010         edition of Windows.Forms.
4011
4012         * assembly.c (do_mono_assembly_open): If loading the
4013         System.Windows.Forms call mono_loader_wini_init.
4014
4015 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4016
4017         * class.h: Added MonoRemoteClass struct.
4018         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4019         function for MonoStrings.
4020         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4021         Added internal call for getting the proxy type.
4022         * marshal.c: Get the type of transparent proxies from its remote_class.
4023         Added methods that generate the IL for type checks and casts:
4024         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4025         mono_marshal_get_proxy_cancast.
4026         * marshal.h: Declaration of the previous new methods.
4027         * object.c: Added new moethods for creating and updating MonoRemoteClass
4028         instances: mono_remote_class, mono_upgrade_remote_class, 
4029         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4030         * verify.c: FIx transparent_proxy_fields layout.
4031         * appdomain.c: Bump corlib version.
4032
4033 2004-03-04  Jackson Harper  <jackson@ximian.com>
4034
4035         * icall.c: Add icall to access char conversion tables.
4036         * char-conversions.h: Character conversion tables.
4037         * Makefile.am: Add char-conversions.h private header file.
4038         
4039 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4040
4041         * appdomain.c (unload_thread_main): Increase unloading timeout to
4042         10 sec as a temporary workaround for Nant problems.
4043
4044 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4045
4046         * gc.c: Add checks for GC_enable and GC_disable.
4047
4048         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4049         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4050         (bug #54988).
4051         
4052 2004-02-27  Martin Baulig  <martin@ximian.com>
4053
4054         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4055         `MonoReflectionType *' instead of a `MonoType *'.
4056
4057 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4058
4059         * gc.c (run_finalize): Avoid finalizing the object representing the
4060         finalizer thread.
4061         (finalizer_thread): Fix warning.
4062
4063 2004-02-25  Martin Baulig  <martin@ximian.com>
4064
4065         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4066         argument for nested types.
4067         (mono_class_create_generic): Added support for nested generictypes.
4068
4069         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4070         `GList *nested'.
4071
4072         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4073
4074         * reflection.c (method_encode_signature): Increase the minimum
4075         value of `size' from 10 to 11.
4076         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4077         and `MonoType **types' arguments instead of the `MonoArray
4078         *types'; added `MonoType *nested_in'.  Recursively instantiate
4079         nested classes. 
4080
4081 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4082
4083         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4084         stack_overflow_ex members which are used by exception handling.
4085
4086         * appdomain.c (mono_runtime_init): Initialize the new members.
4087
4088         * gc.c (mono_gc_enable): New helper function.
4089         * gc.c (mono_gc_disable): New helper function.
4090
4091 2004-02-23  Martin Baulig  <martin@ximian.com>
4092
4093         * icall.c: I must have been really stupid - make it actually work
4094         this time ;-)
4095
4096 2004-02-23  Martin Baulig  <martin@ximian.com>
4097
4098         * loader.c (method_from_memberref): Only inflate the method if
4099         it's in another klass.
4100
4101 2004-02-23  Martin Baulig  <martin@ximian.com>
4102
4103         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4104         (mono_class_init): If we're a generic instance and an interface,
4105         compute `class->interface_id'; also create `class->interfaces'
4106         here and inflate them.
4107
4108         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4109         `ginst->is_open'.
4110         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4111
4112         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4113
4114 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4115
4116         * reflection.c (method_encode_code): Improved the error message
4117         generated by the exception.
4118
4119 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4120
4121         * icall.c: Martin did not do what he said in the ChangeLog for
4122         2004-02-18, but put back the changes for properties and events.
4123         Commenting those changes out again and adding comment to bug #54518.
4124         
4125         * process.c: removed warning.
4126
4127 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4128
4129         * marshal.c (emit_struct_conv): Print an error message instead of
4130         asserting when a type does not have the StructLayout attribute.
4131
4132 2004-02-20  Martin Baulig  <martin@ximian.com>
4133
4134         * reflection.c (mono_type_get_object): Also use the cache for
4135         generic instances.
4136         (mono_reflection_bind_generic_parameters): Always compute
4137         `ginst->ifaces'.        
4138
4139 2004-02-20  Martin Baulig  <martin@ximian.com>
4140
4141         * class.h (MonoGenericMethod): Removed `klass'.
4142
4143         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4144         *klass' argument.
4145
4146 2004-02-20  Martin Baulig  <martin@ximian.com>
4147
4148         * reflection.c (method_encode_methodspec): Actually use the
4149         uninflated signature for the memberref.
4150
4151 2004-02-20  Martin Baulig  <martin@ximian.com>
4152
4153         * class.h (MonoGenericMethod): Removed `declaring'.
4154
4155         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4156         is NULL, compute it here.
4157
4158 2004-02-20  Martin Baulig  <martin@ximian.com>
4159
4160         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4161
4162         * metadata.c (mono_metadata_generic_inst_hash): New method.
4163         (mono_metadata_generic_inst_equal): New method.
4164
4165         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4166         `klass->image->generic_inst_cache' cache to avoid creating
4167         duplicate MonoGenericInst's.
4168
4169         * class.c (mono_class_inflate_generic_type): Use the cache.
4170
4171 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4172
4173         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4174
4175 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4176
4177         * icall.c: added Socket.WSAIoctl icall.
4178
4179         * socket-io.[ch]: implemented
4180         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4181
4182 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4183
4184         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4185
4186 2004-02-18  Urs C Muff  <umuff@quark.com>
4187
4188         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4189         this work on PPC and other big-endian architectures.
4190
4191         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4192         fields with an underscore to make sure they're only accessed by
4193         the read32() macro.
4194
4195 2004-02-18  Martin Baulig  <martin@ximian.com>
4196
4197         * icall.c: Put the klass->refclass changes back for methods and
4198         fields, but not for properties and events.  We're currently not
4199         distinguishing between DeclaringType and ReflectedType for
4200         properties and events, that's what caused the regressions.
4201
4202 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4203
4204         * object.c:
4205         (mono_async_result_new): the handle can be NULL.
4206
4207         * threadpool.c: Use an event instead of a semaphore, don't initialize
4208         it until needed. This saves quite a few semaphores from being created
4209         when using the threadpool.
4210
4211 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4212
4213         * object.c (mono_string_is_interned_lookup): Fix interning of long
4214         strings. Fixes #54473.
4215
4216         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4217
4218         * icall.c: Revert the klass->refclass changes since they introduce
4219         regressions (bug #54518).
4220
4221 2004-02-18  Martin Baulig  <martin@ximian.com>
4222
4223         * class.c (mono_class_init): If we're a generic instance and don't
4224         come from a TypeBuilder, inflate our members here.
4225         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4226         (mono_class_create_generic): New public method.
4227         (mono_class_initialize_generic): Removed.
4228         (get_instantiation_name): Renamed to
4229         _mono_class_get_instantiation_name() and made it public.
4230
4231 2004-02-18  Martin Baulig  <martin@ximian.com>
4232
4233         * class.c (mono_class_inflate_generic_type): Clear the new
4234         instance's `nginst->klass' when inflating a generic instance.
4235         (mono_class_is_subclass_of): Added (basic) support for generic
4236         instances.
4237
4238 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4239
4240         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4241         MonoMempool to hold compiled native code.
4242
4243 2004-02-17  Martin Baulig  <martin@ximian.com>
4244
4245         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4246         `properties'.
4247
4248         * reflection.c (mono_reflection_generic_inst_initialize): Added
4249         `MonoArray *properties' argument.
4250
4251         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4252
4253 2004-02-17  Martin Baulig  <martin@ximian.com>
4254
4255         * icall.c (ves_icall_Type_GetFields): Renamed to
4256         ves_icall_Type_GetFields_internal() and added a
4257         `MonoReflectionType *rtype' argument; pass it to
4258         mono_field_get_object() to set the field's "reflected" type.
4259         (ves_icall_Type_GetConstructors): Likewise.
4260         (ves_icall_Type_GetEvents): Likewise.
4261         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4262         argument; pass it to mono_method_get_object() to set the method's
4263         "reflected" type.       
4264
4265 2004-02-17  Martin Baulig  <martin@ximian.com>
4266
4267         * class.h (MonoDynamicGenericInst): New type.
4268         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4269
4270         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4271         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4272         (ves_icall_MonoGenericInst_GetFields): New interncall.
4273
4274         * class.c (mono_class_from_generic): Don't call
4275         mono_class_initialize_generic() if this is a dynamic instance;
4276         ie. it's being created from a TypeBuilder.
4277         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4278         `class->byval_arg.type'.
4279
4280         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4281         to `inflate_method' and made static.
4282         (mono_reflection_inflate_field): Removed.
4283         (mono_reflection_generic_inst_initialize): New public method.
4284
4285         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4286         `ctors' and `fields'; added `initialized'.
4287
4288 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4289
4290         * debug-helpers.c (mono_method_full_name): Fix output for empty
4291         namespaces.
4292
4293 2004-02-12  Martin Baulig  <martin@ximian.com>
4294
4295         * class.h (MonoClassField): Added `MonoType *generic_type'.
4296
4297         * reflection.c (mono_image_get_fieldref_token): Added support for
4298         instantiated generic types.
4299         (field_encode_inflated_field): Removed.
4300         (mono_image_get_inflated_field_token): Removed.
4301         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4302
4303         * reflection.h (MonoReflectionInflatedField): Removed.
4304
4305 2004-02-12  Martin Baulig  <martin@ximian.com>
4306
4307         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4308         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4309
4310         * reflection.c (mono_image_get_methodspec_token): Take a
4311         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4312         (mono_image_create_token): Check whether we have a
4313         `method->signature->gen_method' and call
4314         mono_image_get_methodspec_token() if appropriate.
4315         (inflated_method_get_object): Removed.
4316         (mono_reflection_bind_generic_method_parameters): Return a
4317         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4318         (mono_reflection_inflate_method_or_ctor): Likewise.
4319
4320         * reflection.h (MonoReflectionInflatedMethod): Removed.
4321
4322 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4323
4324         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4325         for custom valuetype marshalling.
4326
4327         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4328
4329 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4330
4331         * icall.c: fixed WSAGetLastError_internal name.
4332
4333 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4334
4335         * threads.c (mono_thread_attach): Allow this to be called multiple
4336         times for a thread.
4337         
4338         * threads.c (build_wait_tids): Do not wait for ourselves.
4339
4340         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4341         appdomain list is empty.
4342
4343         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4344         memory returned by mono_string_builder_to_utf16, since it points into
4345         managed memory. Thanks to Bernie Solomon for noticing this.
4346
4347         * icall.c: Add AppDomainSetup icalls.
4348
4349         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4350
4351         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4352         types.
4353
4354         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4355         custom attributes to the method_aux struct. Also fix array indexes etc.
4356
4357         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4358         
4359 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4360
4361         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4362         (both static and runtime) and reduce startup time.
4363
4364 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4365
4366         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4367         AsAny marshalling conversion instead of crashing.
4368
4369         * marshal.c: Fix warnings.
4370
4371 2004-02-09  Martin Baulig  <martin@ximian.com>
4372
4373         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4374
4375         * reflection.h (MonoReflectionInflatedMethod): Removed the
4376         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4377
4378         * reflection.c (method_encode_methodspec): Removed the `method'
4379         argument; we get it from `gmethod->declaring'.
4380         (inflated_method_get_object): Removed the `declaring' argument.
4381
4382 2004-02-09  Martin Baulig  <martin@ximian.com>
4383
4384         * class.h (MonoGenericMethod): New type.
4385         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4386         `generic_method'.
4387
4388         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4389         a `MonoGenericMethod *gen_method' one.
4390
4391         * class.c (mono_class_inflate_generic_type): Take an additional
4392         `MonoGenericMethod * argument.  This is only non-NULL if we're
4393         inflating types for a generic method.   
4394         (mono_class_inflate_generic_signature): Renamed to
4395         inflate_generic_signature() and made static; take a
4396         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4397         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4398         instead of a `MonoGenericInst *' one.
4399         (mono_class_inflate_generic_method): Likewise.
4400
4401         * reflection.c (encode_generic_method_sig): Take a
4402         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4403         (method_encode_methodspec): Likewise.
4404         (inflated_method_get_object): Likewise. 
4405
4406         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4407         field with a `MonoGenericMethod *gmethod' one.  
4408
4409 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4410
4411         * class.h (mono_class_has_parent): add parens to expansion
4412         so you can ! this.
4413
4414 2004-02-08  Martin Baulig  <martin@ximian.com>
4415
4416         * image.h (MonoImage): Removed `generics_cache'.
4417
4418         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4419         instead of a `MonoType *' argument; removed the `inflate_methods'
4420         argument.  Don't inflate methods here.
4421
4422         * loader.c (find_method): If it's a generic instance, call
4423         mono_class_init() on the `sclass->generic_inst->generic_type'.
4424
4425         * metadata.c (mono_type_size): Make this work on uninitialized
4426         generic instances; call it on the `ginst->generic_type's class.
4427
4428         * reflection.c (mono_reflection_bind_generic_parameters): Call
4429         mono_class_from_generic() to create the `ginst->klass'.
4430
4431 2004-02-08  Martin Baulig  <martin@ximian.com>
4432
4433         * class.h (MonoClass): Changed type of `generic_inst' from
4434         `MonoType *' to `MonoGenericInst *'.
4435
4436 2004-02-08  Martin Baulig  <martin@ximian.com>
4437
4438         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4439         mono_type_get_object(), this is now creating a `MonoGenericInst'
4440         for MONO_TYPE_GENERICINST.
4441         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4442         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4443
4444         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4445         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4446         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4447         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4448         and reflected type.
4449
4450         * reflection.h (MonoReflectionInflatedMethod): Removed
4451         `declaring_type' and `reflected_type'.
4452
4453 2004-02-08  Martin Baulig  <martin@ximian.com>
4454
4455         * class.h (MonoGenericInst): Added `MonoType *parent' and
4456         `MonoType **ifaces'.
4457
4458         * reflection.h (MonoReflectionGenericInst): Removed `klass',
4459         `parent' and `interfaces'.
4460
4461         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4462         `MonoType *' argument and return a `MonoType *'.
4463
4464         * icall.c
4465         (ves_icall_MonoGenericInst_GetParentType): New interncall.
4466         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
4467
4468 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4469
4470         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
4471         valuetype marshalling.
4472
4473 2004-02-06  Martin Baulig  <martin@ximian.com>
4474
4475         * class.c
4476         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
4477         (my_mono_class_from_generic_parameter): Likewise.
4478
4479 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4480
4481         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
4482         contents of the symbol files lazily.
4483
4484         * object.h (MonoThread): Add 'name' and 'name_len' fields.
4485
4486         * threads.h threads.c icall.c: New icalls for getting and setting the
4487         threads name.
4488
4489 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
4490
4491         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
4492         Raise an exception when the domain is not found.
4493
4494 2004-02-03  Martin Baulig  <martin@ximian.com>
4495
4496         * reflection.c (mono_image_get_methodspec_token): Use the
4497         uninflated signature; fixes gen-33.
4498
4499 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
4500
4501         * gc.c threads.c: Make the finalizer thread a normal managed thread so
4502         the finalizer code can use thread functionality.
4503
4504         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
4505         the finalizer thread.
4506
4507         * threads.c: Make some functions more robust.
4508
4509         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
4510
4511         * metadata.h: Add new marshalling conventions.
4512
4513         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
4514         stringbuilder marshalling. Fixes #53700.
4515
4516         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
4517
4518         * reflection.c (mono_image_get_type_info): Save declarative security
4519         info.
4520
4521         * reflection.c (mono_image_get_field_info): Handle uninitialized 
4522         unmanaged fields as well.
4523
4524         * appdomain.c: Bump corlib version.
4525
4526 2004-02-01  Martin Baulig  <martin@ximian.com>
4527
4528         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
4529         method type arguments.  
4530
4531 2004-01-30  Duncan Mak  <duncan@ximian.com>
4532
4533         * marshal.h: Add prototype for
4534         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
4535         and
4536         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
4537         fix the build.
4538
4539 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
4540
4541         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
4542         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
4543
4544 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4545
4546         * marshal.c (mono_marshal_get_native_wrapper): Add support for
4547         custom marshalling of valuetypes.
4548
4549         * marshal.c: Fix some warnings.
4550
4551 2004-01-29  Martin Baulig  <martin@ximian.com>
4552
4553         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
4554         for generic method parameters.
4555
4556         * reflection.c (method_encode_methodspec): Write the uninflated
4557         signature into the methodspec table.
4558         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
4559         is always the uninflated method.
4560         (reflection_methodbuilder_to_mono_method): Copy the generic
4561         parameters from the MethodBuilder into `header->gen_params'.
4562
4563 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4564
4565         * class.c (mono_class_from_generic_parameter): Fix warning.
4566
4567 2004-01-27  Martin Baulig  <martin@ximian.com>
4568
4569         * class.c (mono_class_from_generic_parameter): Don't create
4570         `klass->methods' here.  
4571
4572 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
4573
4574         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
4575         extension since it does not work with libraries named lib<FOO>.dll.so.
4576
4577 2004-01-25  Martin Baulig  <martin@ximian.com>
4578
4579         * class.c (mono_class_inflate_generic_type): Added support for
4580         MONO_TYPE_GENERICINST.
4581
4582         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
4583         inflate methods on open constructed types.      
4584
4585 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4586
4587         * object.c: fire ProcessExit event in the root AppDomain after running
4588         Main. Fixes bug #53299.
4589
4590 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
4591
4592         * socket-io.c: include the new socket-wrappers.h header.
4593         Use the wrappers instead of the unix socket functions to make the code
4594         more clear.
4595
4596 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
4597
4598         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
4599
4600         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4601         Fixes #22532.
4602
4603 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
4604
4605         * reflection.c (mono_image_create_pefile): Handle the case when the
4606         entry point is not a MethodBuilder.
4607
4608         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4609         field to ReflectionMethod since it is not allways a builder.
4610
4611         * reflection.c (type_get_fully_qualified_name): New helper function to
4612         return the fully qualified name of a type.
4613
4614         * reflection.c (encode_marshal_blob): Always emit the fully qualified
4615         type name for custom marshallers.
4616
4617         * reflection.c (mono_marshal_spec_from_builder): Ditto.
4618
4619         * class.c (mono_class_setup_vtable): If a parent class already 
4620         implements an interface, use the implementing methods from that class.
4621         Fixes #53148.
4622
4623 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4624
4625         * threadpool.c: just return instead of ExitThread to allow for thread
4626         clean up earlier.
4627
4628 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
4629
4630         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
4631         when closing resource modules.
4632
4633         * reflection.c (mono_image_create_pefile): Handle the case when the
4634         entry point is not a MethodBuilder.
4635
4636         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4637         field to ReflectionMethod since it is not allways a builder.
4638
4639 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
4640
4641         * marshal.c (mono_marshal_get_managed_wrapper): 
4642         mono_marshal_alloc takes native int so CONV_I
4643         the arg for 64bits.
4644
4645 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
4646
4647         * reflection.c (fixup_cattrs): New function to fixup the methoddef
4648         tokens in the cattr table. Fixes #53108.
4649
4650 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4651
4652         * loader.c: don't trim ".dll" before looking up in the config file.
4653         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
4654
4655 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
4656
4657         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
4658         Return the module which contains the resource as well.
4659         (ves_icall_System_Reflection_Module_Close): New icall.
4660
4661         * appdomain.c: Bump corlib version number.
4662
4663         * image.c (mono_image_addref): New public function.
4664
4665         * assembly.c: Call mono_image_addref.
4666
4667         * reflection.c (mono_module_get_object): Increase reference count of 
4668         the image.
4669
4670         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4671         Fixes #22532.
4672
4673         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
4674         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
4675         proper exceptions on DllImport problems.
4676
4677 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
4678
4679         * class.c, metadata.c: eliminate CSIZE macro.
4680
4681 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
4682
4683         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
4684         * object.h: Added async_callback field in MonoAsyncResult.
4685         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
4686         * verify.c: Added async_callback in MonoAsyncResult layout.
4687
4688 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
4689
4690         * reflection.c (mono_reflection_get_custom_attrs): Add support
4691         for Modules.
4692
4693 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
4694
4695         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
4696         marshalling.
4697         (mono_marshal_method_from_wrapper): Add null pointer check.
4698
4699 2004-01-16  Martin Baulig  <martin@ximian.com>
4700
4701         * debug-mono-symfile.h: Set version number to 36 and reflect
4702         latest symbol writer changes.
4703
4704 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
4705
4706         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
4707         multi-dimensional arrays.
4708         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
4709         (mono_class_from_mono_type): Use bounded_array_class_get.
4710         
4711         * class.c (mono_bounded_array_class_get): New function which takes
4712         a 'bounded' bool argument to distinguish vectors from one dimensional
4713         arrays.
4714
4715         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
4716         bounded_array_class_get if the array has bounds.
4717
4718         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
4719         Search modules loaded using AssemblyBuilder:AddModule as well.
4720
4721 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4722
4723         * appdomain.c: increased corlib version.
4724         * filewatcher.c: removed g_print.
4725         * icall.c:
4726         (get_property_info): only allocate what is actually requested.
4727         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
4728
4729 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4730
4731         * Makefile.am: added filewatcher.[ch]
4732         * filewatcher.[ch]: FileSystemWatcher runtime support.
4733         * icall.c: added new FSW icalls.
4734
4735 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
4736
4737         * string-icalls.c: fix stringbuilder regression as suggested by
4738         Iain McCoy <iain@mccoy.id.au>.
4739
4740 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
4741
4742         * process.c (process_read_stringtable_block): Recognize '007f' as
4743         a language neutral stringtable block.
4744
4745 2004-01-12  Patrik Torstensson
4746
4747         * object.h (MonoStringBuilder) : Changed layout to support our
4748         new stringbuilder class.
4749         * marshal.c: Change marshalling to support the new layout of 
4750         string builder.
4751         * appdomain.c: increased version number because new layout of
4752         string builder.
4753
4754 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
4755
4756         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
4757         assembly name as an string instead of an AssemblyName, since it is
4758         easier to extract info from it.
4759
4760         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
4761         the culture subdirectories too. Fixes #52231.
4762
4763 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4764
4765         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
4766         It takes 2 new parameters with an optional name for the method to look
4767         for and case ignoring info.
4768
4769         * threadpool.c: removed unused variable.
4770
4771 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4772
4773         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
4774         It takes 2 new parameters with an optional name for the property to look
4775         for and case ignoring info.
4776         Fixes bug #52753.
4777
4778 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
4779
4780         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
4781         Fix #52451.
4782
4783 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4784
4785         * appdomain.c:
4786         * assembly.c: escape the uri before passing it to g_filename_from_uri.
4787         Fixes bug #52630.
4788
4789 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
4790
4791         * reflection.c: Add support for more than one unmanaged resource.
4792
4793         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
4794         in field->def_value, as done in all other cases.
4795
4796         * reflection.c (mono_reflection_get_custom_attrs): Add support for
4797         TypeBuilders.
4798
4799         * reflection.c (mono_reflection_create_runtime_class): Remove 
4800         errorneous assignment to klass->element_class, since it is already
4801         done in mono_reflection_setup_internal_class.
4802
4803 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4804
4805         * gc.c: added missing LeaveCriticalSection.
4806         * icall.c: indented a couple of lines.
4807         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
4808         if we call EndInvoke inside a callback. Fixes bug #52601.
4809
4810 2004-01-07  Martin Baulig  <martin@ximian.com>
4811
4812         * mono-debug-debugger.h
4813         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
4814
4815 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
4816
4817         * appdomain.c: Use messages in NotImplementedException.
4818
4819         * exception.c (mono_get_exception_not_implemented): Now this takes
4820         a message argument.
4821
4822         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
4823         exception instead of g_asserting an aborting when something is not
4824         implemented.
4825
4826         Add some inline docs.
4827
4828 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
4829
4830         * reflection.h: Update after changes to object layout.
4831
4832         * reflection.c: Implement saving of unmanaged aka win32 resources.
4833
4834         * appdomain.c: Bump version number.
4835
4836         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
4837         Handle missing domains gracefully.
4838
4839 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
4840
4841         * file-io.c : On Windows, there are much more invalid_path_chars.
4842
4843 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
4844
4845         * class.h, object.c: prepare for GetType () speedup.
4846
4847 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
4848
4849         * profiler.c: workaround for --profile null reference exception on
4850           cygwin. Patch by Patrik Torstensson.
4851
4852 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
4853
4854         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
4855         make work for unaligned access.
4856
4857 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
4858
4859         * class.c: small cleanup (class->fields [i] -> field).
4860         * image.c: check address of metadata is valid.
4861
4862 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
4863
4864         * assembly.h assembly.c (mono_assembly_loaded): New public function to
4865         search the list of loaded assemblies.
4866
4867         * reflection.c (mono_reflection_type_from_name): Use 
4868         mono_assembly_loaded instead of mono_image_loaded.
4869
4870         * reflection.c: Fix warnings.
4871
4872 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
4873
4874         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
4875         is dynamic. This is needed since an assembly can contain both dynamic and
4876         non-dynamic images.
4877
4878         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
4879         assembly->dynamic.
4880
4881         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
4882
4883         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
4884         to store modules loaded using AddModule.
4885
4886         * reflection.c (mono_image_fill_file_table): Generalize this so it works
4887         on Modules.
4888
4889         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
4890
4891         * reflection.c (mono_image_fill_export_table_from_module): New function to
4892         fill out the EXPORTEDTYPES table from a module.
4893
4894         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
4895         into a separate function. Also handle loaded non-dynamic modules.
4896
4897         * reflection.c (mono_image_basic_init): Fix memory allocation.
4898
4899         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4900
4901         * assembly.c (mono_assembly_load_references): Make this public.
4902
4903 2003-12-19  Martin Baulig  <martin@ximian.com>
4904
4905         * class.c (mono_class_initialize_generic): Made this static, take
4906         a `MonoGenericInst *' instead of a `MonoClass *'.
4907         (mono_class_from_generic): Call mono_class_initialize_generic()
4908         unless we're already initialized or being called from
4909         do_mono_metadata_parse_generic_inst().
4910
4911         * class.h (MonoGenericInst): Added `initialized' and
4912         `init_pending' flags.
4913
4914         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
4915         `mono_class_init (gklass)' or mono_class_initialize_generic()
4916         here; set `generic_inst->init_pending' while parsing the
4917         `type_argv'.
4918
4919 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
4920
4921         * locales.c: include string.h for memxxx prototypes
4922
4923 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
4924
4925         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
4926         constructor when accessing literal fields.
4927
4928 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
4929
4930         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4931
4932         * reflection.c (assembly_add_resource_manifest): New function to fill
4933         the MANIFESTRESOURCE table.
4934
4935         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
4936
4937         * reflection.h: Update to changes in class layout.
4938
4939         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
4940         Reenable call to mono_runtime_is_shutting_down ().
4941
4942         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
4943         determine if the runtime is shutting down.
4944
4945 2003-12-16  Jackson Harper <jackson@ximian.com>
4946
4947         * icall.c: comment out call to mono_runtime_is_shutting_down to
4948         fix build.
4949         
4950 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
4951
4952         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
4953         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
4954
4955 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
4956
4957         * reflection.c: move definition of swap_with_size
4958         to before its first call
4959
4960 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
4961
4962         * appdomain.c (mono_runtime_is_shutting_down): New public function.
4963
4964         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
4965         icall.
4966
4967         * object.c: Fix warnings.
4968
4969         * icall.c (ves_icall_Type_Get...): Only consider inherited static
4970         members if FlattenHierarchy is set.
4971
4972         * reflection.c (mono_image_add_decl_security): New function to emit
4973         declarative security.
4974
4975         * reflection.h reflection.c: Add support for declarative security.
4976
4977         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
4978         
4979 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
4980
4981         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
4982         
4983         * appdomain.c verify.c: Moved corlib version checking into its own
4984         function in appdomain.c since it needs to create vtables etc.
4985
4986 2003-12-13  Patrik Torstensson <p@rxc.se>
4987
4988         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
4989         instead of unwrapped server.
4990
4991 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
4992
4993         * verify.c (check_corlib): Fix field index.
4994
4995 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
4996
4997         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
4998         GetGacPath icall.
4999
5000 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5001
5002         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5003         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5004         cope with sizeof(size_t) != sizeof(guint32).
5005
5006 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5007
5008         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5009         in case of failure.
5010
5011 2003-12-10  Mark Crichton <crichton@gimp.org>
5012
5013         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5014         in managed code.
5015
5016         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5017
5018 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5019
5020         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5021         marked as deleted.
5022
5023 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5024
5025         * verify.c (check_corlib): Handle the case when the version field is 
5026         initialized by a static constructor.
5027
5028 2003-12-08  Patrik Torstensson  <p@rxc.se>
5029
5030     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5031
5032 2003-12-08  Martin Baulig  <martin@ximian.com>
5033
5034         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5035         a MonoReflectionGenericParameter, also take the parameter index
5036         and name as arguments.
5037         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5038         (ves_icall_MonoGenericParam_initialize): New interncall.
5039         (ves_icall_Type_make_byref_type): New interncall.
5040
5041         * reflection.h (MonoReflectionGenericParam): Derive from
5042         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5043         `index' fields.
5044
5045         * reflection.c (mono_reflection_define_generic_parameter): Create
5046         and return a new MonoReflectionGenericParam; don't initialize the
5047         constraints here.
5048         (mono_reflection_initialize_generic_parameter): New public method;
5049         initializes the constraints and creates the `param->pklass'.
5050
5051 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5052
5053         * reflection.h reflection.c: Use the new fields 'num_types', 
5054         'num_fields' and 'num_methods' to track the number of types etc.
5055
5056         * verify.c (check_corlib): Check corlib version number.
5057
5058 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5059
5060         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5061         function works on all methods.
5062
5063 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5064
5065         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5066         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5067         the custom_type_info flag of the transparent proxy.
5068         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5069         objects that supports IRemotingTypeInfo.
5070         * object.h: Added custom_type_info field in transparent proxy.
5071
5072 2003-12-06  Martin Baulig  <martin@ximian.com>
5073
5074         * class.c (mono_class_create_from_generic): Removed.
5075         (mono_class_from_generic): Check `ginst->klass' before doing
5076         anything else.  This is important to fully support "recursive"
5077         generic types.
5078
5079         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5080         empty `generic_inst->klass' before doing anything else.
5081
5082 2003-12-06  Dick Porter  <dick@ximian.com>
5083
5084         * verify.c: 
5085         * object.h:
5086         * icall.c:
5087         * locales.c: Use C structs to access class fields.  Don't do a
5088         conversion between MonoString and UChar because both are
5089         platform-endian UTF-16.  Compare now takes startindex and count
5090         parameters.  Add a char overload for IndexOf.  Speed up the
5091         invariant string IndexOf.
5092
5093 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5094
5095         * Makefile.am (monosn_LDADD): Fix parallel build.
5096
5097 2003-12-04  Martin Baulig  <martin@ximian.com>
5098
5099         * icall.c
5100         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5101         (ves_icall_Type_make_array_type): New interncall.       
5102
5103 2003-12-04  Martin Baulig  <martin@ximian.com>
5104
5105         * locales.c: also change it in the !HAVE_ICU case.
5106
5107 2003-12-04  Dick Porter  <dick@ximian.com>
5108
5109         * icall.c:
5110         * locales.c: construct_compareinfo is now in CompareInfo, not
5111         CultureInfo.
5112
5113 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5114
5115         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5116         image->files array.
5117
5118         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5119         table as well.
5120
5121         * assembly.c (mono_assembly_load_references): Only load references
5122         once.
5123
5124         * class.c (mono_class_from_name): Avoid linear search of the 
5125         EXPORTEDTYPE table.
5126
5127         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5128
5129 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5130
5131         * image.h (MonoImage): Add 'field_cache' field.
5132
5133         * loader.c (mono_field_from_token): Cache field lookups.
5134         
5135         * reflection.c (mono_module_get_object): Fix name property.
5136
5137         * icall.c (ves_icall_get_enum_info): Update after changes to 
5138         mono_metadata_get_constant_index ().
5139
5140         * icall.c: Get rid of get_type_info icall, use a separate icall for
5141         each type property to avoid needless memory allocations. Fixes #51514.
5142
5143         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5144         to avoid needless binary searches.
5145
5146         * class.c (class_compute_field_layout): Move the initialization of
5147         field->def_value to mono_class_vtable ().
5148
5149         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5150         non-corlib types.
5151
5152         * object.c (mono_object_allocate): Make it inline.
5153
5154         * object.c (mono_object_allocate_spec): Make it inline.
5155         
5156 2003-12-02  Dick Porter  <dick@ximian.com>
5157
5158         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5159         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5160
5161 2003-12-01  Dick Porter  <dick@ximian.com>
5162
5163         * threads.c: Fix signature and call in CreateMutex and
5164         CreateEvent.
5165
5166 2003-12-01  Dick Porter  <dick@ximian.com>
5167
5168         * icall.c: 
5169         * locales.c: Implement string compares and searching
5170
5171         * object.h: Add extra Thread field
5172
5173 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5174
5175         * reflection.c (fixup_method): Add support for MonoCMethod.
5176
5177 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5178
5179         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5180
5181         * reflection.c (assembly_name_to_aname): Allow extra characters in
5182         assembly names. Fixes #51468.
5183
5184 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5185
5186         * exception.c (mono_exception_from_name_domain): New helper function.
5187
5188         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5189         exception object in the correct domain.
5190
5191         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5192         formatting + make a copy a the input data.
5193
5194         * loader.c (mono_get_method_from_token): Methods which contain
5195         native code do not have entries in the ImplMap.
5196
5197         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5198         Thanks to Gonzalo for spotting this.
5199         
5200         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5201         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5202
5203         * assembly.h (mono_assembly_load_from): Split the second part of 
5204         assembly loading into a new public function.
5205
5206         * exception.h (mono_get_exception_bad_image_format): New function.
5207
5208 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5209
5210         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5211         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5212         
5213         * icall.c: Add new icall for creating dynamic methods.
5214
5215         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5216
5217         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5218
5219         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5220         create a dynamic method.
5221
5222         * reflection.c (resolve_object): New helper function.
5223
5224         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5225         which manipulate it so they can also work on dynamic methods.
5226
5227         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5228         creating the MonoReflectionMethodAux structure if it is not needed.
5229         
5230         * reflection.h verify.c: Update after changes to object layout.
5231
5232         * reflection.c (method_builder_encode_signature): Fix compilation on
5233         gcc 2.95.x.
5234
5235 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5236
5237         * appdomain.h: Added support for context static fields. Added static_data
5238           field to MonoAppContext and renamed thread_static_fields to a more
5239           generic special_static_fields in MonoAppDomain, since it can now contain
5240           context static fields.
5241         * domain.c: Updated hashtable name.
5242         * object.c: Replaced field_is_thread_static() for a more generic
5243           field_is_special_static() which also checks for context static attribute.
5244           In mono_class_vtable(), added support for static context fields.
5245         * threads.c: Changed methods that manage thread static fields to more
5246           generic methods so they can be reused both for thread and context static
5247           data.
5248         * threads.h: Declared some new methods.
5249
5250 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5251
5252         * reflection.h: Update after changes to the managed types.
5253
5254         * reflection.c (encode_custom_modifiers): New helper function.
5255
5256         * reflection.c (method_encode_signature): Emit custom modifiers.
5257
5258         * reflection.c (field_encode_signature): Emit custom modifiers.
5259
5260 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5261
5262         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5263
5264         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5265         implementation.
5266
5267         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5268         icall.
5269
5270         * object.c (mono_field_get_value_object): New function.
5271
5272         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5273         specific.
5274
5275 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5276
5277         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5278         return a preallocated out-of-memory exception instance.
5279
5280         * object.c (out_of_memory): Use the new function.
5281
5282         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5283         flag is before the custom modifiers. Fixes #49802.
5284
5285 2003-11-16  Martin Baulig  <martin@ximian.com>
5286
5287         * class.c (mono_class_is_open_constructed_type): Implemented the
5288         MONO_TYPE_GENERICINST case.
5289
5290 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5291
5292         * assembly.c (mono_assembly_fill_assembly_name): New function to
5293         fill out the MonoAssemblyName structure.
5294         (mono_assembly_open): Use the new function.
5295
5296         * icall.c (fill_reflection_assembly_name): New helper function.
5297
5298         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5299         new function.
5300
5301         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5302
5303 2003-11-15  Martin Baulig  <martin@ximian.com>
5304
5305         * class.c (mono_class_is_open_constructed_type): New public
5306         function; checks whether a type is an open constructed type,
5307         ie. whether it still contains type parameters.
5308         (mono_class_inflate_generic_type): If we're a type parameter and
5309         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5310         type.
5311
5312         * class.h (MonoGenericInst): Added `guint32 is_open'.
5313
5314         * loader.c (method_from_methodspec): Check whether we're an open
5315         or closed constructed type and set `ginst->is_open'.
5316
5317         * reflection.c (mono_reflection_bind_generic_parameters): Check
5318         whether we're an open or closed constructed type and set
5319         `ginst->is_open'.
5320         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5321         from open constructed types.
5322
5323 2003-11-15  Martin Baulig  <martin@ximian.com>
5324
5325         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5326         a generic instance (instead of a generic type declaration) with
5327         unbound generic parameters, bind them to our actual types.
5328
5329 2003-11-14  Martin Baulig  <martin@ximian.com>
5330
5331         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5332
5333         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5334         an interface type, populate `res->interfaces' with instantiated
5335         versions of all the interfaces we inherit.
5336
5337 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5338
5339         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5340         when MONO_PATH is set but doesn't contain the install dir.
5341
5342 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5343
5344         * icall.c:
5345         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5346         it's also implemented in base classes. Fixes bug #50927.
5347
5348 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5349
5350         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5351         if this method is called from a finalizer. Fixes #50913.
5352
5353 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5354
5355         * threads.c: Implement VolatileRead/VolatileWrite
5356
5357         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5358
5359 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5360
5361         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5362         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5363         2.95.3.
5364
5365         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5366         from Peter Ross (pro@missioncriticalit.com).
5367         
5368 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5369
5370         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5371
5372 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5373
5374         * assembly.c (mono_assembly_load_references): Disable check because it
5375         triggers on older corlibs which lots of people have.
5376
5377 2003-11-12  Jackson Harper  <jackson@ximian.com>
5378
5379         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5380         load corlib.dll if mscorlib.dll is not found.
5381         * assembly.h: Remove corlib name define.
5382         * class.c:
5383         * domain.c:
5384         * image.c: Change corlib name to mscorlib.
5385         
5386 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5387
5388         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5389
5390 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5391
5392         * appdomain.h: Added loader_optimization here to sync with the C#
5393         code, and add disallow_binding_redirects field.
5394
5395 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5396
5397         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5398
5399         * reflection.c (mono_image_build_metadata): Fix crash on modules
5400         with no types.
5401
5402         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5403
5404         * icall.c (ves_icall_get_method_info): Return callingConvention as
5405         well.
5406
5407         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5408         namespaces from the EXPORTEDTYPE table as well.
5409
5410         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5411         from all modules inside the assembly.
5412         
5413 2003-11-11  Martin Baulig  <martin@ximian.com>
5414
5415         * reflection.c (mono_reflection_bind_generic_parameters): Make
5416         this work for interfaces.
5417
5418 2003-11-11  Martin Baulig  <martin@ximian.com>
5419
5420         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5421
5422 2003-11-11  Martin Baulig  <martin@ximian.com>
5423
5424         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5425         "MonoInflatedMethod" and "MonoInflatedCtor".
5426
5427 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5428
5429         * reflection.c (resolution_scope_from_image): Use the assembly table
5430         from the manifest module, since other modules don't have it.
5431
5432         * debug-helpers.c (mono_type_full_name): New helper function.
5433
5434         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5435
5436         * image.c (mono_image_load_file_for_image): New public function which
5437         is a replacement for the load_file_for_image in class.c.
5438
5439         * assembly.c (mono_assembly_load_module): A wrapper for the function
5440         above which does assembly association and reference loading too.
5441
5442         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5443
5444 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5445
5446         * appdomain.c: not all of the attributes for the full assembly name
5447         are required and the order doesn't matter. Fixes bug #50787.
5448
5449 2003-11-10  Dick Porter  <dick@ximian.com>
5450
5451         * locales.c: Use platform-endian UTF16
5452
5453 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5454
5455         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5456         
5457 2003-11-10  Martin Baulig  <martin@ximian.com>
5458
5459         * metadata.c
5460         (mono_metadata_load_generic_params): Make this actually work.
5461
5462         * reflection.c (mono_reflection_bind_generic_parameters): If our
5463         parent is a generic instance, pass all the `types' to it, no
5464         matter whether it has the same number of type parameters or not.
5465
5466 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5467
5468         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5469
5470         * assembly.c (mono_assembly_load_references): Move the image<->assembly
5471         assignment code to this function so it gets called recursively for all
5472         modules.
5473
5474         * image.c (load_modules): Remove the assembly assignment since it is
5475         now done by mono_assembly_load_references.
5476         
5477         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5478         Add 'module' argument.
5479         (mono_module_get_types): New helper function.
5480         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
5481
5482 2003-11-08  Martin Baulig  <martin@ximian.com>
5483
5484         * class.c (mono_class_inflate_generic_method): Interface method
5485         don't have a header.
5486
5487         * reflection.c (mono_image_get_methodspec_token): Take an
5488         additional `MonoGenericInst *' argument instead of reading it from
5489         the header; this is necessary to support interfaces.
5490         (mono_image_create_token): Pass the `MonoGenericInst *' from the
5491         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
5492         (inflated_method_get_object): Take an additional `MonoGenericInst *'
5493         argument.
5494
5495         * reflection.h (MonoReflectionInflatedMethod): Added
5496         `MonoGenericInst *ginst'.
5497
5498 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
5499
5500         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
5501
5502 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
5503
5504         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
5505
5506 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
5507
5508         * reflection.c 
5509         (reflection_methodbuilder_from_method_builder):
5510         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
5511         initialize a ReflectionMethodBuilder structure.
5512         (mono_image_get_methodbuilder_token):
5513         (mono_image_get_ctorbuilder_token): New functions to emit memberref
5514         tokens which point to types in another module inside the same assembly.
5515
5516         * reflection.c: Use the new helper functions.
5517         
5518         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
5519
5520         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
5521         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
5522
5523         * reflection.c (resolution_scope_from_image): Emit a moduleref if
5524         neccesary.
5525
5526         * reflection.c (mono_image_build_metadata): Emit metadata only for the
5527         current module. Emit the manifest only for the main module.
5528
5529         * reflection.c (mono_image_create_token): Add assertion when a 
5530         memberref needs to be created.
5531
5532         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
5533
5534         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
5535         larger buffer for the custom attribute blob. Fixes #50637.
5536         
5537 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5538
5539         * threadpool.c: notify listener on async processing handles after
5540         invoking the async callback. Thanks to Zoltan.
5541
5542 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5543
5544         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
5545         avoid code duplication.
5546
5547         * reflection.h (MonoDynamicImage): New type which is currently unused,
5548         but will be used through the ref.emit code in place of 
5549         MonoDynamicAssembly.
5550
5551         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5552         object layout.
5553
5554         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
5555         a MonoDynamicImage instead of just a MonoImage.
5556         
5557         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
5558         icalls to ModuleBuilder but keep their semantics, so they will work
5559         with moduleb->assemblyb. This will change later.
5560         
5561 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5562
5563         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5564         object layout.
5565
5566         * reflection.c (mono_image_build_metadata): Avoid creation of a default
5567         main module, since it is now done by the managed code.
5568
5569 2003-11-03  Martin Baulig  <martin@ximian.com>
5570
5571         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
5572         `ginst->klass' here.
5573         (method_encode_methodspec): Don't use the `ginst->generic_method's
5574         klass if it's a generic instance, use `ginst->klass' in this case.
5575
5576 2003-11-03  Martin Baulig  <martin@ximian.com>
5577
5578         * reflection.c (mono_image_get_generic_method_param_info):
5579         Removed, use mono_image_get_generic_param_info() instead.
5580         (mono_image_get_type_info): Write the GenericParam table before
5581         the Method table.  This is neccessary because in the GenericParam
5582         table, type parameters of the class (ie. '!0' etc.) must come
5583         before the ones from its generic methods (ie. '!!0' etc).
5584
5585 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5586
5587         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
5588
5589 2003-11-02  Martin Baulig  <martin@ximian.com>
5590
5591         * reflection.c (create_generic_typespec): Take a
5592         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
5593         the generic parameters from it.
5594
5595 2003-11-02  Martin Baulig  <martin@ximian.com>
5596
5597         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
5598         instead of a `MonoClassField *' since we just need the type.
5599         (create_generic_typespec): New static function.  Creates a
5600         TypeSpec token for a generic type declaration.
5601         (mono_image_get_generic_field_token): New static function.
5602         (mono_image_create_token): If we're a FieldBuilder in a generic
5603         type declaration, call mono_image_get_generic_field_token() to get
5604         the token.
5605
5606 2003-11-02  Martin Baulig  <martin@ximian.com>
5607
5608         * reflection.h
5609         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
5610         `MonoReflectionGenericInst *declaring_type' and
5611         `MonoReflectionGenericInst *reflected_type' fields.
5612
5613         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
5614         `MonoReflectionGenericInst *declaring_type' and a
5615         `MonoReflectionGenericInst *reflected_type' argument instead of a
5616         single `MonoReflectionGenericInst *type' one.  Set
5617         `res->declaring_type' and `res->reflected_type' from them.
5618         (mono_reflection_inflate_field): Likewise.      
5619
5620 2003-11-02  Martin Baulig  <martin@ximian.com>
5621
5622         * class.c (mono_class_setup_vtable): Don't store generic methods
5623         in the vtable.  
5624
5625 2003-11-02  Martin Baulig  <martin@ximian.com>
5626
5627         * reflection.h (MonoReflectionGenericInst): Added
5628         `MonoReflectionType *declaring_type'.
5629
5630         * reflection.c (mono_reflection_bind_generic_parameters): Use
5631         `if (tb->parent)' instead of `klass->parent'.
5632
5633 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
5634
5635         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
5636         with an empty ASSEMBLY table.
5637
5638         * reflection.c (mono_image_build_metadata): Avoid using the same loop
5639         variable in the inner and outer loops.
5640
5641 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
5642
5643         * metadata.h (mono_metadata_make_token): Put parentheses around macro
5644         argument.
5645
5646         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
5647         
5648         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
5649         icalls. Instead, do everything in managed code. This is needed since
5650         it is hard to restore the original domain etc. in unmanaged code in the
5651         presence of undeniable exceptions.
5652
5653         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
5654         New icalls to push and pop appdomain refs.
5655
5656 2003-10-31  Martin Baulig  <martin@ximian.com>
5657
5658         * class.c (inflate_generic_type): Renamed to
5659         mono_class_inflate_generic_type() and made it public.
5660
5661         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
5662         New interncall.
5663
5664         * loader.c (mono_field_from_memberref): Also set the retklass for
5665         typespecs.
5666
5667         * fielder.c (mono_image_get_inflated_field_token): New static
5668         method; creates a metadata token for an inflated field.
5669         (mono_image_create_token, fixup_method): Added support for
5670         "MonoInflatedField".
5671         (fieldbuilder_to_mono_class_field): New static function.
5672         (mono_reflection_inflate_field): New public function.
5673
5674         * reflection.h
5675         (MonoReflectionGenericInst): Added `MonoArray *fields'.
5676         (MonoReflectionInflatedField): New typedef.     
5677
5678 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
5679
5680         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
5681         for Solaris and other platforms without s6_addr16
5682
5683 2003-10-30  Martin Baulig  <martin@ximian.com>
5684
5685         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
5686         argument instead of two.
5687         (mono_class_inflate_generic_signature): Likewise.
5688         (inflate_generic_header): Likewise.
5689         (mono_class_inflate_generic_method): Likewise.  In addition, if
5690         `ginst->klass' is set, it becomes the new `method->klass'.
5691
5692         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
5693         field.
5694
5695         * reflection.c (encode_generic_method_sig): Write a 0xa as the
5696         first byte. [FIXME]
5697         (method_encode_methodspec): If we have generic parameters, create
5698         a MethodSpec instead of a MethodRef.
5699         (fixup_method): Added support for "MonoInflatedMethod" and
5700         "MonoInflatedCtor".
5701         (mono_image_create_token): Added support for "MonoInflatedMethod"
5702         and "MonoInflatedCtor".
5703         (inflated_method_get_object): New static function; returns a
5704         managed "System.Reflection.MonoInflatedMethod" object.
5705         (mono_reflection_bind_generic_method_parameters): Return a
5706         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
5707         (mono_reflection_inflate_method_or_ctor): Likewise.
5708         (mono_image_get_generic_method_param_info): Initialize unused
5709         fields to zero.
5710         (mono_image_get_generic_param_info): Likewise.
5711
5712         * reflection.h (MonoReflectionInflatedMethod): New public
5713         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
5714         "S.R.MonoInflatedCtor" classes.
5715
5716         * loader.c (method_from_memberref): If we're a TypeSpec and it
5717         resolves to a generic instance, inflate the method.
5718
5719 2003-10-28  Dick Porter  <dick@ximian.com>
5720
5721         * object.c (mono_runtime_run_main): Convert command-line arguments
5722         into utf8, falling back to the user's locale encoding to do so.
5723
5724 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
5725
5726         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
5727         at this time.
5728
5729         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
5730
5731         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
5732         up icalls at method definition time. Partially fixes #33569.
5733
5734 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
5735
5736         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
5737         marshalling of arrays. Fixes #50116.
5738
5739         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
5740
5741         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
5742         points to a vtable in the dying appdomain.
5743
5744         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
5745         listeners into unmanaged code inside the lock.
5746
5747         * object.c (mono_class_vtable): Turn off typed allocation in non-root
5748         domains and add some comments.
5749
5750 2003-10-25  Martin Baulig  <martin@ximian.com>
5751
5752         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
5753
5754         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
5755
5756         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
5757         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
5758         currently parsing.  Create the generic class and store it in
5759         `generic_inst->klass' before parsing the type arguments.  This is
5760         required to support "recursive" definitions; see mcs/tests/gen-23.cs
5761         for an example.
5762         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
5763         to support recursive typespec entries.
5764
5765         * class.c (mono_class_setup_parent): If our parent is a generic
5766         instance, we may get called before it has its name set.
5767         (mono_class_from_generic): Splitted into
5768         mono_class_create_from_generic() and mono_class_initialize_generic().
5769
5770 2003-10-25  Martin Baulig  <martin@ximian.com>
5771
5772         * icall.c (ves_icall_Type_BindGenericParameters): Return a
5773         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
5774         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
5775         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
5776
5777         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
5778         (create_typespec): Likewise.
5779         (mono_reflection_bind_generic_parameters): Return a
5780         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
5781         (mono_reflection_inflate_method_or_ctor): New public function.
5782
5783         * reflection.h (MonoReflectionGenericInst): New typedef.        
5784
5785 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
5786
5787         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
5788         inside the domain lock. Fixes #49993.
5789         
5790         * object.c (mono_class_vtable): When typed allocation is used, 
5791         allocate vtables in the GC heap instead of in the mempool, since the
5792         vtables contain GC descriptors which are used by the collector even
5793         after the domain owning the mempool is unloaded.
5794
5795         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
5796
5797         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
5798         reflect what it does. Also invalidate mempools instead of freeing
5799         them if a define is set.
5800
5801         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
5802         of the appdomain.
5803         
5804         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
5805         hold the finalizable objects in this domain.
5806
5807         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
5808         appdomain.
5809
5810         * appdomain.c (mono_domain_set): New function to set the current
5811         appdomain, but only if it is not being unloaded.
5812
5813         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
5814         appdomain which is being unloaded.
5815         
5816         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
5817         unloading of the root appdomain.
5818
5819         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
5820         icall to execute a method in another appdomain. Intended as a 
5821         replacement for InternalSetDomain, which can confuse the code 
5822         generation in the JIT.
5823
5824         * appdomain.c (mono_domain_is_unloading): New function to determine
5825         whenever an appdomain is unloading.
5826
5827         * appdomain.c (mono_domain_unload): New function to correctly unload
5828         an appdomain.
5829
5830         * assembly.c (mono_assembly_load_references): Check that an assembly
5831         does not references itself.
5832
5833         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
5834         domain manually, it asks the finalizer thread to do it, then waits for
5835         the result. Also added a timeout.
5836
5837         * icall.c: Register the new icalls.
5838
5839         * threads.h threads.c: Export the mono_gc_stop_world and 
5840         mono_gc_start_world functions.
5841         
5842         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
5843         function to fill out the mempool with 0x2a.
5844
5845 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
5846
5847         * reflection.h (MonoReflectionMethodAux): New structure to store
5848         information which is rarely used, thus is not in the MonoMethod
5849         structure.
5850
5851         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
5852         store the aux info.
5853
5854         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
5855         and marshalling info into the aux structure.
5856
5857         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
5858         from the aux structure.
5859
5860         * loader.c (mono_method_get_param_names): Retrieve the param names from
5861         the aux structure.
5862         
5863 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
5864
5865         * exception.h exception.c: Add AppDomainUnloadedException && fix 
5866         warning.
5867
5868 2003-10-21  Dick Porter  <dick@ximian.com>
5869
5870         * socket-io.c
5871         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
5872         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
5873
5874 2003-10-21  Martin Baulig  <martin@ximian.com>
5875
5876         * reflection.c (mono_reflection_bind_generic_parameters):
5877         `klass->parent' is NULL for interfaces.
5878
5879 2003-10-21  Martin Baulig  <martin@ximian.com>
5880
5881         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5882
5883 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
5884
5885         * exception.c (mono_exception_from_name_msg): New helper function for
5886         creating exceptions and initializing their message field.
5887
5888         * exception.c: Simplify functions using the new helper.
5889
5890         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
5891         New function.
5892
5893         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
5894         mono_raise_exception, since otherwise gcc doesn't generate the function
5895         epilog for raise_exception, confusing the stack unwinding in the JIT.
5896         Fixes #45043.
5897
5898         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
5899         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
5900         Fixes #49499.
5901
5902 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5903
5904         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
5905         utf8.
5906
5907 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
5908
5909         * icall.c: Removed GetUninitializedObject method because
5910           AllocateUninitializedClassInstance does the same.
5911
5912 2003-10-18  Martin Baulig  <martin@ximian.com>
5913
5914         * class.c (inflate_generic_signature): Renamed to
5915         mono_class_inflate_generic_signature() and made it public.
5916         (my_mono_class_from_generic_parameter): New static function; if we
5917         don't already have the generic parameter's MonoClass, create a
5918         very simple one which is just used internally in the runtime and
5919         not passed back to managed code.
5920
5921         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
5922
5923         * metadata.h (MonoMethodSignature): Moved the
5924         `MonoGenericParam *gen_params' to the MonoMethodHeader.
5925         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
5926
5927         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
5928         ves_icall_MonoMethod_GetGenericArguments(); this is now an
5929         interncall on the MonoMethod class, not on MethodInfo.
5930         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
5931         calling mono_reflection_bind_generic_method_parameters() directly.
5932
5933         * loader.c (mono_method_get_signature): If this is a MethodSpec;
5934         return the already computed `method->signature'.
5935         (method_from_methodspec): New static function to load a method
5936         from a MethodSpec entry.
5937         (mono_get_method_from_token): Call the new method_from_methodspec()
5938         for MethodSpec tokens.  
5939         (mono_get_method_from_token): If we're a generic method, load the
5940         type parameters.
5941
5942         * reflection.c (mono_image_get_memberref_token): Allow
5943         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
5944         table.
5945         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
5946         (mono_image_create_token): First check whether it's a generic
5947         method (so we'd need to create a MethodSpec), then do the other
5948         two alternatives.
5949         (mono_reflection_bind_generic_method_parameters): Return a
5950         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
5951         called directly from the interncall.
5952
5953 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
5954
5955         * reflection.c (load_public_key): Move loading of the public key
5956         into managed code.
5957
5958         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
5959
5960         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
5961         fields.
5962
5963         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
5964         culture, hash_alg and public_key. Fixes #49555.
5965
5966 2003-10-17  Martin Baulig  <martin@ximian.com>
5967
5968         * class.h (MonoGenericInst): Moved this declaration here and added
5969         `MonoMethod *generic_method'.
5970
5971         * icall.c
5972         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
5973         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
5974
5975         * metadata.c (mono_metadata_type_equal): Two types of
5976         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
5977         index; ie. don't compare the address of the `MonoGenericParam'
5978         structure.
5979         (mono_metadata_load_generic_params): Removed the `MonoMethod
5980         *method' argument.
5981
5982         * metadata.h (MonoGenericInst): Moved declaration to class.h.
5983         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
5984
5985         * reflection.c (method_encode_signature): Encode the number of
5986         generic parameters.
5987         (encode_generic_method_sig): New static function.
5988         (method_encode_methodspec): New static function; creates an entry
5989         in the MethodSpec table for a generic method.
5990         (mono_image_get_methodspec_token): New static function.
5991         (mono_image_create_token): Call mono_image_get_methodspec_token()
5992         for generic methods.
5993         (mono_reflection_bind_generic_method_parameters): New public
5994         function.  Instantiates a generic method.
5995
5996 2003-10-16  Martin Baulig  <martin@ximian.com>
5997
5998         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
5999         *gen_params' here from MonoMethodHeader.
6000
6001         * metadata.c (mono_metadata_parse_method_signature): If we have
6002         generic parameters, initialize `method->gen_params' and then set
6003         the correct `type->data.generic_param' in all the parameters.
6004
6005 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6006
6007         * threads.c (mono_threads_get_default_stacksize): New function to 
6008         return the default stacksize.
6009
6010         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6011         termination of the finalizer thread, since the previous method had
6012         race conditions. Fixes #49628.
6013
6014         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6015         as for the other managed threads.
6016
6017 2003-10-16  Martin Baulig  <martin@ximian.com>
6018
6019         * class.c (inflate_generic_signature): Copy `generic_param_count'
6020         and `gen_params'.
6021
6022         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6023         New interncall.
6024
6025         * metadata.c (mono_metadata_parse_method_signature): Actually set
6026         the `method->generic_param_count' here.
6027         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6028
6029 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6030
6031         * object.h: Add a new field to TypedRef to simplify the implementation
6032         of the REFANY opcodes in the JIT.
6033
6034         * icall.c: Make use of the new field.
6035
6036         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6037         dynamically.
6038
6039 2003-10-15  Martin Baulig  <martin@ximian.com>
6040
6041         * class.c (mono_class_from_gen_param): Renamed to
6042         mono_class_from_generic_parameter() and moved most of the
6043         functionality from mono_reflection_define_generic_parameter()
6044         here; ie. we create a "real" class here.
6045         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6046         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6047         previously been called.
6048
6049         * class.h (MonoGenericParam): Moved the declaration of this struct
6050         here from metadata.h and added `MonoMethod *method'.
6051
6052         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6053         interncall.
6054
6055         * loader.c (mono_get_method_from_token): If we have any generic
6056         parameters, call mono_metadata_load_generic_params() to read them
6057         from the MONO_TABLE_GENERICPAR.
6058
6059         * metadata.c (mono_metadata_load_generic_params): Added
6060         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6061
6062         * metadata.h (MonoMethodSignature): Replaced
6063         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6064         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6065
6066         * reflection.c (mono_reflection_define_generic_parameter): Moved
6067         most of the functionality into the new
6068         mono_class_from_generic_parameter(); set the `method' field if
6069         we're a method parameter.       
6070
6071 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6072
6073         * marshal.c (emit_struct_conv): if native size is 0
6074         emit no code.
6075
6076 2003-10-14  Martin Baulig  <martin@ximian.com>
6077
6078         * icall.c: The generics API has changed in the spec since it was
6079         added to System.Type; these modifications make it match the spec
6080         again.
6081         (ves_icall_Type_GetGenericParameters): Renamed to
6082         `ves_icall_Type_GetGenericArguments'.
6083         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6084         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6085         `ves_icall_MonoType_get_HasGenericArguments'.
6086         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6087         `ves_icall_MonoType_get_IsGenericParameter'.
6088         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6089         this is no interncall anymore.
6090         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6091         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6092
6093 2003-10-14  Martin Baulig  <martin@ximian.com>
6094
6095         * reflection.c (mono_reflection_bind_generic_parameters): Also
6096         inflate generic methods if we're reading the class from IL.
6097
6098 2003-10-13  Martin Baulig  <martin@ximian.com>
6099
6100         * reflection.c (mono_reflection_define_generic_parameter): This
6101         method isn't called directly from the icall anymore; take a
6102         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6103         method generic parameters.
6104         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6105         (method_builder_encode_signature): Encode generic parameters.
6106         (mono_image_get_method_info): Write generic params to the
6107         MONO_TABLE_GENERICPARAM table.
6108
6109         * reflection.h (MonoReflectionMethodBuilder): Added
6110         `MonoArray *generic_params'.
6111
6112         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6113
6114         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6115         wrapper for mono_reflection_define_generic_parameter().
6116         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6117
6118 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6119
6120         * marshal.h: Add missing function to fix build.
6121
6122         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6123         the SetLastError pinvoke attribute.
6124
6125         * marshal.c (mono_marshal_set_last_error): New helper function called
6126         by the generated code.
6127         
6128         * marshal.c (mono_mb_emit_branch): New helper function.
6129
6130         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6131
6132         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6133         classes as parameters and return values of delegates. Fixes #29256. 
6134
6135 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6136
6137         * locales.c: use gint32 in non HAVE_ICU case
6138
6139 2003-10-11  Martin Baulig  <martin@ximian.com>
6140
6141         * mono-debug.c (mono_debug_add_method): Added a workaround for
6142         bug #48591.
6143
6144 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6145
6146         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6147         delegates passed to native code must use the STDCALL calling 
6148         convention. Fixes #35987.
6149
6150 2003-10-10  Martin Baulig  <martin@ximian.com>
6151
6152         * class.c (inflate_generic_type): If we're inflating for a generic
6153         type instance (and not for a generic method), return
6154         MONO_TYPE_MVAR unchanged.
6155
6156 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6157
6158         * string-icalls.c: Join ignores null strings in the source array.
6159         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6160         * threads.c: GetAvailableTheads is slightly more accurate.
6161
6162 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6163
6164         * threads.h threads.c : add mono_threads_set_default_stacksize
6165         and pass default to CreateThread calls.
6166
6167 2003-10-09  Dick Porter  <dick@ximian.com>
6168
6169         * icall.c:
6170         * locales.h:
6171         * locales.c: Internal calls for constructing CultureInfo and
6172         related objects from libicu (if its available.)
6173
6174 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6175
6176         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6177
6178 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6179
6180         * threadpool.c: added an argument to async_invoke_thread that is the
6181         item to process, pass the MonoAsyncResult to the thread start function
6182         when creating a new thread. This way we don't need to acquire any lock
6183         when we're creating a new thread. Readded a semaphore for faster
6184         response times (instead of that Sleep i added).
6185
6186 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6187
6188         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6189         get daylight change dates better on Windows, fix handling
6190         of platforms without tm_gmtoff.
6191
6192 2003-10-06  Martin Baulig  <martin@ximian.com>
6193
6194         * class.c (inflate_generic_method): Renamed to
6195         mono_class_inflate_generic_method() and made public.
6196         (mono_class_init): Don't inflate the generic methods here.
6197         (mono_class_from_generic): Added `gboolean inflate_methods'
6198         argument.  Inflate the methods here.
6199
6200         * loader.c (mono_method_get_param_names): Ignore instances of
6201         generic types for the moment.
6202
6203         * reflection.c (fixup_method): Added support for inflated methods.
6204         (mono_image_create_token): Use mono_image_get_methodref_token()
6205         for inflated methods.
6206         (mono_custom_attrs_from_param): Ignore instances of generic types
6207         for the moment.
6208         (mono_reflection_bind_generic_parameters): New public function.
6209         Moved all the functionality from
6210         ves_icall_Type_BindGenericParameters() here and added support for
6211         dynamic types.
6212         (mono_reflection_define_generic_parameter): Initialize
6213         `klass->methods' here.
6214
6215         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6216         functionality into mono_reflection_define_generic_parameter().
6217         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6218         TypeBuilder, return that TypeBuilder.
6219
6220 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6221
6222         * appdomain.c: removed mono_delegate_semaphore.
6223
6224         * threadpool.c:
6225         (mono_thread_pool_add): moved hash table creation inside and the thread 
6226         creation outside of the critical region.
6227         (mono_thread_pool_finish): removed obsolete code.
6228         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6229         continue or exit the thread depending on the queue.
6230
6231 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6232
6233         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6234         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6235         handle more bool marshalling options
6236
6237 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6238
6239         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6240         arrays of structs. Also add a more descriptive error message when
6241         a structure member is marshalled as LPArray.
6242
6243 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6244
6245         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6246         marshalling arrays of complex types. Fixes #29098. Also remove an
6247         usused and incomplete function.
6248
6249 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6250
6251         * gc.c: report heap_size - free_bytes as total memory allocated
6252         (bug#49362).
6253
6254 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6255
6256         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6257         fix timezone handling problems on Windows.
6258         
6259         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6260         asserts when the year is outside the range handled by ms the functions.
6261
6262         * class.c (setup_interface_offsets): If the class is an interface,
6263         fill out its interface_offsets slot.
6264
6265 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6266
6267         * threadpool.c: mark threadpool threads as background.
6268
6269 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6270
6271         * decimal.c - define DECINLINE to nothing if not using GCC
6272
6273 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6274
6275         * assembly.c: More refcount fixes.
6276
6277 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6278
6279         * string-icalls.c: if we're not trimming, return the same string.
6280         When not splitting, don't create a new string.
6281
6282 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6283
6284         * image.c:
6285         (mono_image_open): increment the ref_count inside the critical section.
6286
6287 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6288
6289         * image.c (mono_image_open): Fix reference counting bug.
6290
6291 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6292
6293         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6294         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6295         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6296         mono_lookup_pinvoke_call throws.        
6297
6298 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6299
6300         * reflection.c (mono_reflection_parse_type): Fix #49114.
6301
6302         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6303         temporary workaround for cygwin header problem.
6304
6305         * object.c (mono_object_isinst): Synchronize this with the code
6306         generated by the JIT for casts.
6307
6308 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6309
6310         * reflection.c (encode_type): Fix #38332.
6311
6312 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6313
6314         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6315         the original method from the wrapper method.
6316
6317 2003-09-25  Martin Baulig  <martin@ximian.com>
6318
6319         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6320         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6321         (ves_icall_Type_get_IsGenericInstance): New interncall.
6322
6323 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6324
6325         * object.c: fix cast warning in big endian code.
6326
6327 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6328
6329         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6330         
6331 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6332
6333         * assembly.c: don't call check_env from mono_assembly_load. It's
6334         already done once in mono_assemblies_init and may cause headaches when
6335         multiple threads are loading assemblies.
6336
6337 2003-09-19  Martin Baulig  <martin@ximian.com>
6338
6339         * reflection.c (mono_reflection_define_generic_parameter): Don't
6340         allocate `klass->methods', set `klass->flags' to
6341         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6342
6343 2003-09-18  Martin Baulig  <martin@ximian.com>
6344
6345         * class.c (mono_class_init): Don't create `class->methods' if it's
6346         already initialized.
6347
6348         * metadata.c (mono_metadata_load_generic_params): Make this
6349         actually work.
6350
6351         * reflection.c (mono_reflection_define_generic_parameter): Set
6352         parent class and interfaces from the constraints.
6353
6354         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6355         to keep this struct in sync with the declaration in TypeBuilder.cs.
6356
6357 2003-09-17  Martin Baulig  <martin@ximian.com>
6358
6359         * metadata.h (MonoType): Replaced the data's `int type_param'
6360         field with `MonoGenericParam *generic_param'.
6361         (MonoGenericParam): Added `MonoClass *klass'.
6362
6363         * class.c (mono_class_from_gen_param): Removed the
6364         `MonoImage *image' and `int type_num' arguments.
6365
6366         * metadata.c (mono_metadata_parse_generic_param): New static
6367         method; creates a MonoGenericParam which just contains the index.
6368         (do_mono_metadata_parse_type): Call
6369         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6370         MONO_TYPE_MVAR.
6371
6372         * reflection.c (mono_image_typedef_or_ref): Generic type
6373         parameters may be in the same assembly, but never use a typedef
6374         for them.
6375         (mono_reflection_define_generic_parameter): We're now creating a
6376         "real" class for the type parameter; it's now safe to call
6377         mono_class_from_mono_type() on the class'es type, it'll do the
6378         right thing.
6379
6380 2003-09-16  Martin Baulig  <martin@ximian.com>
6381
6382         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6383         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6384         the `symfile' data structure must be fully initialized before it
6385         gets added to the table.
6386
6387 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6388
6389         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6390
6391         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6392         class init trampolines.
6393
6394 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6395
6396         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6397         to the built-in profiler to turn off time and allocation profiling
6398         respectively.
6399
6400 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6401
6402         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6403         g_direct_equal.
6404
6405         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6406         in human readable form.
6407
6408 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6409
6410         * reflection.c icall.c: Fixed warnings.
6411
6412         * image.c (load_class_names): Use a temporary hash table to hold the
6413         namespaces in order to avoid doing many string comparisons.
6414
6415         * image.h: Fix typo.
6416
6417         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6418         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6419         since the NULL case is short-circuited inside g_hash_table_lookup, 
6420         leading to better performance.  
6421
6422         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6423         obtain the first custom attribute for a given index. Depends on the
6424         CustomAttribute table being sorted by the parent field.
6425
6426         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6427         for better performance.
6428
6429 2003-09-07  Martin Baulig  <martin@ximian.com>
6430
6431         * class.c (mono_class_init): If we're a generic instance, inflate
6432         all our methods instead of loading them from the image.
6433         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6434
6435 2003-09-07  Martin Baulig  <martin@ximian.com>
6436
6437         * mono-debug-debugger.c: Added support for constructors.
6438
6439 2003-09-06  Martin Baulig  <martin@ximian.com>
6440
6441         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6442         New interncall.
6443
6444         * reflection.c (mono_reflection_setup_generic_class): Call
6445         ensure_runtime_vtable() to create the vtable.
6446
6447 2003-09-05  Martin Baulig  <martin@ximian.com>
6448
6449         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6450         MONO_TYPE_MVAR.
6451
6452 2003-09-04  Martin Baulig  <martin@ximian.com>
6453
6454         * reflection.c (mono_reflection_define_generic_parameter): Generic
6455         parameters start with zero.
6456
6457 2003-09-04  Martin Baulig  <martin@ximian.com>
6458
6459         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6460
6461         * reflection.h (MonoReflectionGenericParam): New typedef.
6462         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
6463         the generic parameters from the managed TypeBuilder.
6464
6465         * reflection.c (mono_reflection_define_generic_parameter): New function.
6466         (mono_reflection_create_runtime_class): Encode generic parameters.
6467         (mono_reflection_setup_generic_class): New function; this is
6468         called after adding adding all generic params to the TypeBuilder.
6469         (encode_type): Added MONO_TYPE_VAR.
6470
6471 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
6472
6473         * class.h class.c (mono_class_needs_cctor_run): Moved this method
6474         here from the JIT.
6475
6476         * assembly.h assembly.c: Moved the AOT loading code into an assembly
6477         load hook.
6478
6479 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
6480
6481         * reflection.h reflection.c class.h class.c: Delete duplicate 
6482         definition of mono_type_get_name () from reflection.c and export the
6483         one in class.c.
6484
6485         * class.c: Class loading fixes from Bernie Solomon 
6486         (bernard@ugsolutions.com).
6487
6488         * reflection.c: Endianness fixes from Bernie Solomon 
6489         (bernard@ugsolutions.com).
6490         
6491 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
6492
6493         * assembly.h assembly.c: Define a file format version for AOT
6494         libraries.
6495         
6496         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
6497
6498         * appdomain.h (MonoJitInfo): New field to determine whenever the
6499         code is domain neutral.
6500         
6501 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
6502
6503         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
6504
6505 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
6506
6507         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
6508         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
6509         Avoid caching the result since strings must be domain specific. Fixes
6510         #48050.
6511
6512 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
6513
6514         * marshal.c (mono_marshal_init): Make this callable multiple times
6515         since it is hard to find a correct place to call it.
6516
6517         * object.c (mono_runtime_class_init): Execute static constructors in
6518         the correct appdomain.
6519
6520         * image.c (build_guid_table): Handle the case when multiple images have
6521         the same GUID.
6522
6523 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6524
6525         * icall.c: added a couple of icalls for System.Web.
6526
6527 2003-08-28  Martin Baulig  <martin@ximian.com>
6528
6529         * icall.c (ves_icall_Type_BindGenericParameters): Use
6530         `klass->generic_inst' instead of `&klass->byval_arg' in the
6531         mono_type_get_object() call.  The returned type must be
6532         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
6533
6534 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
6535
6536         * NOTES: New file.
6537
6538         * object.c (mono_class_proxy_vtable): Make it thread safe.
6539
6540         * pedump.c: Fix warning.
6541
6542         * object.c appdomain.h: Get rid of metadata_section. 
6543         It is no longer needed and it was causing deadlocks with domain->lock.
6544
6545         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
6546
6547 2003-08-26  Martin Baulig  <martin@ximian.com>
6548
6549         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
6550
6551 2003-08-26  Martin Baulig  <martin@ximian.com>
6552
6553         * pedump.c (main): Call mono_metadata_init(),
6554         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
6555         and mono_loader_init().
6556
6557 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
6558
6559         * loader.h: Add missing include to fix build.
6560
6561         * image.h: mono_image_load_references is no more.
6562
6563         * assembly.c: Reworked assembly loading to make it really thread safe.
6564         After these changes, the assembly returned by mono_assembly_open is
6565         fully initialized, i.e. all its references assemblies are loaded.
6566
6567         * assembly.c (mono_image_load_references): Renamed to 
6568         mono_assembly_load_references, and made private, since clients no
6569         longer need to call it.
6570
6571         * class.c: Removed calls to mono_assembly_load_references, since it was
6572         a source of deadlocks.
6573
6574         * loader.h loader.c class.h class.c: Protect data structures using a 
6575         new lock, the loader lock.
6576
6577         * class.c (mono_class_setup_vtable): Create temporary hash tables and
6578         GPtrArrays only when needed.
6579
6580         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
6581         into empty structures by mcs. Fixes pinvoke7.cs.
6582         
6583         * domain.c (mono_init): Call a new initialization function.
6584
6585         * appdomain.c (mono_runtime_init): Call the new initializer function
6586         of the marshal module.
6587
6588         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
6589         inserted into empty structures by mcs. Fixes pinvoke7.cs.
6590
6591         * marshal.h marshal.c: Added locks around the wrapper caches to make
6592         this module thread safe.
6593
6594         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
6595         this argument. Fixes pinvoke1.exe.
6596
6597 2003-08-25  Lluis Sanchez <lluis@ximian.com>
6598
6599         * object.h: Added call_type field to MonoMethodMessage and the corresponding
6600         enumeration of values. Removed fields to store remote call output values in
6601         MonoAsyncResult. Not needed any more.
6602         * object.c: Initialize call_type and async_result fields in mono_message_init.
6603         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
6604         dispatching the message.
6605         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
6606         async call to finish. To do it use a message with EndInvoke call type.
6607
6608 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
6609
6610         * loader.h loader.c (mono_method_hash_marhal_info): New function which
6611         determines whenever a method has marshalling info.
6612
6613 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6614
6615         * assembly.c: fix the build on windows.
6616
6617 2003-08-22 Lluis Sanchez <lluis@ximian.com>
6618
6619         * object.cs: Fixed bug #47785.
6620
6621 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
6622
6623         * string-icalls.c (StringReplace): If their are no occurances of
6624         the old string found return a reference to the supplied
6625         string. This saves some memory and matches MS behavoir.
6626         
6627 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6628
6629         * socket-io.c: fixed compilation for systems that define AF_INET6
6630         and don't define SOL_IP/SOL_IPV6.
6631
6632 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
6633
6634         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
6635         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
6636
6637         * rawbuffer.c rawbuffer.h: Make this module thread safe.
6638
6639         * domain.c: Make this module thread safe.
6640
6641         * domain.c (mono_init): Call new initialization function.
6642
6643         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
6644         reference types too. Fixes #38812.
6645
6646         * image.c (mono_image_init): Fixed warnings.
6647
6648         * class.c (mono_class_from_typeref): Handle assembly load failure
6649         correctly.
6650
6651         * appdomain.c (add_assemblies_to_domain): Handle the case when
6652         the references of an assembly are not yet loaded.
6653
6654         * metadata.c image.c assembly.c: Moved initialization of global
6655         variables to a separate function called at startup since lazy 
6656         initialization of these variables is not thread safe.
6657         
6658         * image.c assembly.c: Made this module thread safe by adding locks in 
6659         the appropriate places.
6660
6661         * domain.c (mono_init): Call the new initialization functions of the
6662         three modules.
6663
6664 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
6665
6666         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
6667           make a direct call. It is proxy's work to make the call asynchronous.
6668           mono_delegate_end_invoke(): If the targe is a proxy, just collect
6669           the return values.
6670         * object.cs: mono_method_call_message_new(): read AsyncResult and
6671           state object from parameters list, if this info is requested.
6672         * object.h: Added fields to store remote call output values in
6673           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
6674
6675 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
6676
6677         * object.h: add needed fields to MonoThread.
6678         * threads.c, threads.h: allow registering a function to cleanup data
6679         allocated per thread by the JIT.
6680
6681 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6682
6683         * loader.h: portability fix by Bernie Solomon
6684         * <bernard@ugsolutions.com>.
6685
6686 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
6687
6688         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
6689         return a MonoArray. This simplifies the code and also ensures that
6690         the cache allways contains an object reference as a value.
6691
6692         * icall.c (ves_icall_get_parameter_info): Simplified using the new
6693         function.
6694
6695 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6696
6697         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
6698         fixes a problem with byte ordering when getting the address family for
6699         a socket.
6700
6701 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
6702
6703         * .cvsignore: Added monosn.
6704
6705         * reflection.h reflection.c loader.c: Added support for parameter
6706         marshalling to dynamically created types. Fixes #47295.
6707
6708 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
6709
6710         * rand.c: remove useless warnings.
6711
6712 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
6713
6714         * class.c: implemented ldtoken for methods and fieldrefs.
6715
6716 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6717
6718         * threadpool.c: when mono_async_invoke was called, no one took care of
6719         monitoring the queue. So if the method invoked took some time and we
6720         got new async invoke requests after 500 ms (the thread created waited
6721         that long in WaitForSingleObject), the new async invoke was not called
6722         until the previous one finished.
6723
6724         This is fixed now. Thanks to Totte for helping with it.
6725
6726 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6727
6728         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
6729
6730 2003-08-11  Martin Baulig  <martin@ximian.com>
6731
6732         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
6733
6734 2003-08-06  Martin Baulig  <martin@ximian.com>
6735
6736         * mono-debug-debugger.c: Added support for static fields,
6737         properties and methods.
6738
6739 2003-08-06  Martin Baulig  <martin@ximian.com>
6740
6741         * mono-debug-debugger.c: Don't store the MonoString's vtable to
6742         make this work for applications with multiple application domains.
6743
6744 2003-08-04  Martin Baulig  <martin@ximian.com>
6745
6746         * mono-debug-debugger.c: Completely reworked the type support; the
6747         most important thing is that we're now just using one single
6748         `MonoType' instance per type.
6749
6750 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
6751
6752         * mono-endian.h, mono-endian.c, icall.c: Added icall
6753         ves_icall_System_Double_AssertEndianity to assert double word endianity
6754         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
6755
6756 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
6757
6758         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
6759         support, icalls and fixes.
6760
6761 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
6762
6763         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
6764         classes that are a punctuation character in .NET is not the same a
6765         g_unichar_ispunct.
6766
6767 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6768
6769         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
6770
6771 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
6772
6773         * icall.c: Add new MemCopy internalcall.
6774         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
6775         Simplified code; It is not necessary to handle all the cases here,
6776         as the C# code takes care of it.  Only handle the case of the name
6777         resource embedded into the assembly.
6778
6779         Changed signature to return the data pointer and the size of the
6780         data. 
6781
6782 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
6783
6784         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
6785         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
6786
6787 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
6788
6789         * socket-io.c: ignore EINTR error in select.
6790
6791 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
6792
6793         * class.h, class.c: removed unused subclasses field in MonoClass.
6794
6795 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
6796
6797         * icall.c: improve fix of get_base_definition(). If the parent class
6798           doesn't have the mehod, look at the parent of the parent.
6799         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
6800           to check if a parameter is an in or out parameter
6801           (PARAM_ATTRIBUTE_IN is not set by default).
6802           mono_method_return_message_restore(): Use mono_class_value_size to
6803           get the size of a value type. mono_type_stack_size (parameterType)
6804           does not return the correct value if parameterType is byRef.
6805           mono_load_remote_field(), mono_load_remote_field_new(),
6806           mono_store_remote_field(), mono_store_remote_field_new():
6807           raise exception if the remote call returns an exception.
6808
6809 2003-07-28  Martin Baulig  <martin@ximian.com>
6810
6811         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
6812         method.  This is a wrapper around mono_runtime_invoke() which
6813         boxes the instance object if neccessary.
6814
6815 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
6816
6817         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
6818         metadata.h, row-indexes.h, verify.c: first cut of generics support.
6819
6820 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
6821
6822         * icall.c: disable mcs bug workaround.
6823
6824 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
6825
6826         * object.c (mono_runtime_class_init): Take the metadata_section
6827         mutex before obtaining the domain mutex.
6828
6829         * appdomain.h: Added definition of metadata_section mutex here. 
6830
6831         * object.c: define metadata_mutex here.
6832
6833 2003-07-24  Ravi Pratap  <ravi@ximian.com>
6834
6835         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
6836         fixed.
6837
6838 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
6839
6840         * reflection.c: Fix bug #46669
6841
6842 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6843
6844         * exception.c:
6845         * exception.h:
6846         * icall.c:
6847         * object.h: fill in the type name for TypeLoadException.
6848
6849 2003-07-23  Ravi Pratap  <ravi@ximian.com>
6850
6851         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
6852         relationship between TypeBuilders while compiling corlib) and bug
6853         45993 (Array types returned from the runtime while compiling
6854         corlib were from the loaded corlib).
6855
6856 2003-07-22  Martin Baulig  <martin@ximian.com>
6857
6858         * mono-debug-debugger.c: Reworked the type support a bit more;
6859         distinguish between types and classes.
6860
6861 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
6862
6863         * icall.c: add IsArrayImpl icall.
6864
6865 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
6866
6867         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
6868         initializing real_size only once. Also fix bug #46602.
6869
6870 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
6871
6872         * object.c: Renamed mono_metadata_section to metadata_section.
6873
6874 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
6875
6876         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
6877           empty array if the type is an array. Fixed.
6878           ves_icall_MonoMethod_get_base_definition: if the base method
6879           is abstract, get the MethodInfo from the list of methods of
6880           the class.
6881         * reflection.c: ParameterInfo.PositionImpl should be zero-based
6882           and it was 1-based. Fixed in mono_param_get_objects.
6883
6884 2003-07-20  Martin Baulig  <martin@ximian.com>
6885
6886         * mono-debug.h: Set version number to 31.
6887         (mono_debug_init): Added `MonoDomain *' argument.
6888
6889         * mono-debug-debugger.c: Reworked the type support; explicitly
6890         tell the debugger about builtin types; pass the `klass' address to
6891         the debugger.
6892
6893 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
6894
6895         * image.c: Allow new metadata tables to be loaded without a
6896         warning. Also update the warning message to give the new constant value.
6897                 
6898 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
6899
6900         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
6901         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
6902         array type representation changes.
6903
6904 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
6905
6906         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
6907         on Environment.Exit () call.
6908
6909 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
6910
6911         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
6912         requires a matching corlib.
6913
6914 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
6915
6916         * Changelog: My editor decided to add a CR to each line. Sorry about that.
6917           Committed again without the CRs.
6918         
6919 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
6920
6921         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
6922           getting it from the "this" socket instance. Did not work
6923           if the socket is a subclass of Socket.
6924           Also fixed bug #35371.
6925
6926 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
6927
6928         * metadata.c: fixed size for TypedByRef.
6929         * loader.c: when searching for a method, consider the vararg amrker.
6930         * unicode.c, decimal.c: constify some arrays.
6931
6932 2003-07-15  Dick Porter  <dick@ximian.com>
6933
6934         * socket-io.c: Fixed compilation for gcc < 3.2.
6935
6936         Fixed compilation for machines that don't have AF_INET6 (thanks to
6937         Bernie Solomon <bernard@ugsolutions.com> for that part.)
6938
6939         Fixed compile warnings.
6940         
6941         Fixed formatting and line endings.
6942
6943 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
6944
6945         * socket-io.h:
6946         * socket-io.c: Added IPv6 support.
6947
6948 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
6949
6950         * class.c (mono_class_is_assignable_from): New function to implement
6951         the is_assignable_from logic. Used by mono_object_isinst, 
6952         Type::IsAssignableFrom () and the interpreter.
6953
6954         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
6955         Object, even interfaces.
6956         
6957         * object.c (mono_object_isinst): Implement in terms of 
6958         is_assignable_from.
6959
6960         * icall.c (ves_icall_type_is_assignable_from): New icall.
6961
6962 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
6963
6964         * domain.c (foreach_domain): fix compiler warning.
6965
6966 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
6967
6968         * image.c (load_metadata_ptrs): use g_strndup because strndup is
6969         not available on all plattforms
6970
6971 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
6972
6973         * image.h image.c: Store the metadata version string in MonoImage.
6974         * icall.c: New icall to retrieve the image version.
6975         * reflection.c (create_dynamic_image): Fill in the image version field
6976         * reflection.c (build_compressed_metadata): Use the image version
6977         from the image structure.
6978
6979 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6980
6981         * appdomain.c: modified comment.
6982         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
6983         That will be its last iteration when mono_gc_cleanup is called from
6984         mono_runtime_cleanup and before the domain is unloaded.
6985
6986         Fixes bug #45962.
6987
6988 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
6989
6990         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
6991         attributes.
6992
6993 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
6994
6995         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
6996         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
6997         Bernie Solomon <bernard@ugsolutions.com>.
6998
6999 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7000
7001         * object.c, object.h: provide mono_object_new_fast() for faster
7002         allocation in some special cases.
7003
7004 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7005
7006         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7007         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7008
7009 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7010
7011         * threadpool.c: fix leaks.
7012
7013 2003-07-01  Dick Porter  <dick@ximian.com>
7014
7015         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7016         using MonoGHashTables.  Fixes threadpool bug posted to list.
7017
7018 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7019
7020         * image.h, image.c: added support to load an assembly from a byte array.
7021         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7022         assembly bundle support.
7023
7024 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7025
7026         * threadpool.c (mono_thread_pool_add): keep a reference to the
7027         AsyncResult to prevent GC
7028
7029 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7030
7031         * class.c: leak fix.
7032
7033 2003-06-25  Dick Porter  <dick@ximian.com>
7034
7035         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7036         for the async object, the WaitHandle object will close the handle.
7037         Fixes bug 45321.
7038
7039 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7040
7041         * class.c: in mono_array_class_get (), lookup from the hash with the
7042         same type we insert: this works around a bug in
7043         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7044         lluis. The real fix will have to wait for after the release.
7045
7046 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7047
7048         * icall.c: fix memory leak when getting type members.
7049
7050 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7051
7052         * reflection.c: added more pubtoken special cases.
7053
7054 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7055
7056         * class.c: handle field offset correctly when class size
7057         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7058
7059 2003-06-20  Martin Baulig  <martin@ximian.com>
7060
7061         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7062         *image' field.
7063
7064 2003-06-20  Martin Baulig  <martin@ximian.com>
7065
7066         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7067
7068 2003-06-20  Martin Baulig  <martin@ximian.com>
7069
7070         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7071         just distinguish between variables in registers and variables at
7072         an offset relative to a register.
7073
7074 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7075
7076         * icall.c: #ifdef out latest changes until mcs is fixed.
7077
7078 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7079
7080         * icall.c: return members in metadata order.
7081
7082 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7083
7084         * icall.c: avoid infinite loop in GetTimeZoneData.
7085
7086 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7087
7088         * icall.c: added Marshal.Prelink/All icalls.
7089
7090 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7091
7092         * object.c, object.h: fix warnings and do some overflow checking
7093         when creating arrays.
7094
7095 2003-06-17  Dick Porter  <dick@ximian.com>
7096
7097         * file-io.h:
7098         * file-io.c: File attributes need to be tweaked slightly when
7099         passed from the managed to the w32 world.
7100
7101 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7102         * profiler.h profiler-private.h profiler.c: Rework last patch
7103         based on suggestion by Paolo.
7104         
7105 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7106
7107         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7108         instruction level coverage data collection.
7109         * profiler.h profiler.c (: Added new callback function which can be
7110         used by the profiler to limit which functions should have coverage
7111         instrumentation.
7112         * profiler.c (mono_profiler_load): Call g_module_build_path to
7113         generate the file name of the profiler library.
7114
7115 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7116
7117         * profiler.c, profiler.h, profiler-private.h: added basic block 
7118         coverage profiling API.
7119
7120 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7121
7122         * reflection.c (mono_reflection_create_runtime_class): Add support
7123         for events in dynamically generated code.
7124
7125         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7126         not allocated.
7127
7128 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7129
7130         * icall.c: when getting timezone info, return reasonable values if we
7131         can't get the actual data.
7132
7133 2003-06-14  Dick Porter  <dick@ximian.com>
7134
7135         * threads.c (start_wrapper): Remove the reference to the thread
7136         object in the TLS data, so the thread object can be finalized.
7137         This won't be reached if the thread threw an uncaught exception,
7138         so those thread handles will stay referenced :-( (This is due to
7139         missing support for scanning thread-specific data in the Boehm GC
7140         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7141
7142 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7143
7144         * reflection.c: ensure streams and tables are first allocated with
7145         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7146
7147 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7148
7149         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7150
7151 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7152
7153         * reflection.c (mono_reflection_create_runtime_class): Add support for
7154         properties to dynamically created classes.
7155         * reflection.c: Fix a few places where non-MonoObjects were inserted
7156         into the tokens hashtable.
7157
7158 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7159
7160         * object.c: some support to handle out of memory exceptions.
7161
7162 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7163
7164         * marshal.c (mono_marshal_get_native_wrapper): support reference
7165         return types
7166
7167 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7168
7169         * object.h, object.c: more portability stuff from Bernie Solomon.
7170         Unexport mono_object_allocate(). Added mono_object_unbox ().
7171         Set exitcode when an unhandled exception is thrown.
7172
7173 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7174
7175         * marshal.c (mono_marshal_get_native_wrapper): use custom
7176         marshaler for return types.
7177
7178 2003-06-10  Dick Porter  <dick@ximian.com>
7179
7180         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7181         ip_mreq is available
7182
7183 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7184
7185         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7186         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7187         by Bernie Solomon <bernard@ugsolutions.com>.
7188
7189 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7190
7191         * gc.c (mono_gc_init): Avoid error message on shutdown when
7192         GC_DONT_GC=1 is used.
7193
7194         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7195         New icall to return the GUID of a module.
7196
7197 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7198
7199         * class.c: ensure instance size always includes the parent's size
7200         even whem class size is set explicitly (fixes bug#44294).
7201
7202 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7203
7204         * profiler.h, profiler.c: made the simple profiler thread-safe,
7205         get more accurate timing info. Allow the loading of an
7206         externally-developed profiler module.
7207
7208 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7209
7210         * marshal.c (mono_marshal_get_native_wrapper): improved
7211         class/byref arguments.
7212         (mono_marshal_get_native_wrapper): better string marshaling support.
7213
7214 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7215
7216         * class.c: ensure .pack and .size are handled correctly and
7217         simplified layout of static fields.
7218
7219 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7220
7221         * appdomain.c
7222         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7223
7224         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7225         current directory (fix bug 44008)
7226
7227 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7228
7229         * marshal.c (mono_marshal_get_native_wrapper): started support for
7230         custom marshalers.
7231         (mono_delegate_to_ftnptr): consider marshalling specifications
7232
7233 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7234
7235         * reflection.c, reflection.h: emit custom marshal info.
7236
7237 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7238
7239         * object.c: free the GError.
7240         * icall.c: added CloseEvent_internal.
7241         * threads.[ch]:
7242         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7243         call.
7244
7245 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7246
7247         * loader.c (mono_method_get_signature): Add support for dynamic
7248         assemblies.
7249
7250 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7251
7252         * reflection.c: fixed bug #43905.
7253
7254 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7255
7256         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7257         handling TypedReference and ArgIterator.
7258         * loader.c, loader.h: added function to get signature at call site.
7259
7260 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7261
7262         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7263         data readonly. Buglets and warning fixes. Some MethodSpec support.
7264
7265 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7266
7267         * class.h, class.c, object.c: remove relative numbering support.
7268
7269 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7270
7271         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7272         free the string, until we get a chance to fix Gtk#
7273
7274 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7275
7276         * marshal.c: revert last patch.
7277
7278 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7279
7280         * icall.c: updates for new mono_class_vtable() not calling
7281         the type constructor anymore.
7282
7283 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7284
7285         * object.h, object.c: separate vtable creation from type
7286         initialization. Make running the .cctor thread safe.
7287
7288 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7289
7290         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7291
7292 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7293
7294         * loader.c (mono_get_method): consider calling convention
7295
7296 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7297
7298         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7299         to return the invisible global type for a module.
7300
7301         * reflection.c (mono_image_build_metadata): Emit global fields too.
7302
7303 2003-05-20  Peter Williams  <peterw@ximian.com>
7304
7305         * loader.c (mono_lookup_internal_call): Add a few newlines.
7306
7307 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7308
7309         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7310         literal strings.
7311
7312         * appdomain.c (set_domain_search_path): Recalculate search path when
7313         AppDomainSetup.PrivateBinPath changes.
7314
7315         * object.c (mono_class_compute_gc_descriptor): It turns out some
7316         parts of the class libs (like System.Thread) holds pointers to
7317         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7318         to treat native int a pointer type here.
7319         
7320 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7321
7322         * appdomain.h, domain.c: add hashtable for jump target resolution.
7323
7324 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7325
7326         * reflection.h reflection.c icall.c: Added new icalls 
7327         GetManifestResourceInfoInternal, GetModulesInternal and support
7328         infrastructure.
7329
7330 2003-05-16  Dick Porter  <dick@ximian.com>
7331
7332         * icall.c:
7333         * file-io.h:
7334         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7335
7336 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7337
7338         * object.c: mono_store_remote_field: little fix to previous patch.
7339
7340 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7341
7342         * class.c: add constructors to array classes.
7343         * icall.c: special case array construction for InternalInvoke (),
7344
7345 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7346
7347         * class.h class.c reflection.c object.c: Added support for field
7348         defaults in dynamically generated classes.
7349
7350 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7351
7352         * reflection.c: properly encode charset for ddlimport.
7353
7354 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7355
7356         * threads.c: allow compiling without GC.
7357
7358 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7359
7360         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7361         handling of thread static data.
7362
7363 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7364
7365         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7366
7367 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7368
7369         * class.c (mono_array_class_get): always set the serializable flags
7370         (mono_array_class_get): always set the SEALED attribute for array types
7371
7372 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7373
7374         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7375         attributes (fix for bug 42021).
7376
7377 2003-05-12  Dick Porter  <dick@ximian.com>
7378
7379         * gc.c: Don't run finalizers when the finalizer thread is
7380         finishing up, because the default domain has already been
7381         destroyed.
7382
7383 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7384
7385         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7386         value is null, we should throw an exception.   This is slightly
7387         different than the other conventions used for the constructor.
7388
7389 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7390
7391         * socket-io.c: fixed windows build.
7392
7393 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7394
7395         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7396
7397 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7398
7399         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7400         compilers.
7401
7402 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7403
7404         * class.c (mono_class_layout_fields): Add experimental GC aware
7405         auto layout facility. Requires class library changes to work correctly.
7406
7407         (mono_class_setup_vtable): Avoid overriding explicit interface
7408         method implementations. Fixes iface3.exe test.
7409
7410         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7411         object reference.
7412         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7413         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7414
7415         * metadata.h: Add new type classification macro which determines
7416         whenever the type holds an object reference.
7417
7418 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7419
7420         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7421
7422 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7423
7424         * gc.c (finalizer_thread): Work around a GC bug.
7425
7426 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7427
7428         * marshal.c (emit_struct_conv): allow unions
7429
7430         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7431
7432 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7433
7434         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7435
7436 2003-05-06  Martin Baulig  <martin@ximian.com>
7437
7438         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7439
7440 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7441
7442         * socket-io.c:
7443         (Select_internal): allow NULLs, don't create arrays if not needed.
7444         Coupled with Socket.cs changes.
7445
7446         * threadpool.c:
7447         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7448         register a finalizer for it that will close the semaphore handle. This
7449         fixes the leak and make Lupus' test run with > 4080 loops.
7450
7451 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7452
7453         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7454         Jerome Laban (bug #42287)
7455
7456 2003-05-02  Martin Baulig  <martin@ximian.com>
7457
7458         * debug-mono-symfile.h
7459         (MonoSymbolFile): Moved declaration into mono-debug.h.
7460         (MonoDebugMethodJitInfo): Likewise.
7461         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
7462         argument.
7463         (_mono_debug_address_from_il_offset): Take a
7464         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
7465
7466         * mono-debug.h
7467         (MonoDebugDomainData): New struct.
7468         (mono_debug_get_domain_data): New function.
7469         (mono_debug_add_method): Take an additional `MonoDomain *'
7470         argument.
7471         (mono_debug_source_location_from_address): Likewise.
7472         (mono_debug_il_offset_from_address): Likewise.
7473         (mono_debug_address_from_il_offset): Likewise.
7474
7475 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
7476
7477         * reflection.c: one more check for null type in custom attrs.
7478
7479 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7480
7481         * reflection.c: avoid warning (comparison is always false due to limited
7482         range of data type).
7483
7484 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7485
7486         * icall.c: throw an exception in Type.GetField if the argument 'name'
7487         is NULL.
7488
7489 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
7490
7491         * reflection.c: fixed handling of enums in named arguments to custom
7492         attributes (bug #42123).
7493
7494 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
7495
7496         * reflection.c: use the right array element type and handle
7497         a null for a Type argument, too.
7498
7499 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
7500
7501         * reflection.c: handle arrays as arguments to custom attributes.
7502
7503 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7504
7505         * reflection.c: handle a string value in a custom attr
7506         ctor that takes an object.
7507
7508 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
7509
7510         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
7511         (fix bug #42063)
7512
7513 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
7514
7515         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
7516
7517 2003-04-27  Martin Baulig  <martin@ximian.com>
7518
7519         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
7520         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
7521         MONO_DEBUGGER_EVENT_BREAKPOINT.
7522         (mono_breakpoint_trampoline_code): Removed.
7523         (mono_debugger_event_handler): The last argument is now a
7524         `guint32'.
7525         (mono_debugger_insert_breakpoint_full): Removed the
7526         `use_trampoline' argument.
7527         (mono_debugger_method_has_breakpoint): Likewise.
7528         (mono_debugger_trampoline_breakpoint_callback): Renamed to
7529         mono_debugger_breakpoint_callback(); take the method and
7530         breakpoint number as arguments.
7531
7532 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
7533
7534         * metadata.c: fix off by one when loading parameters attributes.
7535
7536 2003-04-24  Martin Baulig  <martin@ximian.com>
7537
7538         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
7539
7540 2003-04-24  Martin Baulig  <martin@ximian.com>
7541
7542         * mono-debug-debugger.c: Moved all code which interacts with the
7543         Mono Debugger here.
7544
7545         * debug-mono-symfile.c: This code now just deals with the symbol
7546         file itself, the debugger code is now in mono-debug-debugger.c.
7547
7548 2003-04-23  Martin Baulig  <martin@ximian.com>
7549
7550         * mono-debug.c (mono_debug_source_location_from_il_offset):
7551         New method; like mono_debug_source_location_from_address(), but
7552         takes an IL offset instead of a machine address.
7553
7554 2003-04-23  Martin Baulig  <martin@ximian.com>
7555
7556         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
7557         `line' field; this is now computed by the debugger.
7558
7559 2003-04-23  Martin Baulig  <martin@ximian.com>
7560
7561         * mono-debug.[ch]: New files.  This is the new debugging interface.
7562
7563         * mono-debug-debugger.[ch]: New files.  Moved all code which
7564         interacts with the Mono Debugger here.
7565
7566 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
7567
7568         * domain.c (mono_init): initialize mono_defaults.monitor_class
7569
7570 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
7571
7572         * reflection.c (method_encode_code): Add a spicy exception to help
7573         future compiler authors.
7574
7575 2003-04-21  Martin Baulig  <martin@ximian.com>
7576
7577         * icall.c
7578         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7579         Make this work with relative pathnames; g_filename_to_uri() needs
7580         an absolute filename.
7581
7582 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
7583
7584         * icall.c: Track name changes in Object and ValueType.
7585
7586 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
7587
7588         * metadata.c (mono_type_stack_size): size should be a multiple of
7589         sizeof (gpointer)
7590
7591 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7592
7593         * gc.c:
7594         (internal_domain_finalize): moved into mono_domain_finalize. No need
7595         to create another thread because the finalizers will be run in the
7596         finalizer thread.
7597         
7598         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
7599         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
7600         to be run (MS does this too).
7601
7602 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
7603
7604         * object.c (mono_class_compute_gc_descriptor): Update comment.
7605
7606         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
7607
7608         * image.h: Add synchronized wrapper cache.
7609
7610         * image.c (do_mono_image_open): Initialize cache.
7611
7612         * reflection.c (create_dynamic_mono_image): Initialize cache.
7613
7614 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7615
7616         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
7617         ves_icall_System_Buffer_ByteLengthInternal.
7618
7619 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7620
7621         * reflection.c: setup klass->nested_in earlier. Allow
7622         a dash in the assembly name.
7623
7624 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
7625
7626         * metadata.c (mono_type_to_unmanaged): dont access
7627         type->data.klass for MONO_TYPE_OBJECT
7628         (mono_type_to_unmanaged): consider System.Delegate class
7629
7630 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
7631
7632         * class.c: just setup supertypes in the proper place instead of
7633         initializing the full element class for arrays.
7634
7635 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7636
7637         * class.c: ensure the element class of arrays is initialized.
7638         Setup the supertype info for array classes, too.
7639
7640 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
7641
7642         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
7643
7644 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7645
7646         * Makefile.am: re-added -m option when running cygpath. This way,
7647         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
7648         separator.
7649         * mono-config.c: same codepath for locating mono config file for WIN32
7650         and the rest.
7651         * assembly.c: if mono_assembly_setrootdir is called, don't override
7652         the value set.
7653
7654 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7655
7656         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
7657         MONO_ASSEMBLIES variable.
7658
7659 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
7660
7661         * icall.c: added Assembly::GetNamespaces() icall.
7662
7663 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7664
7665         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
7666
7667 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
7668
7669         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
7670         * object.c: fixed bug in the construction of vtable for proxies
7671
7672 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
7673
7674         * object.c (mono_array_new): Mark mono_array_new as an icall.
7675
7676 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7677
7678         * class.c: fixed test for public method when overriding interfaces.
7679         Closes bug #40970.
7680
7681 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7682
7683         * appdomain.h, domain.c: added mono_domain_foreach() to
7684         be able to access the currently loaded appdomains.
7685         * object.c: make string interning work across sppdomains.
7686         Mark some functions for use as icalls.
7687
7688 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
7689
7690         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
7691
7692         * reflection.h reflection.c: Allocate long living data using 
7693         GC_MALLOC_ATOMIC so the collector does not need to scan it.
7694
7695         * reflection.c: Double the allocation size in streams instead of
7696         increasing it, to prevent unneccesary copying on large assemblies.
7697         
7698         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
7699         creation if the assembly does not have the Run flag set.
7700
7701 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
7702
7703         * class.h: avoid the C++ keywords in header files (Jerome Laban
7704         spotted and fixed this).
7705
7706 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7707
7708         * object.c:
7709         (mono_unhandled_exception): fill in the arguments for the
7710         UnhandledException event. Only trigger that event for the default
7711         domain (as MS does).
7712
7713 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
7714
7715         * object.c: Improve typed allocation stuff based on suggestions from
7716         Paolo. Also turn it on if the GC library supports it.
7717
7718 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
7719
7720         * object.c object.h class.h: Added experimental typed allocation
7721         facility using the interfaces in gc_gcj.h.
7722
7723         * os/gc_wrapper.h: Added new include files.
7724         
7725 2003-04-03  Martin Baulig  <martin@ximian.com>
7726
7727         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
7728         which is not yet enabled by default.
7729
7730         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
7731         functions.
7732         (mono_gc_lock, mono_gc_unlock): New static functions.
7733
7734         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
7735         functions; stop/start the world for the garbage collector.  This
7736         is using the windows API; we need to complete the SuspendThread()/
7737         ResumeThread() implementation in the io-layer to make this work on Unix.
7738         (mono_gc_push_all_stacks): New public function; tells the garbage
7739         collector about the stack pointers from all managed threads.
7740
7741 2003-04-03  Martin Baulig  <martin@ximian.com>
7742
7743         * object.h (MonoThread): Added `gpointer stack_ptr'.
7744
7745         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
7746
7747 2003-04-03  Martin Baulig  <martin@ximian.com>
7748
7749         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
7750
7751 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
7752
7753         * reflection.c (typebuilder_setup_fields): Initialize field.first and
7754         field.last.
7755
7756 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
7757
7758         * loader.c (mono_lookup_internal_call): Report the corlib that is
7759         out of sync.
7760
7761 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
7762
7763         * icall.c (ves_icall_type_GetTypeCode): fixed check for
7764         System.DBNull (it's class not valuetype).
7765
7766 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7767
7768         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
7769         if the array method was already assigned a token (fixes bug#40646).
7770
7771 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
7772
7773         * reflection.c (mono_reflection_get_type): Attempt type resolve even
7774         if no assembly is given.
7775
7776 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
7777
7778         * metadata.h: Added the new tables.
7779
7780         * row-indexes.h: Added definitions for new tables.
7781
7782         * metadata.c: Add schemas for new tables, and add support for
7783         computing the sizes of them.
7784
7785         * class.c: Update for handling the new type cases.
7786
7787 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
7788
7789         * metadata.h (MONO_TYPE_IS_VOID): new macro
7790
7791 2003-03-31  Martin Baulig  <martin@ximian.com>
7792
7793         * threads.h (MonoThreadCallbacks): Added `thread_created'.
7794
7795         * threads.c (mono_thread_new_init): Call `thread_created' in the
7796         mono_thread_callbacks.
7797
7798 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
7799
7800         * loader.h: added marshalbyrefobject_class to mono_defaults
7801         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
7802         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
7803           generation of output parameters.
7804           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
7805         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
7806           contextbound and the target object belongs to the context of the caller.
7807         * object.h: added context and unwrapped_server variables in MonoRealProxy.
7808         * object.c: Implemented support for interfaces and abstract classes
7809           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
7810           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
7811
7812 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
7813
7814         * class.h class.c (mono_class_is_subclass_of): New function.
7815         
7816         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
7817         routines for most common case (calls from ArrayList::ToArray).
7818
7819         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
7820         routine so programs which call Environment::Exit() can be profiled.
7821
7822         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
7823         Added MONO_ARCH_SAVE_REGS.
7824
7825         * icall.c (ves_icall_type_is_subtype_of): Use new function.
7826
7827 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
7828
7829         * blob.h: Add a couple of new MonoType types definitions.
7830
7831         * tabledefs.h: Add a couple of new call convs.
7832
7833 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
7834
7835         * reflection.h (MonoReflectionDynamicAssembly): track changes in
7836         the layout of the class.
7837
7838         * reflection.c (alloc_table): double the size on overflow to avoid
7839         unnecessary copying.
7840
7841         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
7842         avoid filling out metadata tables and blobs. Also set mb->ilgen to
7843         null so it can be garbage collected.
7844         
7845 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
7846
7847         * reflection.c (mono_reflection_get_type): Return the resolved type
7848         only if it is in the assembly we searched.
7849
7850         * reflection.c (ensure_runtime_vtable): Initialize method slots.
7851
7852         * class.c (mono_class_setup_vtable): Set the slot of the overriding
7853         method.
7854
7855 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7856
7857         * appdomain.c:
7858         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
7859         the right one is 'file:///blah', but MS allows it.
7860         * assembly.c:
7861         (mono_assembly_open): allow 'file://blah'
7862
7863         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
7864
7865 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
7866
7867         * socket-io.c: fixes bug #40310.
7868
7869 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
7870
7871         * reflection.c (mono_reflection_parse_type): handle deeply nested
7872         types correctly.
7873
7874         * reflection.c (mono_image_create_token): Use unique token values
7875         since they will be put into a hash table.
7876
7877         * class.c (mono_class_setup_vtable): If a method occurs in more than
7878         one place in the vtable, and it gets overriden, then change the
7879         other occurances too.
7880
7881         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
7882         object as return type.
7883
7884 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
7885
7886         * icall.c: Deleted "ToString" implementation for double and float
7887         because they are full implemented in managed code.
7888
7889 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
7890
7891         * reflection.c, reflection.h: implemented and exported functions
7892         to retrieve info about custom attributes.
7893
7894 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7895
7896         * appdomain.c: moved Uri handling to assembly.c
7897         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
7898         work when using a file Uri in *nix and windows.
7899
7900         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
7901         GetReferencedAssemblies.
7902
7903 2003-03-18  Dick Porter  <dick@ximian.com>
7904
7905         * icall.c: Rename a couple of internal calls
7906
7907         * threads.c: Set the thread state to Stopped when a thread exits.
7908         Fixes bug 39377.
7909
7910 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
7911
7912         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
7913         New icall.
7914
7915         * object.c (mono_class_vtable): fix warning.
7916
7917 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
7918
7919         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
7920
7921         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
7922         memory.
7923         (method_encode_clauses): Create exception info structures in the right
7924         order.
7925         (mono_reflection_setup_internal_class): Initialize supertypes field.
7926
7927         * class.c object.c: Handle interfaces which implement other interfaces 
7928         correctly.
7929
7930         * class.h class.c: Move the supertypes array initialization code into 
7931         a separate function so it can be used for dynamic types too. Also call
7932         it earlier, in mono_class_init(), since it can be used before the
7933         type is initialized.
7934
7935 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7936
7937         * Makefile.am:
7938         * assembly.c:
7939         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
7940
7941         * appdomain.c:
7942         * appdomain.h:
7943         * marshal.c:
7944         * object.c: remove warnings.
7945
7946 2003-03-13  Martin Baulig  <martin@ximian.com>
7947
7948         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
7949         (MonoDebugLexicalBlockEntry): New types.
7950
7951         * debug-mono-symfile.c
7952         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
7953
7954 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7955
7956         * process.c: ret can be any non-zero value accroding to MS doc.
7957
7958 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
7959
7960         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
7961         fixing a warning for a miss-used prototype, would have cause
7962         random memory corruption.
7963
7964 2003-03-07  Martin Baulig  <martin@ximian.com>
7965
7966         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
7967         getting really annoying ....
7968
7969 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
7970
7971         * reflection.c (fixup_method): added support for array methods.
7972
7973 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
7974
7975         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
7976         (pointed out by Michael Adams).
7977
7978 2003-03-04  Dick Porter  <dick@ximian.com>
7979
7980         * icall.c: Temporarily reverted the Double and Single ToString()
7981         change, because it broke nunit.
7982
7983 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
7984
7985         * object.h, threads.h: make include files compatible with C++
7986         (patch by Jerome Laban <jlaban@wanadoo.fr>).
7987
7988 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
7989
7990         * icall.c: Erased ToString helper functions for Double and Single.
7991         Now, that implementations ar all in managed code (Double and Single
7992         Formatters).
7993
7994 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
7995
7996         * appdomain.c: Added method for initializing the default context of
7997         a domain. Added internal call for getting the default context.
7998         * appdomain.h: Added context variable in MonoDomain struct.
7999         * domain.c: mono_domain_set also sets the default context of the domain
8000         * icall.c: Mapped internal method InternalGetDefaultContext.
8001         * object.c: mono_object_get_virtual_method returns always a remoting
8002         wrapper if the object is a transparent proxy.
8003         mono_runtime_invoke_array: when creating an object by calling the
8004         constructor, if the created object is a proxy, then the constructor should
8005         be called using the a remoting wrapper.
8006
8007 2003-03-03  Dick Porter  <dick@ximian.com>
8008
8009         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8010         variable so it compiles on solaris.  Problem spotted by
8011         Christopher Taylor <ct@cs.clemson.edu>
8012
8013 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8014
8015         * appdomain.c:
8016         (get_info_from_assembly_name): don't leak value.
8017
8018         * icall.c:
8019         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8020         result.
8021
8022 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8023
8024         * assembly.c: export mono_image_load_references ().
8025         * class.c: handle function pointers. mono_class_from_name() now
8026         supports nested type names directly.
8027
8028 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8029
8030         * reflection.h reflection.c: Encode already created dynamic methods 
8031         and fields correctly as a DEF instead of a REF.
8032
8033         * reflection.c: Get rid of the force_ref argument to 
8034         mono_image_typedef_or_ref since it was wrong in the first place.
8035
8036         * string-icalls.c: add error checking to string constructors according
8037         to the MSDN docs.
8038
8039         * reflection.c: Emit types in the order their TypeBuilders were 
8040         created. Previously, a new table index was assigned to each type before
8041         the tables were emitted. This was wrong because the signature blob
8042         might already refer to a type by its original table index.
8043
8044 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8045
8046         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8047         change.
8048         
8049 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8050
8051         * Makefile.am: make assemblies dir have \ instead of / on windows.
8052
8053 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8054
8055         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8056         iterate over the NESTEDCLASS table using a linear search since the
8057         table is not guaranteed to be sorted by the secondary key.
8058
8059         * class.c (mono_class_create_from_typedef): fixed up call to
8060         mono_metadata_nesting_typedef.
8061         
8062 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8063
8064         * marshal.c (mono_string_to_byvalstr): clear the memory as
8065         suggested by Jerome Laban <jlaban@wanadoo.fr>
8066
8067 2003-02-26  Dick Porter  <dick@ximian.com>
8068
8069         * process.c: Cope with padding in .rsrc blocks
8070
8071 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8072
8073         * metadata.h: reverted the filter_len change, it breaks reflection
8074         
8075 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8076
8077         * metadata.h: added a new field to store the filter_len
8078         
8079
8080 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8081
8082         * reflection.c: handle custom attributes for types and members
8083         created with Reflection.Emit (bug#38422).
8084
8085 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8086
8087         * reflection.c: define RTSpecialName automatically for constructors for
8088         compatibility with MS.NET.
8089
8090         * reflection.c (mono_reflection_create_runtime_class): initialize
8091         nested_in field of dynamically created classes.
8092
8093 2003-02-22  Martin Baulig  <martin@ximian.com>
8094
8095         * debug-mono-symfile.h: Incremented version number.
8096
8097 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8098
8099         * object.h icall.c process.c: fix warnings.
8100
8101 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8102
8103         * appdomain.h appdomain.c:
8104         (mono_domain_try_type_resolve): split the 
8105         name_or_tb argument into a name and a tb argument.
8106         (mono_domain_has_type_resolve): new function to check whenever the
8107         application has registered a TypeResolve event handler.
8108         
8109         * icall.c reflection.h reflection.c: move the type resolve logic into
8110         mono_reflection_get_type () so it will be invoked when 
8111         Assembly::GetType () is called.
8112
8113         * reflection.c:
8114         (mono_reflection_get_type): renamed to get_type_internal.
8115         (mono_reflection_get_type): fixed type name generation so it works 
8116         for nested types too.
8117         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8118         costly type name generation if there is no resolve event handler.
8119
8120 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8121
8122         * class.c, image.c: load exported types from file references.
8123
8124 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8125
8126         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8127           used to cache the managed methods used to create proxies and make 
8128           remote invocation of methods.
8129         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8130           to be remotely created.
8131         * object.c: Modified the method mono_class_vtable(). It now initializes 
8132           the remote flag of the vtable. Modified mono_object_new_specific(), 
8133           so now it checks the remote flag.
8134         * icall.c: Added a couple of internal methods, one for enabling instance 
8135           creation interception for a type, and one for creating objects bypassing
8136           the remote check.
8137
8138 2003-02-18  Martin Baulig  <martin@ximian.com>
8139
8140         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8141         New interncall to get a method's metadata token.
8142
8143         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8144         New interncall for the debugger.
8145
8146 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8147
8148         * class.c (mono_class_setup_vtable): allocate supertype array
8149
8150 2003-02-18  Martin Baulig  <martin@ximian.com>
8151
8152         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8153
8154 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8155
8156         * reflection.c:
8157         (assembly_name_to_aname): jump over unknown properties (i've found
8158         something like: 'type, assembly, version=xxx, custom=null, public...',
8159         so now will ignore custom=null and still get the rest of the values).
8160
8161 2003-02-17  Dick Porter  <dick@ximian.com>
8162
8163         * threads.c: Have Thread.Start() wait for a semaphore to signal
8164         that the thread has set up all its local data.  This fixes bug
8165         34323, where Abort() raced the new thread's TLS data.
8166
8167         Also removes the handle_store() call from start_wrapper, because
8168         threads are now always created suspended and there is no longer a
8169         race between the parent and child threads to store the info.
8170
8171 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8172
8173         * image.c: explain the #- heap issue in a message, hopefully
8174         avoiding FAQs on mono-list.
8175
8176 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8177
8178         * icall.c:
8179         (GetEntryAssembly): if the domain has not invoked
8180         AppDomain.ExecuteAssembly yet, return the assembly of the default
8181         AppDomain.
8182
8183 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8184
8185         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8186
8187 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8188
8189         * metadata.c, reflection.c: simple speedup to type hash
8190         and equals code.
8191
8192 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8193
8194         * image.c, image.h, class.c, assembly.c: move module loading
8195         to MonoImage. When loading metadata, consider alignemnet from
8196         the start of metadata, not from the metadata address in memory.
8197
8198 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8199
8200         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8201         AssemblyBuilder objects. Factored out custom attribute creation into
8202         a separate function.
8203         (create_custom_attr): new function to create custom attributes.
8204
8205 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8206
8207         * Makefile.am: Got tired of typing the full pathname to pedump.
8208         Until there is another option, am installing this.
8209
8210 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8211
8212         * class.c (class_compute_field_layout): always set field->parent 
8213         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8214
8215 2003-02-11  Dick Porter  <dick@ximian.com>
8216
8217         * threads-types.h:
8218         * monitor.c: Rewrote Monitor, making lock much faster and
8219         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8220         creates them as needed.
8221
8222         * exception.c: Added SynchronizationLockException
8223
8224         * threads.c: Deleted old Monitor implementation.  The new one is
8225         in a new file.
8226
8227 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8228
8229         * class.c: handled TypedReference type code. Set the correct size for
8230         class data. Setup interface_offsets for interface classes, too.
8231
8232 2003-02-09  Martin Baulig  <martin@ximian.com>
8233
8234         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8235
8236 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8237
8238         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8239         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8240         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8241         * verify.c: check for code that runs after the end of the method.
8242
8243 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8244
8245         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8246         "System.Math::Round2".
8247         * sysmath.h: Added Floor, Round and Round2 definitions.
8248         * sysmath.c: Modified certain functions that were not 100% compliant
8249         with MS.NET (math precision) and added the implementation of Floor,
8250         Round and Round2.
8251
8252 2003-02-07  Martin Baulig  <martin@ximian.com>
8253
8254         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8255
8256 2003-02-07  Martin Baulig  <martin@ximian.com>
8257
8258         * debug-mono-symfile.c: Reflected latest symwriter changes.
8259         (mono_debug_create_mono_symbol_file): Removed.
8260         (mono_debug_open_mono_symbol_file): Take an argument which
8261         specifies whether to create a dynamic symbol file.
8262
8263 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8264
8265         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8266
8267 2003-02-05  Martin Baulig  <martin@ximian.com>
8268
8269         * reflection.c (mono_image_build_metadata): Make this public,
8270         protect it against being called multiple times, don't create
8271         resources and don't build the compressed metadata here.
8272         (mono_image_create_pefile): Do this here.
8273
8274         * icall.c
8275         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8276
8277 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8278
8279         * socket-io.c: fixed bug #36322.
8280
8281 2003-02-06  Piers Haken <piersh@friskit.com>
8282
8283         * appdomain.[ch]:
8284         * class.h:
8285         * debug-mono-symfile.c:
8286         * icall.c:
8287         * loader.c:
8288         * mono-config.c:
8289         * monosn.c:
8290         * reflection.c:
8291         * socket-io.c: warning cleanups
8292
8293 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8294
8295         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8296         function. works like remoting invoke, but does a check for the Proxy first.
8297
8298 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8299
8300         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8301
8302 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8303
8304         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8305         array of pointers.
8306         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8307         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8308
8309         * object.c (mono_store_remote_field_new): used by the new jit
8310         instead of mono_store_remote_field
8311         (mono_load_remote_field_new): used by the new jit
8312         instead of mono_load_remote_field
8313
8314 2003-02-05  Patrik Torstensson
8315
8316         * appdomain.c: changed unload to take the domain id instead
8317         of domain
8318         
8319         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8320
8321
8322 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8323
8324         * appdomain.c: don't look for assemblies in ApplicationBase if
8325         PrivateBinPathProbe is set.
8326
8327 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8328
8329         * object.c: make the first argument in main_args contain the absolute
8330         path to the assembly. Fixes bug #37511.
8331
8332 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8333
8334         * icall.c: get correct UTC offset for countries not using daylight
8335         time saving. Fixes bug #30030.
8336
8337 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8338
8339         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8340         and 1 are the family).
8341
8342 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8343
8344         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8345
8346         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8347
8348 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8349
8350         * reflection.c: added support for SignatureHelper tokens, which is
8351         needed by the Calli opcode.
8352
8353         * reflection.h: track changes to SignatureHelper class.
8354
8355         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8356
8357 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8358
8359         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8360
8361 2003-02-03  Patrik Torstensson
8362         * appdomain.[c|h], domain.c : 
8363          - Added support for getting a domain via domain id
8364          - Support for setting and getting domain from System.AppDomain 
8365            (used in cross appdomain channel)
8366          - Added support for get/set for a MonoAppContext on a thread 
8367            (Context class in System.Runtime.Remoting.Contexts),
8368          - Removed hack in Get/SetData and ExecuteAssembly.
8369         
8370         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8371         the managed world to get control when a proxy is created.
8372
8373         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8374         
8375 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8376
8377         * icall.c
8378         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8379         Populate the codebase field as well.
8380
8381 2003-02-02  Martin Baulig  <martin@ximian.com>
8382
8383         * debug-mono-symfile.c
8384         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8385         (mono_debug_symfile_add_method): Allow interncalls.
8386
8387 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8388
8389         * icall.c: throw parse exception if strtod fails or the string is empty.
8390
8391 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8392
8393         * marshal.c: handle object type separately from defined
8394         class types.
8395
8396 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8397
8398         * marshal.c: handle NATIVE_LPSTR for strings when it's
8399         explicitly specified.
8400
8401 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8402
8403         * reflection.c, reflection.h, icall.c: setup the reflection
8404         handle cache for ModuleBuilders and AssemblyBuilders.
8405
8406 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8407
8408         * reflection.c (reflection_methodbuilder_to_mono_method): set
8409         pinvoke flag
8410
8411 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8412
8413         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8414
8415 2003-01-29  Dick Porter  <dick@ximian.com>
8416
8417         * threads.c: No need for the fake_thread kludge now that Thread
8418         doesn't run a class constructor
8419         
8420 2003-01-29  Dick Porter  <dick@ximian.com>
8421
8422         * threads.c: Use g_direct_hash instead of the rather bogus
8423         g_int_hash
8424
8425 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8426
8427         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8428         (fix pinvoke12.exe)
8429         (mono_marshal_get_struct_to_ptr): generate valid IL code
8430         (mono_marshal_get_ptr_to_struct): generate valid IL code
8431         (*): correctly set sig->pinvoke, we need to memdup the signature
8432         to do that
8433
8434 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8435
8436         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8437         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8438
8439 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8440
8441         * profiler.c: provide more callers information.
8442
8443 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8444
8445         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8446
8447         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8448
8449         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8450
8451 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8452
8453         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8454         exception instead of going into an infinite loop on dates which it 
8455         can't yet handle.
8456
8457         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
8458         out-of-range exception if needed.
8459
8460         * class.c (mono_class_setup_vtable): allow a virtual method to provide
8461         an implementation for an interface method and to override an inherited
8462         method at the same time. 
8463         Imagine a scenario when a virtual method is used to override a
8464         virtual abstract method in a parent class, and this same method 
8465         provides an implementation for an method inherited from an interface. 
8466         In this case, the interface resolution code will set im->slot, which 
8467         means that the virtual method override pass will skip this method 
8468         which means a pointer to the abstract method inherited from the parent
8469         will remain in the vtable of this non-abstract class.
8470
8471         * class.c: (mono_class_setup_vtable): continue search for a real 
8472         method if only an abstract method is found.     
8473
8474 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8475
8476         * reflection.c: add size to encoding for ByValStr and ByValArray
8477         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
8478
8479 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8480
8481         * class.c (mono_class_setup_vtable): pass the override info as an
8482         argument.
8483
8484         * class.c (mono_class_setup_vtable): set the slot of overriding methods
8485         correctly.
8486         
8487         * reflection.c (ensure_runtime_vtable); add support for method 
8488         overrides.
8489         
8490 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8491
8492         * reflection.c (resolution_scope_from_image): Hack to work to work with
8493         dynamic assemblies.
8494
8495         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
8496         added a 'force_ref' argument to force this function to allways return 
8497         a TypeRef. This is needed by mono_image_get_memberref_token ().
8498         
8499 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8500
8501         * reflection.c (mono_image_get_type_info): interfaces really don't have
8502         a parent.
8503
8504         * reflection.c (mono_image_basic_init): fill out missing fields of
8505         image structure.
8506
8507         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
8508         dynamic assemblies. This is required so dynamic assemblies show up in
8509         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
8510         Type::GetType() etc. This is consistent with MS behaviour.
8511
8512         * image.c image.h reflection.c: add newly created classes to the name 
8513         cache so mono_class_get () will find them.      
8514
8515 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8516
8517         First part of changes to get IKVM.NET running under mono.
8518         
8519         * appdomain.h, appdomain.c: added new function 
8520         mono_domain_try_type_resolve() which will emit TypeResolve events. 
8521         This function will call AppDomain::DoTypeResolve to do the actual work.
8522
8523         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
8524         moved existing code dealing with dynamic tokens to a new function 
8525         called mono_reflection_lookup_dynamic_token (). This function will 
8526         raise TypeResolve events when appropriate. Since reflection.c is not 
8527         part of libmetadata, a new hook function called 
8528         mono_lookup_dynamic_token() is added to class.c which will call this.
8529
8530         * assembly.h assembly.c: make the invoke_load_hook function public,
8531         so it can be called for dynamic assemblies.
8532
8533         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
8534
8535         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
8536         type isn't found.
8537
8538         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
8539         MonoGHashTable, since it contains pointers to objects which the GC 
8540         needs to track.
8541
8542         * assembly.c (search_loaded): remove unused variable.
8543         
8544 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
8545
8546         * object.c: fixed issue exposed by gcc-generated IL programs
8547         that use RVA data for pointers.
8548
8549 2003-01-25  Martin Baulig  <martin@ximian.com>
8550
8551         * threads.c (start_wrapper): Moved the initialization of
8552         `start_func' above the mono_new_thread_init() call to which we
8553         pass it as argument.
8554
8555 2003-01-24  Martin Baulig  <martin@ximian.com>
8556
8557         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
8558         the MonoThread pointer.
8559
8560 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
8561
8562         * icall.c: Rename `PowImpl' to Pow.
8563
8564 2003-01-23  Dick Porter  <dick@ximian.com>
8565
8566         * threads.c (start_wrapper): Create a Thread object if needed, so
8567         the Main() thread can do the class initialisation in a subthread
8568         that has been set up to allow managed code execution.
8569
8570         Pass the thread ID instead of the MonoThread pointer to the thread
8571         start and attach callbacks.  This change is required, because the
8572         jit thread start callback must be called _before_ the Thread
8573         object can be created.
8574         
8575         (mono_thread_init): Removed much object creation code that is no
8576         longer needed.  No managed code is called from here now.
8577
8578         * object.c (mono_runtime_exec_managed_code): Create a subthread
8579         for Main, and call back to the runtime to use it.
8580         Set the exit code when Main exits.
8581
8582         * gc.c: Make sure domain finalisation happens in a subthread.
8583         Re-enable threaded GC, fixing bug 31333 (again).
8584
8585         * environment.c: System.Environment internall calls (so far just
8586         ExitCode is here, the others are still in icall.c)
8587
8588         * appdomain.c (mono_runtime_cleanup): All threads running managed
8589         code should have finished before mono_runtime_cleanup() is
8590         reached, so no need to clean up threads.
8591
8592 2003-01-22  Martin Baulig  <martin@ximian.com>
8593
8594         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
8595         `gpointer func' arguments.      
8596         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
8597         but added `MonoThread *thread' argument.
8598         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
8599
8600         * threads.c (mono_new_thread_init): Added `gpointer func' argument
8601         and pass it to the mono_thread_start_cb callback.
8602         (mono_install_thread_callbacks): New public function to install a
8603         set of callbacks which are set by the debugger.
8604         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
8605
8606 2003-01-22  Martin Baulig  <martin@ximian.com>
8607
8608         * Makefile.am: Install debug-mono-symfile.h.
8609
8610 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
8611
8612         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
8613
8614 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
8615
8616         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
8617         * class.c (mono_ptr_class_get): correctly set access levels of pointers
8618         (mono_array_class_get): correctly set access levels of arrays
8619
8620 2003-01-20      Patrik Torstensson
8621         * image.h (MonoAssemblyName): changed major, minor, build, revision
8622         from signed to unsigned.
8623
8624 2003-01-20  sean kasun <skasun@azstarnet.com>
8625
8626         * reflection.c (load_cattr_value): Now this handles
8627         MONO_TYPE_SZARRAY.  Fixes bug #35629
8628
8629 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
8630
8631         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
8632         integer value
8633
8634 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8635
8636         * decimal.c: fixed bug #26056.
8637
8638 2003-01-17  Martin Baulig  <martin@ximian.com>
8639
8640         * gc.c: Raise an ExecutionEngineException instead of using g_error().
8641
8642 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8643
8644         * exception.[ch]:
8645         (mono_get_exception_type_initialization): new function.
8646
8647         * object.c: throw a TypeInitializationException when an exception is
8648         thrown invoking the class constructor.
8649
8650 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8651
8652         * reflection.c: fixed attribute reading.
8653
8654 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8655
8656         * icall.c:
8657         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
8658         provided, look for the type in the calling assembly and then in
8659         mscorlib; if the assembly name is provided, only try that one.
8660
8661 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
8662
8663         * object.c: register the vtable before there is a chance it's
8664         queried again recursively.
8665
8666 2003-01-13  Duncan Mak  <duncan@ximian.com>
8667
8668         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
8669         gc-internal.h. 
8670         
8671 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
8672
8673         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
8674
8675 2003-01-11  Martin Baulig  <martin@ximian.com>
8676
8677         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
8678         this to 20 for the release.
8679
8680 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
8681
8682         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
8683
8684         * loader.c (mono_method_get_marshal_info): bug fix
8685
8686         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
8687         structures with explicit layout
8688
8689 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
8690
8691         * profiler.c: made the output more readable (and sorted). 
8692         Added caller information for the allocation profiler.
8693
8694 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
8695
8696         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
8697
8698 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8699
8700         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
8701         to get value types.
8702         
8703 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
8704
8705         * object.c, profiler.h, profiler.c, profiler-private.h:
8706         Added object allocation profiler.
8707
8708 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
8709
8710         * reflection.h, reflection.c: handle global methods.
8711         Compress blob entries.
8712
8713 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
8714
8715         * marshal.c: fix compilation.
8716
8717 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
8718
8719         * loader.c (mono_method_get_marshal_info): impl.
8720
8721         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
8722
8723 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8724
8725         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
8726         for reference types.
8727
8728 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
8729
8730         * loader.c: fixed off by one error in loaded parameter names.
8731
8732 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
8733
8734         * marshal.c (mono_marshal_get_icall_wrapper): like
8735         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
8736         instead of a MonoMethod.
8737
8738 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8739
8740         * decimal.c: fixed bug #36537.
8741
8742 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
8743
8744         * marshal.c: throw a missing method exception if a
8745         P/Invoke method is not found.
8746
8747 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
8748
8749         * icall.c: allow a null this for constructors.
8750
8751 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
8752
8753         * icall.c: raise the proper exceptions if the arguments to the
8754         internal Invoke are incorrect.
8755
8756 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
8757
8758         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
8759
8760 2003-01-03  Martin Baulig  <martin@ximian.com>
8761
8762         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
8763
8764 2002-12-31  Martin Baulig  <martin@ximian.com>
8765
8766         * debug-mono-symfile.c: Completely rewrote the type section.
8767         Instead of using individual malloc()ed fields, we use one big
8768         continuous memory area and offsets into this area.
8769         See the comments in the source code for details.
8770
8771 2002-12-30  Martin Baulig  <martin@ximian.com>
8772
8773         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
8774
8775 2002-12-30  Martin Baulig  <martin@ximian.com>
8776
8777         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
8778         line number table in this data blob instead of using an external
8779         pointer.
8780
8781 2002-12-28  Martin Baulig  <martin@ximian.com>
8782
8783         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
8784
8785 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
8786
8787         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
8788         as a boxed return type.
8789
8790 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
8791
8792         * appdomain.c
8793         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
8794         g_build_filename to properly get separators on the filename created.
8795
8796         * object.h: Small change, introduce MonoMarshalByRefObject to
8797         track the layout of that structure in the C# universe as we make
8798         changes there.
8799
8800 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
8801
8802         * object.c: removed assert to allow static fields on interfaces.
8803         * loader.c: a TypeSpec may be used for any type, not just arrays.
8804
8805 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
8806
8807         * class.c, class.h: added mono_class_array_element_size ().
8808         Ignore static methods in interfaces.
8809
8810 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8811
8812         * threads.c: fixed the build under cygwin.
8813
8814 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
8815
8816         * reflection.c: handle nullref constants. Allocate keys for
8817         reflection handles with the GC.
8818
8819 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
8820
8821         * threads.c, threads.h: added mono_thread_get_abort_signal()
8822         to get a suitable signal for thread abort.
8823
8824 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
8825
8826         * metadata.c: fix handling of ExportedType table.
8827
8828 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8829
8830         * icall.c: added WriteWindowsDebugString internal call.
8831
8832 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8833
8834         * reflection.h: added fields to match C# implementation.
8835
8836 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8837
8838         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
8839
8840 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
8841
8842         * gc.h, gc-internal.h: Rename header for GC internal calls to
8843         gc-internal.h from gc.h as to not clash with Boehm GC having its
8844         header installed as <gc.h> in outside include paths.
8845         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
8846         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
8847
8848 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8849
8850         * icall.c: assign minor, build and revision in FillName.
8851
8852 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
8853
8854         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
8855         Added support for running code generated by Reflection.Emit.
8856
8857 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8858
8859         * appdomain.c: check for NULL argument in LoadFrom.
8860
8861 2002-12-10  Dick Porter  <dick@ximian.com>
8862
8863         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
8864
8865 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8866
8867         * appdomain.c: fix buglet when building exe file name.  Handle full
8868         assembly name (needed after latest changes to AssemblyName).
8869         * image.c:
8870         (mono_image_close): free some hashtables.
8871
8872 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
8873
8874         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
8875         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
8876         on some systems (redhat 7.3) 
8877
8878 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
8879
8880         * threads.c: delete the critical section of a sync block,
8881         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
8882
8883 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
8884
8885         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
8886
8887 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8888
8889         * appdomain.[ch]: handle the assembly preload event to try loading the
8890         assemblies using the paths we have in the current domain.
8891
8892         * assembly.[ch]: created an assembly preload hook that is called to try
8893         loading the assembly by other means that the ones provided here.
8894
8895         * domain.c: initialize the domain search path.
8896
8897         From now on, assemblies (TODO: except corlib and System) are loaded
8898         according to these rules when using mono_assembly_load ():
8899
8900                 1. It tries to load the assembly from the ApplicationBase
8901                 of the current domain appending .dll and .exe (TODO: have to
8902                 try loading from name/name.dll and name/name.exe).
8903
8904                 2. It tries the search path specified in PrivateBinPath for the
8905                 current domain (if any).
8906
8907                 3. Previous behavior.
8908
8909 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
8910
8911         * icall.c: implemented GetInterfaceMap() related icall.
8912         * domain.c, loader.h: load MethodInfo in mono_defaults.
8913
8914 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
8915
8916         * gc.c: disable the finalizer thread for now, untill all the issues
8917         with it are resolved.
8918
8919 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
8920
8921         * string-icalls.c: handle embedded nulls in string ctor when the
8922         length is specified.
8923
8924 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
8925
8926         * class.c: look for explicit interface implementation in parent
8927         classes, too.
8928
8929 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
8930
8931         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
8932
8933 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
8934
8935         * gc.c: protect handles with a critical section.
8936
8937 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8938
8939         * icall.c:
8940         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
8941         parameters. If no assembly specified, try getting the type from all
8942         the assemblies in the current domain, else, load the assembly and get
8943         the type from it.
8944
8945 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8946
8947         * marshal.c: applied patch from Aleksey Demakov that fixes
8948         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
8949
8950 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8951
8952         * icall.c: fixed get_location.
8953
8954 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
8955
8956         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
8957         declarations to make it work with older gcc. 
8958
8959         * loader.c (mono_get_method): set signature->pinvoke for native calls
8960
8961 2002-11-20  Dick Porter  <dick@ximian.com>
8962
8963         * threads.c (mono_thread_init): Set the main thread's handle
8964
8965 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
8966
8967         * gc.c: allow compilation without GC support. Changed to match the
8968         mono coding style.
8969
8970 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
8971
8972         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
8973
8974 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
8975
8976         * reflection.c: set a public key token on the core assemblies.
8977
8978 2002-11-18  Dick Porter  <dick@ximian.com>
8979
8980         * threads.c: Split out some thread initialisation so that other
8981         files can set the start callback function.
8982
8983         * gc.c: Run finalisers in a separate thread, to avoid stack
8984         overflow.  Fixes bug 31333.
8985
8986         * appdomain.c: Set up GC finalisation thread.
8987
8988         * reflection.c: 
8989         * object.c: 
8990         * domain.c: Use gc.h macros for GC_malloc
8991         
8992 2002-11-15  Dick Porter  <dick@ximian.com>
8993
8994         * threadpool.c: 
8995         * threads.c:
8996         * appdomain.c: Removed mono_runtime_init_with_attach(),
8997         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
8998         merging the extra parameter with the existing function.  Removed
8999         unneeded code in mono_thread_attach().
9000
9001 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9002
9003         * image.c (mono_image_loaded_by_guid): a method to get loaded
9004         images by guid. 
9005         (load_metadata_ptrs): we store the guid as string.
9006
9007 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9008
9009         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9010
9011         * metadata.c (mono_guid_to_string): imported method form Zoltan
9012         Varga (slightly modified)
9013
9014         * assembly.c (mono_assembly_open): load precompiled code
9015
9016         * loader.h (MonoMethod): we store the method token for use in the
9017         aot compiler. 
9018
9019 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9020
9021         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9022         the hook function called when an assembly is loaded.
9023         
9024         * domain.c: Modified file.
9025         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9026
9027         Fixes bug #33196.
9028
9029 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9030
9031         * reflection.c: Map PEFileKind to the value expected by the WinNT
9032         image loader. 
9033
9034 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9035
9036         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9037         Read until the buffer is filled completely.
9038
9039 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9040
9041         * icall.c: implemented MonoType.InternalGetEvent ().
9042
9043 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9044
9045         * appdomain.c: implemented InitAppDomainSetup. Delayed
9046         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9047         the entry_assembly.
9048
9049         * assembly.c: base_dir is now an absolute path ending with
9050         G_DIR_SEPARATOR.
9051
9052         * icall.c: modified get_location according to the above changes.
9053
9054         * object.c: init AppDomain.SetupInformation for the default domain after
9055         we have the entry assembly.
9056
9057         * domain.c: when unloading a domain, setup = NULL.
9058
9059 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9060
9061         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9062
9063 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9064
9065         * object.h, object.c: introduced mono_object_get_virtual_method ()
9066         to lookup the method invoked on an object when a callvirt is done on
9067         a method.
9068         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9069
9070 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9071
9072         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9073         current domain when loaded an assembly and failed to load it.
9074
9075         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9076
9077 2002-10-31  Dick Porter  <dick@ximian.com>
9078
9079         * icall.c: 
9080         * file-io.h: 
9081         * file-io.c: Return the error status in a parameter, as the
9082         GetLastError() value has long since been blown away if we try and
9083         look it up in a subsequent internal call invocation.  Delete the
9084         GetLastError() internal call, because it's useless.
9085
9086 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9087
9088         * class.[ch]: added cast_class to fix bug 29517
9089
9090 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9091
9092         * marshal.c: create valid IL code in the filter clause:
9093         the new JIT is less forgiving:-)
9094
9095 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9096
9097         * icall.c: removed get_property internal call.
9098
9099 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9100
9101         * appdomain.h domain.c: Added an ID to appdomains.
9102         
9103         * threads.c threads.h icall.c: Implement icall
9104         Thread:GetDomainID(), and remove unused icall 
9105         CurrentThreadDomain_internal.
9106
9107 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9108
9109         * icall.c: Don't recurse through the base types in GetConstructor.
9110         Fixes bug #32063. 
9111
9112 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9113
9114         * mempool.h, mempool.c: added mono_mempool_empty() and
9115         mono_mempool_stats().
9116
9117 2002-10-23  Dick Porter  <dick@ximian.com>
9118
9119         * file-io.c: 
9120         * file-io.h: 
9121         * icall.c: Added MonoIO.GetFileType internal call
9122
9123 2002-10-17  Dick Porter  <dick@ximian.com>
9124
9125         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9126         delegate semaphore before waiting for all threads to finish,
9127         because new threads can also call async delegates.  Fixes bug
9128         32004.
9129
9130         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9131         of 3 seconds, in case another async job is queued.  (This part is
9132         needed because the bug fix reintroduced the 3s exit lag.)  This
9133         makes the mono_runtime_shutdown flag superfluous.
9134
9135 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9136
9137         * reflection.c: include ehader size in method section headers.
9138         Really check for suplicated modules entries.
9139
9140 2002-10-17  Martin Baulig  <martin@gnome.org>
9141
9142         * debug-mono-symfile.c: Added back support for locals.
9143
9144 2002-10-14  Martin Baulig  <martin@gnome.org>
9145
9146         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9147         MONO_TYPE_VOID.
9148
9149 2002-10-14  Martin Baulig  <martin@gnome.org>
9150
9151         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9152         mono_class_get() instead of looking in the class cache. 
9153
9154 2002-10-13  Martin Baulig  <martin@gnome.org>
9155
9156         * debug-mono-symfile.c: Set version number to 28, include the
9157         signature in method names.
9158
9159 2002-10-13  Martin Baulig  <martin@gnome.org>
9160
9161         * debug-mono-symfile.h: Set version number to 27.
9162
9163 2002-10-11  Martin Baulig  <martin@gnome.org>
9164
9165         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9166
9167 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9168
9169         * metadata.c, metadata.h: added helper function to allocate signatures.
9170
9171 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9172
9173         * icall.c: added internal call to get the location of machine.config.
9174
9175 2002-10-08  Martin Baulig  <martin@gnome.org>
9176
9177         * debug-mono-symfile.c: Ignore classes with a pending init for the
9178         moment.
9179
9180 2002-10-03  Dick Porter  <dick@ximian.com>
9181
9182         * threads.c: Freebsd pthread_t is a pointer
9183
9184 2002-10-03  Dick Porter  <dick@ximian.com>
9185
9186         * socket-io.c: Implemented GetHostName_internal
9187
9188 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9189
9190         * mono-config.c:
9191         (mono_config_parse_file): don't leak the text.
9192
9193 2002-10-02  Martin Baulig  <martin@gnome.org>
9194
9195         * debug-mono-symfile.c: Added support for methods.
9196
9197 2002-10-01  Martin Baulig  <martin@gnome.org>
9198
9199         * debug-mono-symfile.c: Don't emit methods and line numbers for
9200         the dynamic symbol file, just write the type table.  We can easily
9201         have an external helper program which creates a symbol file for an
9202         IL file.        
9203
9204 2002-10-01  Dick Porter  <dick@ximian.com>
9205
9206         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9207         Only add the handle to the cleanup array when we're about to
9208         launch the thread.  Bug 31425 deadlocked when the test was run on
9209         mono under w32.
9210
9211 2002-10-01  Martin Baulig  <martin@gnome.org>
9212
9213         * debug-mono-symfile.c: Added support for properties.
9214
9215 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9216
9217         * reflection.c: unaligned store fix from Mark Crichton
9218         <crichton@gimp.org>.
9219
9220 2002-09-27  Martin Baulig  <martin@gnome.org>
9221
9222         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9223         New interncall.
9224
9225 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9226
9227         * assembly.h, assembly.c: use a sane API to hook into the assembly
9228         loading process instead of a useless special-purpouse hack
9229         (ngen needs a hook, too, for example).
9230
9231 2002-09-27  Dick Porter  <dick@ximian.com>
9232
9233         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9234         io-layer can set up some process handle info.  Not needed on w32,
9235         but doesn't hurt either.
9236
9237         * process.c: Pass the program name in the second parameter to
9238         CreateProcess, so the path is searched.  Include the working
9239         directory. Implemented process name, process enumeration, and some
9240         process detail internal calls.
9241         
9242         * icall.c: Added internal calls for process lookup, and some
9243         process details
9244
9245 2002-09-26  Martin Baulig  <martin@gnome.org>
9246
9247         * assembly.c (mono_install_open_assembly_hook): New global
9248         function to install a function to be invoked each time a new
9249         assembly is loaded.
9250         (mono_assembly_open): Run this callback function if set.
9251
9252         * debug-mono-symfile.c: Put back line numbers for the dynamic
9253         symbol file and also record the .il file as source file.  This
9254         allows us to install the temporary symbol file as `file.dbg' just
9255         like a compiler-generated one.
9256
9257 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9258
9259         * Corrected typo in gc.c (BOHEM vs BOEHM).
9260
9261 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9262
9263         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9264         GetProperties. Also avoid calling g_slist_length in GetProperties and
9265         GetMethods.
9266
9267 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9268
9269         * reflection.c: avoid unaligned stores (bug spotted by
9270         Mark Crichton  <crichton@gimp.org>).
9271
9272 2002-09-25  Martin Baulig  <martin@gnome.org>
9273
9274         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9275         instead of guint64 for addresses and added prologue/epilogue info.
9276
9277 2002-09-25  Martin Baulig  <martin@gnome.org>
9278
9279         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9280         store line number info.  For the dynamic symbol file, we only need
9281         to provide the JIT generated dynamic line number info for the dynamic
9282         symbol file.
9283
9284 2002-09-25  Martin Baulig  <martin@gnome.org>
9285
9286         * debug-mono-symfile.h: Incremented version number.
9287
9288 2002-09-24  Martin Baulig  <martin@gnome.org>
9289
9290         * class.c (mono_debugger_class_init_func): New global function
9291         pointer variable.
9292         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9293         call it.
9294
9295         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9296         function.  This is called via the mono_debugger_class_init_func
9297         hook to add all types to the dynamic type table.
9298         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9299         from its metadata token.
9300
9301         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9302         New interncall for the debugger.
9303
9304 2002-09-24  Nick Drochak <ndrochak@gol.com>
9305
9306         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9307         before using it in case it is null.
9308         
9309 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9310
9311         * metadata.c: allow custom modifiers in local var signatures
9312         (bug spotted by Zoltan Varga).
9313
9314 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9315
9316         * class.c: deal with the <Module> class that may have a NULL vtable.
9317         Eliminate warnings.
9318
9319 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9320
9321         * image.c, image.h: more strong name helpers.
9322         * monosn.c: more work: convert pem keys to cryptoapi format.
9323
9324 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9325
9326         * string-icalls.c: speedup IndexOf.
9327
9328 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9329
9330         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9331
9332 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9333
9334         * icall.c: cleanup: use mono_object_domain ().
9335
9336 2002-09-23  Martin Baulig  <martin@gnome.org>
9337
9338         * debug-mono-symfile.c: Improved type support.
9339
9340 2002-09-22  Martin Baulig  <martin@gnome.org>
9341
9342         * debug-mono-symfile.c: Added support for reference types and strings.
9343
9344 2002-09-22  Martin Baulig  <martin@gnome.org>
9345
9346         * debug-mono-symfile.c: Started to work on the type table.
9347
9348 2002-09-21  Martin Baulig  <martin@gnome.org>
9349
9350         * debug-mono-symfile.c: Largely reworked the symbol table format.
9351         The symbol table is now incrementally updated each time a new
9352         method is added.  We're now also using our own magic and version
9353         so that you don't need to recompile all your classes if the
9354         dynamic table changes.
9355         (mono_debug_update_mono_symbol_file): Removed.
9356         (mono_debug_symfile_add_method): New function to add a method.
9357
9358 2002-09-21  Martin Baulig  <martin@gnome.org>
9359
9360         * icall.c
9361         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9362         New interncall.
9363
9364         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9365         New interncall to get a method from its metadata token.
9366
9367 2002-09-21  Martin Baulig  <martin@gnome.org>
9368
9369         * debug-mono-symfile.c: Create type table.
9370
9371 2002-09-20  Martin Baulig  <martin@gnome.org>
9372
9373         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9374
9375 2002-09-20  Martin Baulig  <martin@gnome.org>
9376
9377         * debug-mono-symfile.c: Provide information about params and locals.
9378
9379 2002-09-20  Martin Baulig  <martin@gnome.org>
9380
9381         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9382         New interncall.
9383
9384         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9385         interncall to get a method from its metadata token.
9386
9387 2002-09-20  Martin Baulig  <martin@gnome.org>
9388
9389         * debug-mono-symfile.c: Added a few checks for method->header
9390         being non-NULL.  This should never happen, but for the moment
9391         let's use a g_warning() rather than a g_assert().
9392
9393 2002-09-19  Mark Crichton  <crichton@gimp.org>
9394
9395         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9396         even if support for it isn't present.  Added an #ifdef to fix this.
9397
9398         * socket-io.c: Added checks back for Solaris support.
9399
9400 2002-09-19  Martin Baulig  <martin@gnome.org>
9401
9402         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9403         changes in the symbol file format.
9404
9405 2002-09-18  Martin Baulig  <martin@gnome.org>
9406
9407         * debug-mono-symfile.c: Set version number to 21.
9408
9409 2002-09-18  Dick Porter  <dick@ximian.com>
9410
9411         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9412         on netbsd.  Fixes bug 30051.
9413
9414 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9415
9416         * reflection.c:
9417         (set_version_from_string): little fix.
9418
9419 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9420
9421         * monosn.c, Makefile.am: added strong name utility.
9422         * reflection.h, reflection.c: implemented delayed signing,
9423         locale, version and hash id assembly attributes.
9424
9425 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9426
9427         * loader.c, metadata.c: load param attributes in signatures.
9428
9429 2002-09-16  Martin Baulig  <martin@gnome.org>
9430
9431         * debug-mono-symfile.c: Added string table with all method names.
9432
9433 2002-09-14  Martin Baulig  <martin@gnome.org>
9434
9435         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9436         fast method lookup.
9437
9438 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9439
9440         * reflection.c: record the public key token of referenced assemblies.
9441
9442 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9443
9444         * image.c, image.h: added functions to get the strong name and the
9445         public key of an assembly.
9446         * pedump.c: use them.
9447
9448 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9449
9450         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9451
9452 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9453
9454         * marshal.c (mono_marshal_get_managed_wrapper): Added
9455         MONO_TYPE_BOOLEAN 
9456
9457 2002-09-11  Martin Baulig  <martin@gnome.org>
9458
9459         * gc.c: Call GC_unregister_disappearing_link() on all links when
9460         finalizing them, this is necessary to aviod a crash in boehm's
9461         finalize handler.
9462
9463 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9464
9465         * gc.c: handle GetTarget for finalized objects spotted and fixed by
9466         nick@chemlab.org.
9467
9468 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9469
9470         * icall.c: implemented MonoType::Module.
9471         * reflection.c, reflection.h: mono_module_get_object () from
9472         Tomi Pakarinen <tomi.pakarinen@welho.com>.
9473
9474 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9475
9476         * icall.c: ignore overridden methods in GetMethods ().
9477         Fix for FieldInfo::SetValue().
9478         * object.c: handle float/double in runtime invoke.
9479
9480 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9481
9482         * object.c: allow a constructor to be called again on an object.
9483
9484 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9485
9486         * class.h, class.c: move field layout code to it's own function and
9487         export it. Get an interface id earlier. Move fields in MonoClass
9488         so they are more cache friendly and align the bitfields.
9489         * loader.c: temporary handle get_param_names() for a runtime method.
9490         * reflection.c, reflection.h: more code to handle runtime creation of
9491         types.
9492
9493 2002-09-09  Martin Baulig  <martin@gnome.org>
9494
9495         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
9496         signature with the pinvoke field being set for the actual call.
9497
9498 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9499
9500         * icall.c: removed some unused icalls. Start of map of glib charsets
9501         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
9502
9503 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9504
9505         * debug-helpers.c: break infinite loop (found and fixed by
9506         Holger Arnold <harnold@gmx.de>).
9507
9508 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9509
9510         * icall.c: target may be null in create_delegate.
9511
9512 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9513
9514         * marshal.c: handle a boolean return type.
9515
9516 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9517
9518         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
9519
9520 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9521
9522         * gc.c: fix weakreferences.
9523
9524 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9525
9526         * icall.c: added icall to get default codepage.
9527
9528 2002-09-03  Dick Porter  <dick@ximian.com>
9529
9530         * threads.h: 
9531         * threads.c: Use MonoThread instead of MonoObject where
9532         apropriate.
9533
9534         Store running thread objects in a hash table, so that we have all
9535         the info to hand when waiting for them to finish
9536         (means we don't need OpenThread() any more, so mingw builds should
9537         be fully functional again.)
9538
9539         * verify.c:
9540         * object.h: Added thread ID to MonoThread
9541
9542 2002-09-03  Martin Baulig  <martin@gnome.org>
9543
9544         * icall.c (System.Reflection.Assembly::get_location): New interncall.
9545
9546 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9547
9548         * icall.c: fixed leak in get_temp_path. Thanks lupus.
9549
9550 2002-09-03  Martin Baulig  <martin@gnome.org>
9551
9552         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
9553         argument to store the end address of the disassembled instruction.
9554
9555         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
9556         here from debug-symfile.h.
9557         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
9558         JIT into this struct.
9559         (MonoSymbolFile): Added `char *image_file' field.
9560         (MonoDebugGetMethodFunc): Removed.
9561         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
9562         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
9563         (mono_debug_find_method): New method.
9564
9565         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
9566         create a full symbol file.
9567         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
9568         and static symbol files.
9569         (mono_debug_find_method): The symbol file keeps an internal method hash,
9570         call this to get a MonoDebugMethodInfo from a MonoMethod.
9571
9572         * debug-symfile.[ch]: Removed.
9573
9574 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
9575
9576         * image.c (do_mono_image_open): Remove linker version check.
9577
9578 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
9579
9580         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
9581         wrappers for instance methods.
9582         
9583 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9584
9585         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
9586
9587 2002-08-28  Dick Porter  <dick@ximian.com>
9588
9589         * Makefile.am: Export HOST_CC for w32 builds
9590
9591 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9592
9593         * file-io.c process.c: MonoString are null terminated, no
9594         need for mono_string_to_utf16() anymore.
9595
9596 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9597
9598         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
9599
9600 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
9601
9602         * icall.c, reflection.h: speedup System.MonoType.
9603
9604 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9605
9606         * reflection.c: allow null as the value of a string argument in
9607         custom attributes constructors.
9608
9609 2002-08-27  Martin Baulig  <martin@gnome.org>
9610
9611         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
9612         `trampoline_address' field.
9613
9614 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
9615
9616         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
9617         check (fixes bug #29486) 
9618
9619 2002-08-27  Martin Baulig  <martin@gnome.org>
9620
9621         * debug-mono-symfile.c: Changed the file format in a way that allows us
9622         open it read-only and to use a specially malloced area for all the
9623         dynamic data.  We can now also generate a symbol file on-the-fly if we're
9624         debugging IL code and there is no MCS generated symbol file for it.
9625
9626 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9627
9628         * object.c: added a define for a good string and array
9629         creation speedup (not enabled by default because we need to deal with
9630         the synch stuff).
9631
9632 2002-08-26  Martin Baulig  <martin@gnome.org>
9633
9634         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
9635         function to create a dynamic symbol file.  This is used by the
9636         debugger to create a symbol file for IL code on-the-fly.
9637
9638 2002-08-26  Martin Baulig  <martin@gnome.org>
9639
9640         * loader.c (mono_lookup_pinvoke_call): Include the error message
9641         from g_module_error() in the error message.
9642
9643 2002-08-24  Martin Baulig  <martin@gnome.org>
9644
9645         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
9646         function to update the symbol file.  The symbol file is mmap()ed
9647         writable, but private.  This allows us to install the symbol file
9648         together with the assembly.
9649
9650 2002-08-24  Martin Baulig  <martin@gnome.org>
9651
9652         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
9653         but they can read the new symbol file format which mcs is now creating.
9654
9655         * debug-symfile.c (mono_debug_find_source_location): Moved to
9656         debug-mono-symfile.c; this is now operating on the new symbol file.
9657
9658 2002-08-23  Martin Baulig  <martin@gnome.org>
9659
9660         * debug-helpers.c (mono_method_desc_from_method): New function to get
9661         a MonoMethodDesc from a MonoMethod.
9662
9663 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9664
9665         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
9666         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
9667
9668 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
9669
9670         * string-icalls.[ch]: make helper methods static.
9671
9672 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9673
9674         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
9675         types to it and to SetValueInternal.
9676
9677         * object.c: Moved handle_enum label to its proper place. This was the
9678         f... bug! ;-)
9679
9680         This time i compiled mcs and gtk-sharp and they both work.
9681
9682 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9683
9684         * icall.c: reverted partially my previous patch until 
9685         object.c:set_value handles enums correcly.
9686
9687 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9688
9689         * icall.c:
9690         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
9691         (ves_icall_System_Environment_get_MachineName): removed warning when
9692         compiling under cygwin.
9693
9694 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9695
9696         * object.c: fixed field_get_value() for reference types.
9697
9698 2002-08-22  Dick Porter  <dick@ximian.com>
9699
9700         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
9701         Don't free a buffer while it's still needed.  Patch from Jonathan
9702         Liger <Jonathan.liger@wanadoo.fr>
9703
9704 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
9705
9706         * icall.c (ves_icall_System_Environment_get_Platform): Add new
9707         internal call.
9708
9709 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
9710
9711         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
9712         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
9713
9714         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
9715         we call unmanaged code which throws exceptions.
9716
9717 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9718
9719         * appdomain.h: added per-domain entry_assembly.
9720         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
9721         arguments.
9722         * icall.c: Assembly::GetEntryAssembly icall.
9723         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
9724         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
9725
9726 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
9727
9728         * appdomain.h, gc.c: added mono_domain_finalize ().
9729
9730 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9731
9732         * object.c:
9733         (mono_print_unhandled_exception): changed g_warning by g_printerr
9734         because g_log has a 1024 characters limit (yeah, i got a big stack
9735         trace). Don't print exception name, that should be in ToString 
9736         returned string.
9737
9738 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9739
9740         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
9741         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
9742
9743 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9744
9745         * object.c:
9746         (mono_print_unhandled_exception): after previous commit, i realized
9747         that MS calls ToString on the exception. I changed this function to
9748         do that. This way we get stack_trace for free.
9749
9750 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9751
9752         * object.c:
9753         (mono_print_unhandled_exception): invoke Message property instead of
9754         getting 'message' field from Exception. Don't allocate memory for
9755         'trace' and 'message' if not needed.
9756
9757 2002-08-18  Dick Porter  <dick@ximian.com>
9758
9759         * unicode.c: Fix asserts to match Encoder.cs checks
9760
9761 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9762
9763         * marshal.c: fix unaligned store issue and a few wrong
9764         opcode argument types.
9765
9766 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9767
9768         * icall.c: added GetUninitializedObjectInternal internal call.
9769
9770 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
9771
9772         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
9773         to the right domain.
9774
9775 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
9776
9777         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
9778
9779         * class.c (class_compute_field_layout): set blittable to false for Strings
9780
9781         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
9782
9783 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9784
9785         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
9786         first chunk of code to create types at runtime. Code to
9787         handle ReflectedType/DeclaringType. Make reflection handles
9788         domain specific.
9789
9790 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
9791
9792         * class.c: set correct name in arrays.
9793
9794 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
9795
9796         * appdomain.c (mono_domain_transfer_object): make it work with
9797         valuetypes. bug fixes.
9798
9799 2002-08-12  Dick Porter  <dick@ximian.com>
9800
9801         * object.h: Rename some parameters to avoid c++ keywords (Patch
9802         from Joseph Wenninger <kde@jowenn.at>)
9803
9804 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
9805
9806         * icall.c: added icall to implement Assembly.GetFile*.
9807
9808 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9809
9810         * reflection.h, reflection.c: code to embed managed resources.
9811
9812 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9813
9814         * class.c: move all the type size stuff into
9815         class_compute_field_layout().
9816
9817 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9818
9819         * class.c: ensure enums have always the correct instance size.
9820         * unicode.c: remove wrong assert.
9821
9822 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
9823
9824         * assembly.c: fix mem corruption issue.
9825         * image.h, image.c: added mono_image_get_resource () to access
9826         managed resources.
9827         * icall.c: implemented Assembly.EntryPoint property and some
9828         Managed Resources related internalcalls.
9829
9830
9831 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9832
9833         * image.c, image.h: impemented mono_image_get_entry_point ().
9834         * appdomain.c: use mono_image_get_entry_point.
9835
9836 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
9837
9838         * reflection.c: support the object type argument when loading
9839         custom attributes.
9840
9841 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
9842
9843         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
9844         String as return type.
9845
9846 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
9847
9848         * reflection.c: fix encoding of named args for custom attrs to match
9849         the ms implementation. Read them back when instantiating custom
9850         attributes.
9851
9852 2002-08-02  Radek Doulik  <rodo@ximian.com>
9853
9854         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
9855         by Dietmar as quick fix
9856         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
9857         16 as stack size, used on more places as quick fix before Dietmar
9858         will fix it properly
9859
9860 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9861
9862         * object.h, object.c: added accessors for fields and properties.
9863
9864 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
9865
9866         * class.c, class.h: made mono_class_get_field_from_name ()
9867         loop on parent types.
9868         Added mono_class_get_property_from_name ().
9869
9870 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
9871
9872         * class.c, class.h: move the code to setup the type vtable in its own
9873         function so that it can be reused also for types created at runtime.
9874         Eliminate the "class" identifier from the header file.
9875         * reflection.c: setup the vtable for enums so that we can create
9876         objects for use in SetConstant ().
9877
9878 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
9879
9880         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
9881         instead of the delegate itself as this pointer (bug #28383)
9882
9883 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
9884
9885         * marshal.c (mono_marshal_get_managed_wrapper): added return type
9886         conversions.
9887
9888 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9889
9890         * loader.c: don't set the pinvoke bit on icalls.
9891
9892 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
9893
9894         * debug-helpers.c (mono_method_full_name): only print a number to
9895         indicate wrapper type (so that the output is more readable in traces).
9896
9897 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
9898
9899         * class.c (mono_class_init): include method override patch from Paolo
9900
9901 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
9902
9903         * icall.c: fixed GetTypeCode().
9904
9905 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
9906
9907         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
9908         use real delegate invoke function to make it work with multicast
9909         delegates (fix bug# 28291).
9910
9911 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
9912
9913         * object.c: load constant strings.
9914
9915 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9916
9917         * reflection.c: no magic numbers.
9918         * tabledefs.h: security action enum.
9919
9920 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
9921
9922         * assembly.c: fix possible memory corruption.
9923
9924 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9925
9926         * reflection.h, reflection.c: added support for linking resources.
9927         * verify.c: check we have an updated corlib.
9928
9929 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
9930
9931         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
9932         string arrays.
9933         (mono_marshal_string_array): null terminate unmanaged string arrays.
9934         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
9935
9936 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9937
9938         * icall.c: Type.GetType () can now return also types from the
9939         calling assembly.
9940
9941 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
9942
9943         * loader.h, loader.c: stack walking support.
9944         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
9945         GetCallingAssembly.
9946
9947 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
9948
9949         * marshal.c: added optimisations for blittable types 
9950
9951         * class.c (mono_array_class_get): do not set blittable attribute on arrays
9952         (mono_class_setup_mono_type): set blittable attribute for single
9953         and double.
9954
9955         * marshal.c (mono_string_utf8_to_builder): impl.
9956         (mono_string_builder_to_utf8): impl.
9957         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
9958
9959 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
9960
9961         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
9962         (mono_marshal_get_managed_wrapper): impl. byref types
9963
9964 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9965
9966         * icall.c:
9967         (search_method): don't display debug message. 
9968
9969 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
9970
9971         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
9972
9973 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
9974
9975         * appdomain.c: set the missing filename when throwing exception.
9976
9977 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
9978
9979         * metadata.c (mono_type_size): code cleanup
9980         (mono_type_stack_size): removed some test code
9981
9982 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
9983
9984         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
9985         mono_get_exception_file_not_found now.
9986
9987         * exception.c (mono_exception_from_name_two_strings): New version
9988         that will call a constructor with two string arguments. 
9989         (mono_get_exception_file_not_found): New helper routine, used to
9990         report file-not-found errors.
9991
9992 2002-07-20  Dick Porter  <dick@ximian.com>
9993
9994         * process.h:
9995         * process.c: Pass file handles to CreateProcess
9996         
9997         * icall.c:
9998         * file-io.h:
9999         * file-io.c: Implemented CreatePipe
10000
10001 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10002
10003         * metadata.c (mono_get_param_info): set alignment for value types
10004
10005 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10006
10007         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10008         Constify mono_domain_assembly_open().
10009         * loader.c: handle null namespace in icalls.
10010
10011 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10012
10013         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10014         (emit_str_to_ptr_conv): marshal object as structs
10015
10016         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10017
10018         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10019
10020 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10021
10022         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10023         (mono_marshal_get_native_wrapper): we an now return value types
10024
10025 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10026
10027         * verify.c: more checks implemented.
10028
10029 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10030
10031         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10032         (fix bug #27695)
10033         (mono_marshal_get_native_wrapper): allow byref arguments
10034         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10035         impl. PtrToStringXXX methods
10036         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10037         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10038         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10039         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10040         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10041
10042 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10043
10044         * reflection.c: fix buglet in parsing an assembly name.
10045
10046 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10047
10048         * marshal.c (emit_ptr_to_str_conv): first impl.
10049
10050 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10051
10052         * object.c, class.h: cache the vtable in the class as suggested by
10053         vargaz@freemail.hu (Zoltan Varga).
10054
10055 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10056
10057         * class.h, loader.c: added mono_field_from_token().
10058         * verify.c: first cut of type checking code.
10059
10060 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10061
10062         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10063
10064 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10065
10066         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10067         (fix bug #27782)
10068         (mono_marshal_get_remoting_invoke): impl.
10069         (mono_delegate_begin_invoke): impl.
10070         (mono_mb_emit_save_args): impl.
10071         (mono_delegate_end_invoke): impl.
10072         (mono_marshal_get_delegate_begin_invoke):
10073         (mono_marshal_get_delegate_end_invoke):
10074         (mono_marshal_get_delegate_invoke): generate a special name for
10075         those methods (including the signature) and associate them whith
10076         the delegate class. 
10077
10078 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10079
10080         * reflection.[ch]: 
10081         (mono_reflection_type_from_name): now it has a MonoImage parameter
10082         which is used as the default image to search the type in. If the image
10083         is NULL or getting the type from it fails, it defaults to corlib.
10084
10085         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10086         new parameter.
10087
10088 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10089
10090         * reflection.c: update the parameter table index.
10091
10092 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10093
10094         * domain.c: don't include the mark byte in the string hash.
10095
10096 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10097
10098         * icall.cs: icall for Type.GetTypeCode ().
10099         * verify: a couple of fixes and disabled local initialization checks.
10100
10101 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10102
10103         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10104
10105         * debug-helpers.c (mono_method_full_name): print the type of the
10106         runtime wrapper
10107
10108         * metadata.c (mono_signature_hash): a hash function for signatures
10109         (mono_signature_hash): better hash algorithm
10110
10111         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10112
10113         * debug-helpers.c (mono_method_full_name): this can now generate
10114         method names with signatures
10115
10116         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10117         method dont have this pointers.
10118
10119 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10120
10121         * reflection.c: fixup typebuilder tokens.
10122         * image.c: fix buglet.
10123         * marshal.h: remove whitespace.
10124         * metadata.h, metadata.c: reinstate code that was removed.
10125         * verify.c: handle catch directives and fix another couple of bugs.
10126
10127 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10128
10129         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10130         (mono_marshal_get_native_wrapper): make it comp. with the old code
10131         (mono_marshal_get_native_wrapper): support boolean
10132         (mono_marshal_get_managed_wrapper): support more types
10133
10134 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10135
10136         * class.c (class_compute_field_layout): compute class->blittable attribute.
10137
10138 2002-07-09  Dick Porter  <dick@ximian.com>
10139
10140         * threads.c: Make the thread cleaning up cope with threads that
10141         call ExitThread()
10142
10143 2002-07-08  Radek Doulik  <rodo@ximian.com>
10144
10145         * reflection.c (method_encode_code): use non-translated values to
10146         compute finally_start, this fixes exception handling on ppc, yay!
10147
10148         * decimal.h (struct signscale): fix endianess
10149
10150 2002-07-07  Radek Doulik  <rodo@ximian.com>
10151
10152         * reflection.c: swap box_val and not val
10153
10154 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10155
10156         * reflection.c, reflection.h: handle full assembly info in type name.
10157         Handle Type arguments when loading custom attributes.
10158         * icall.c: updated to use new mono_reflection_type_from_name () method.
10159
10160 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10161
10162         * loader.c:
10163         (method_from_memberref): also print assembly name when method not found.
10164
10165 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10166
10167         * icall.c:
10168         (ves_icall_TypeGetProperties): fixed bug #27473. 
10169
10170 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10171
10172         * reflection.c: display image name and token when cannot find the
10173         .ctor for an attribute.
10174
10175 2002-07-05  Martin Baulig  <martin@gnome.org>
10176
10177         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10178
10179 2002-07-04  Dick Porter  <dick@ximian.com>
10180
10181         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10182         compile on mingw.  This will cause mingw builds to not wait for
10183         subthreads to terminate after the main thread does.  I've lodged a
10184         bug with the mingw developers for them to wrap OpenThread().
10185
10186 2002-07-03  Dick Porter  <dick@ximian.com>
10187
10188         * threads.c: Store thread IDs instead of handles, because
10189         GetCurrentThread() returns a pseudohandle and therefore stores
10190         useless values.  mono_thread_cleanup() continues checking the
10191         array of threads until it is empty, to cope with subthreads
10192         spawning new threads after the main thread has finished.
10193
10194         * profiler.h:
10195         * profiler.c:
10196         * profiler-private.h: Pass the thread ID to thread profiler
10197         functions, instead of a handle
10198
10199 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10200
10201         * verify.c: fixes to make it more usable.
10202         * pedump.c: added --verify code to verify IL code in an assembly.
10203
10204 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10205
10206         * reflection.c: turn errors into warnings to allow compiling corlib.
10207
10208 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10209
10210         * reflection.c: add special cases to compile corlib.
10211
10212 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10213
10214         * reflection.c: handle properties with only a set method.
10215
10216 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10217
10218         * opcodes.h: add enum with opcodes in opval order.
10219
10220 2002-07-01  Dick Porter  <dick@ximian.com>
10221         
10222         * object.h:
10223         * object.c (mono_runtime_run_main): Removed unneeded argument
10224
10225 2002-06-28  Martin Baulig  <martin@gnome.org>
10226
10227         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10228
10229 2002-06-27  Dick Porter  <dick@ximian.com>
10230
10231         * threads.c: Store the handle in both the parent thread and in the
10232         subthread, to minimise the time between starting a new thread and
10233         storing its ID.
10234
10235 2002-06-26  Dick Porter  <dick@ximian.com>
10236
10237         * appdomain.c (mono_runtime_cleanup): Close the socket library
10238         after all the threads have finished, not before
10239
10240 2002-06-26  Martin Baulig  <martin@gnome.org>
10241
10242         * debug-symfile.c (mono_debug_find_source_location): Added
10243         `guint32 *line_number' argument.  If it's not NULL, store the line number
10244         there and return the file name without the line number.
10245
10246 2002-06-25  Dick Porter  <dick@ximian.com>
10247
10248         * icall.c:
10249         * process.h:
10250         * process.c: Process forking and other support functions
10251
10252 2002-06-25  Dick Porter  <dick@ximian.com>
10253
10254         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10255         things dont happen when the image is closed.
10256         (mono_image_lookup_resource): Walk the resource section looking
10257         for a particular entry
10258
10259         * cil-coff.h: PE resource section decoding
10260
10261 2002-06-25  Dick Porter  <dick@ximian.com>
10262         
10263         * assembly.h:
10264         * assembly.c: 
10265         (mono_assembly_foreach): Accessor functions to walk the list of
10266         loaded assemblies
10267         (mono_assembly_set_main):
10268         (mono_assembly_get_main): Process methods need to know which
10269         assembly is the "main" one
10270
10271         * object.c (mono_runtime_run_main): Record the main assembly
10272
10273         * debug-helpers.c: Fix typo
10274
10275 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10276
10277         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10278         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10279
10280 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10281
10282         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10283
10284 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10285
10286         * image.c (do_mono_image_open): Initialize reference count,
10287         otherwise we leak the MonoImage.
10288
10289 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10290
10291         * reflection.c: small tweak to handle self-hosting.
10292
10293 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10294
10295         * reflection.c: fix type name parse code.
10296
10297 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10298
10299         * reflection.c: break out of the loop.
10300         * image.c: special case corlib.
10301
10302 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10303
10304         * reflection.c: add all the custom attrs at the end to ensure the
10305         ctors have been properly initialized when the attributes are defined
10306         in the current assembly.
10307
10308 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10309
10310         * reflection.c: handle correctly multiple-nested types.
10311
10312 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10313
10314         * row-indexes.h: fix typos.
10315         * reflection.c: adjust for typos and fix method_def_or_ref
10316         encoding in MethodImpl table.
10317
10318 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10319
10320         * reflection.c: fix entry point patching (thanks Serge!).
10321
10322 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10323
10324         * verify.c: add check for System.Exception
10325
10326 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10327
10328         * image.c, class.c: minifix for code just c&p'ed.
10329         * reflection.c: warning fix.
10330         * object.h, loader.h, domain.c: load also StringBuilder.
10331
10332 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10333
10334         * marshal.h, marshal.c: some support code to handle complex marshaling.
10335
10336 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10337
10338         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10339         Better signatures with vtable error dump.
10340
10341 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10342
10343         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10344
10345 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10346
10347         * icall.c (ves_icall_Type_GetField): impl.
10348
10349 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10350
10351         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10352         to retrieve a marshal description blob for a field or param.
10353
10354 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10355
10356         * reflection.h, reflection.c: change order of nested type emission
10357         to avoid table corruption. The NestedTypes table is sorted.
10358         * icall.c: change order of GetConstructor results to workaround mcs bug.
10359
10360 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10361
10362         * reflection.h, reflection.c: handle field and param marshal
10363         information.
10364
10365 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10366
10367         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10368
10369 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10370
10371         * reflection.c: fix call convention.
10372
10373 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10374
10375         * reflection.h, reflection.c: mono_image_get_memberref_token()
10376         takes a type instead of a class, now. Added
10377         mono_image_get_array_token() to create tokens for the special
10378         multi-dim array methods.
10379
10380 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10381
10382         * assembly.c: handle modules (no assembly table). Split
10383         loading references in its own function.
10384         * class.c: handle moduleref resolution scope.
10385         * image.c, image.h: cache module name in image.
10386
10387 2002-06-07  Martin Baulig  <martin@gnome.org>
10388
10389         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10390         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10391
10392 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10393
10394         * icall.c: more signature fixes that used uint instead of int.
10395
10396 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10397
10398         * reflection.c: fixed signature of field refs.
10399
10400 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10401
10402         * class.c, reflection.c: handle typerefs of nested types
10403         (both on read and when writing files).
10404
10405 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10406
10407         * icall.c: fix method signatures that tried to workaround the previous
10408         typo, d'oh!
10409
10410 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10411
10412         * debug-helpers.c: fix typo.
10413
10414 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10415
10416         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10417         rewrote the PE/COFF writing code (our programs are understood by the
10418         ms runtime, now).
10419
10420 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10421
10422         * gc.c, gc.h, icall.c: weakreference support.
10423
10424 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10425
10426         * Makefile.am, mono-config.c: use $(sysconfdir).
10427
10428 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10429
10430         * icall.c: changed default precision of Double.ToString() to 15.
10431         Fixed memory leak. Unified with Single.ToString.
10432
10433 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10434
10435         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10436
10437 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10438
10439         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10440         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10441         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10442         and myself.
10443
10444 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10445
10446         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10447
10448 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10449
10450         * reflection.c, socket-io.c: more compilation fixes.
10451
10452 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10453
10454         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10455         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10456         unicode.c: warning and compiler compatibility fixes.
10457
10458 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10459
10460         * class.h, metadata.c: fixed warnings/compilation errors.
10461
10462 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10463
10464         * Makefile.am, mono-config.c, mono-config.h: configuration file
10465         support routines.
10466         * loader.c, loader.h: make Dll mapping configurable at runtime in the
10467         config file. Export methods to insert and lookup mappings.
10468
10469 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10470
10471         * reflection.c: handle types and boxed objects in custom attr
10472         constructors.
10473
10474 2002-05-30  Martin Baulig  <martin@gnome.org>
10475
10476         * debug-symfile.c
10477         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
10478
10479 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
10480
10481         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
10482         to lookup the implmap row for a P/Invoke method.
10483         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
10484         P/Invoke method from the runtime on an as needed basis.
10485
10486 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
10487
10488         * metadata.c (mono_metadata_parse_signature): impl.
10489
10490 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10491
10492         * class.c: handle .pack directive.
10493
10494 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10495
10496         * object.c: initialize static fields with RVA data.
10497
10498 2002-05-25  Martin Baulig  <martin@gnome.org>
10499
10500         * debug-symfile.c
10501         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
10502
10503 2002-05-24  Martin Baulig  <martin@gnome.org>
10504
10505         * debug-symfile.c
10506         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
10507         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
10508         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
10509
10510 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10511
10512         * object.c: special case string ctros in invoke.
10513         * gc.c: silly whitespace changes.
10514
10515 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
10516
10517         * threadpool.[ch]: impl. a threadpool that can
10518         be used by mint and mono.
10519
10520 2002-05-22  Martin Baulig  <martin@gnome.org>
10521
10522         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
10523         The first argument is now a `MonoReflectionModuleBuilder *', the return
10524         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
10525         `methods' field to get the method builder.  The `token' argument is the
10526         unfixed token.
10527
10528         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
10529         invalid characters instead of g_assert_not_reached()ing.  This seems
10530         to be the behaviour of mscorlib.
10531
10532 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
10533
10534         * object.c (mono_runtime_invoke_array): applied patch from Rachel
10535         Hestilow to fix bug #25104
10536
10537 2002-05-21  Martin Baulig  <martin@gnome.org>
10538
10539         * debug-symfile.c (mono_debug_find_source_location): New function.
10540         Looks up an IL offset in the line number table and returns the source
10541         location as a string.
10542
10543 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10544
10545         * icall.c:
10546         (mono_double_ToStringImpl): changed %f by %g until we have something
10547         better.
10548
10549 2002-05-21  Nick Drochak  <ndrochak@gol.com>
10550
10551         * icall.c : Use different name for Math.Pow's icall.  Needed to check
10552         parameters first in C#.
10553
10554 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10555
10556         * icall.c, reflection.h: added icall to get info about an event.
10557
10558 2002-05-20  Radek Doulik  <rodo@ximian.com>
10559
10560         * object.c (mono_value_box): don't use memcpy for boxing on BIG
10561         endian
10562         (mono_value_box): don't use memcpy for small sizes on
10563         architectures with unaligned access
10564
10565 2002-05-20  Martin Baulig  <martin@gnome.org>
10566
10567         * reflection.c (mono_reflection_setup_internal_class): Don't crash
10568         if `tb->parent == NULL'.
10569         (mono_reflection_create_internal_class): New function.  This is
10570         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
10571         for enum types.
10572
10573         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
10574         New interncall.
10575
10576 2002-05-19  Martin Baulig  <martin@gnome.org>
10577
10578         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
10579         argument to get the length, don't default to the array length.
10580
10581 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
10582
10583         * assembly.c (mono_assembly_setrootdir): New function used to
10584         override the MONO_ASSEMBLIES directory.
10585
10586 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10587
10588         * icall.c: ValueType_GetHashCode() initialize local var.
10589
10590 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10591
10592         * reflection.c: sort custom attributes table.
10593
10594 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10595
10596         * reflection.c: support named args in custom attributes (write support).
10597
10598 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10599
10600         * reflection.c: fix finally position calculation.
10601
10602 2002-05-15  Radek Doulik  <rodo@ximian.com>
10603
10604         * reflection.c: fixed endianess at many places
10605
10606         * icall.c (ves_icall_InitializeArray): comment out debug msg
10607
10608 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
10609
10610         * object.c (mono_unhandled_exception): new function to handle
10611         unhandled exceptions.
10612         (mono_unhandled_exception): call the UnhandledException event.
10613         (mono_runtime_delegate_invoke): impl.
10614
10615 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
10616
10617         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
10618         returns the RVA, not the direct pointer to the data. Handle the case
10619         when the class size is fixed.
10620
10621 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10622
10623         * reflection.c: fix some endianess issues.
10624
10625 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
10626
10627         * object.c (mono_runtime_invoke): is now able to catch exceptions.
10628
10629         * threads.c (mono_thread_init): added a callback which is invoked
10630         at thread start.
10631
10632 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10633         
10634         * icall.c: make GetHashCode return non-negative values.
10635
10636 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10637
10638         * object.c, icall.c, gc.c: revert to address-based hashcode.
10639
10640 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
10641
10642         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
10643
10644 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10645
10646         * icall.c, class.c: special case <Module>.
10647
10648 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
10649
10650         * icall.c: fix bug in GetNow().
10651
10652 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
10653
10654         * object.c (mono_runtime_class_init): make sure that we call all
10655         static class constructors.
10656
10657 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10658
10659         * reflection.c: sort methodsemantics table.
10660
10661 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10662
10663         * reflection.h, reflection.c: honour init locals setting.
10664
10665 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
10666
10667         * icall.c: copied Double ToStringImpl for Single ToStringImpl
10668
10669 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10670
10671         * reflection.c: support ContructorBuilders in attribute blob creation.
10672
10673 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10674
10675         * reflection.c: some changes to build a binary that can be run
10676         directly in windows.
10677
10678 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
10679
10680         * loader.c: print a big message when an icall can't be found.
10681
10682 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10683
10684         * string-icalls.c: fix bug 24248.
10685
10686 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10687
10688         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
10689         icall.c, reflection.h: separate assembly loading by pathname and by
10690         assembly name. Use the MONO_PATH env var to search for assemblies.
10691
10692 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10693
10694         * assembly.c, image.h: add some support for assemblies
10695         with multiple modules.
10696         * class.c, class.h: export mono_class_from_typeref().
10697         * loader.c: remove duplicated code and use mono_class_from_typeref(),
10698         instead.
10699
10700 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10701
10702         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
10703         documentation says (the ECMA one is correct).
10704
10705 2002-05-02  Dick Porter  <dick@ximian.com>
10706
10707         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
10708         Don't name the synchronisation mutex.
10709
10710 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
10711
10712         * rand.c
10713         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
10714         Make the prototypes match.
10715         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
10716         Same.
10717
10718         * icall.c
10719         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
10720         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
10721         all systems have tm.tm_zone, so use strftime() with %Z to print
10722         the timezone abreviation into a temp string.
10723
10724         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
10725         rather than mono_array_addr() on a MonoString on Big Endian
10726         machines.
10727
10728 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
10729
10730         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
10731         fix bug 24041
10732
10733 2002-04-30  Dick Porter  <dick@ximian.com>
10734
10735         * socket-io.c: Cope with SOCKET being an integer rather than a
10736         pointer now.
10737
10738         * threads.c: Added Thread_free_internal, to deal with thread
10739         handle cleanup.  Moved calls to handle_store() and handle_remove()
10740         to start_wrapper(), so each can only be called once.  Allocate
10741         synchronisation blocks with GC_malloc(), and use GC finalisation
10742         to close the handles.
10743
10744         * icall.c: added System.Threading.Thread::Thread_free_internal
10745
10746 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10747
10748         * icall.c: support Environment.Exit, CommandLineArgs().
10749
10750 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10751
10752         * object.c, object.h: added mono_runtime_run_main () and
10753         mono_runtime_get_main_args () for use in System.Environment.
10754
10755 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10756
10757         * gc.c: fix thinko, enable actual finalization since the jit is now
10758         fixed.
10759
10760 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10761
10762         * gc.c, object.c: take into account that an object may be offset wrt the address
10763         returned by GC_malloc().
10764
10765 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
10766
10767         * image.c: handle files without entries in the assembly table (modules).
10768
10769 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
10770
10771         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
10772         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
10773         allowed to be null when it's System.Object class setup.
10774
10775 2002-04-27  Martin Baulig  <martin@gnome.org>
10776
10777         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
10778         if `tb->parent == NULL' rather than crashing.
10779
10780 2002-04-28  Nick Drochak  <ndrochak@gol.com>
10781
10782         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
10783         calling acos() where asin() should have been called.
10784
10785 2002-04-26  Martin Baulig  <martin@gnome.org>
10786
10787         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
10788         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
10789         there's a subdirectory called `System', but we don't want to read that
10790         subdirectory as an assembly.
10791
10792 2002-04-25  Martin Baulig  <martin@gnome.org>
10793
10794         * debug-symfile.c: Reflect latest MonoString changes.
10795
10796 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10797
10798         * rand.c, rand.h: instance method icalls need to have an explicit
10799         this pointer as first argument in the C implementation.
10800
10801 2002-04-25  Nick Drochak <ndrochak@gol.com>
10802
10803         * icall.c: Fix typo in map for GetNonZeroBytes
10804
10805 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
10806
10807         * string-icalls.c : String does now passes unit tests without any 
10808         errors, the following changes has been made:
10809         
10810         Implemented replace methods.
10811         Renaming of methods to (try) follow the standard.
10812         Fixed compare ordinal
10813         Made all memory allocated directly to function instead of via icall function.
10814         Small performance fix in is_in_array function
10815                         
10816  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
10817
10818         c (mono_string_Internal_ctor_charp_int_int):
10819         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
10820         sindex < 0, throw ArgumentOutOfRangeException instead of
10821         ArgumentNullException.
10822
10823         Added new check for length == 0, however
10824         I need to make it return String.Empty from the C code.
10825         
10826         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
10827         that calculate the length for us here.
10828         
10829         (mono_string_Internal_ctor_sbytep_int_int): Replaced
10830         mono_string_new_utf16 with mono_string_new, since value is utf8.
10831
10832 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10833
10834         * object.c: register the object for finalization if needed.
10835         Allocate one more char in the string for the terminating 0 char.
10836
10837 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10838
10839         * class.c, class.h, image.c: check if a type implemenst a destructor.
10840         Use the proper key for array class lookups.
10841         * icall.c: register the icalls in the System.GC class.
10842         * gc.c, gc.h: GC-related functions and icalls.
10843
10844 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10845
10846         * icall.c:
10847         * socket-io.c:
10848         * unicode.c: free some strings gotten from mono_string_to_utf8 and
10849         changed a couple of free () by g_free ().
10850
10851         * decimal.c: one-liner in the comments for decimal2string ().
10852
10853 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
10854
10855         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
10856
10857 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
10858
10859         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
10860         * object.c (mono_runtime_invoke_array) : handle null in params
10861
10862 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
10863
10864         * string-icalls.c: fixed bug in split (one off bug)
10865
10866 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
10867
10868         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
10869         * icalls.c: added String::Equals as internal method
10870
10871 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
10872
10873         * threads.c: fixed bug in the double interlocked functions
10874
10875 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
10876
10877         * threads.c: implemented all of the new interlocked icalls.
10878         * string-icalls.c: fix a bug in insert.
10879         * icalls.c: added the icalls for interlocked, removed old string functions.
10880         
10881 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
10882
10883         * loader.c: fix off-by-one error when reading argument names.
10884
10885 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10886
10887         * profiler.c: win32 counter implementation (untested).
10888         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
10889         (the latter needs testing and more complete impl. from win32 folks).
10890
10891 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
10892
10893         * object.c: mono_array_new_full workaround mono_array_class_get
10894         problem.
10895
10896 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
10897
10898         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
10899         * object.h (mono_string_chars): Changed casting type.
10900
10901 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
10902
10903         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
10904                            method signatures to use gunichar2 instead of gint16.
10905
10906 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
10907
10908         * object.h, object.c: domain-specific versions of mono_object_new and
10909         mono_array_new.
10910
10911 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
10912
10913         * object.c: changed String layout
10914
10915         * string-icalls.c (mono_string_Internal_ctor_chara): added
10916         internal string constructors.
10917
10918 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
10919
10920         * threads.c: pass 'this' to the thread start routine.
10921
10922 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10923
10924         * string-icalls.c: fix IndexOf and LastIndexOf. Now
10925         InternalCompareStr don't call twice mono_string_cmp_char for the last
10926         character. Improved performance in mono_string_cmp_char.
10927
10928 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10929
10930         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
10931         code into its own library: libmonoruntime.
10932
10933 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
10934
10935         * object.h, object.c: changed array format so that szarrays do not
10936         require a bounds structure.
10937         * icall.c, appdomain.c: support for new szarray format.
10938
10939 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
10940
10941         * metadata.c: compare also the retuns type when comparing signatures:
10942         we didn't do this as an optimization since really overloaded methods
10943         must differ also in the arguments, but this doesn't work with
10944         low-level IL code (or when using explicit conversion operators: see
10945         bug#23498 for an example).
10946
10947 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10948
10949         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
10950
10951 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10952
10953         * icall.c: make MonoType::GetElementType its own icall.
10954
10955 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10956
10957         * icall.c: remove MonoMethod_get_Name().
10958         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
10959         object.
10960
10961 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
10962
10963         * string-icalls.c: optimized a few methods.
10964
10965 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
10966
10967         * icall.c: added all new string internal calls
10968         * string-icalls.c: added, new string internal call implementation.
10969         * object.c: added mono_string_new_size for allocating a string a size
10970
10971 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
10972
10973         * object.c (mono_object_isinst): use the same code as in the
10974         optimized x86 version.
10975
10976 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10977
10978         * profiler.c: TSC-based timer code (faster and more accurate).
10979         Not hooked up in configure, yet (set USE_X86TSC to 1).
10980
10981 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
10982
10983         * profiler.c, profiler.h: track time spent compiling methods.
10984         * threads.c: track thread creation/destruction.
10985
10986 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
10987
10988         * profiler.c, profiler.h, profiler-private.h: profiling interface
10989         and sample implementation. Moved here so that it can be used also by
10990         the jit.
10991
10992 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
10993
10994         * reflection.c, reflection.h: keep types and other handles separate in
10995         the hash tables for referred tokens. Add guid for modules.
10996
10997 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10998
10999         * assembly.c: fix bugs found with valgrind.
11000         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11001
11002 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11003
11004         * threads: added icall support for getting current domain for
11005                    the thread.
11006  
11007 2002-04-13  Martin Baulig  <martin@gnome.org>
11008
11009         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11010         (MonoDebugVarInfo): Added `index' field for register based addresses.
11011         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11012         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11013         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11014         `MonoDebugVarInfo *this_var'.
11015
11016         * debug-symfile.c (relocate_variable): New static function to write
11017         a location description for a local variable or method parameter.
11018
11019 2002-04-12  Martin Baulig  <martin@gnome.org>
11020
11021         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11022         stack offset and begin/end scope address of a local variable.
11023         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11024         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11025         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11026
11027         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11028         Added new relocation types for start/end scope of a local variable.
11029
11030 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11031
11032         * object.h: add mono_object_domain() macro.
11033         * reflection.c: handle typespecs.
11034         * icall.c: MonoMethod::get_Name() implementation.
11035
11036 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11037
11038         * icall.c: String::GetHashCode() icall implementation.
11039
11040 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11041
11042         * icall.c: String::IndexOfAny icall.
11043         * object.c, object.h: make array->max_length more useful.
11044         Intrduced mono_object_class() and mono_string_length() macros.
11045
11046 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11047
11048         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11049         instead of g_unichar_isdigit.
11050
11051 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11052
11053         * icall.c: Implement a simple Double.ToString().
11054
11055 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11056
11057         * appdomain.h: only io-layer.h is supposed to be included.
11058         * icall.c: explicitly import environ. Fix warning.
11059
11060 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11061
11062         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11063                 return true even if it's not Daylight Savings time.
11064                 Only return false for the case where the function isn't
11065                 implemented for a plaform (read Windows).
11066
11067 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11068
11069         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11070         data with a mutex.
11071
11072 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11073
11074         * mempool.c (mono_mempool_alloc): only use g_malloc when
11075         absolutely necessary.
11076
11077 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11078
11079         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11080
11081         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11082         (mono_class_proxy_vtable): use domain mempool
11083
11084 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11085
11086         * appdomain.h, appdomain.c: split initialization that requires the
11087         execution engine support into mono_runtime_init().
11088
11089 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11090
11091         * class.c (mono_class_init): don't include vtable inside MonoClass
11092         to save some memory, gather some statistics.
11093         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11094
11095 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11096
11097         * icall.c: internalcall implementation for ValueType.Equals().
11098
11099 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11100
11101         * object.c (mono_message_init): moved 
11102         (mono_runtime_exec_main): new arch. independent impl.
11103         (mono_runtime_invoke_array): new method - like
11104         mono_runtime_invoke, but you can pass an array of objects.
11105         (mono_remoting_invoke): new arch. independent impl.
11106         (mono_message_invoke): new arch. independent impl.
11107         (mono_runtime_class_init): new arch. independent impl.
11108         (mono_runtime_object_init): new arch. independent impl.
11109
11110 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11111
11112         * metadata.c, object.c, reflection.c: documented the exported
11113         functions.
11114
11115 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11116
11117         * icall.c: simpler code to pass the assembly builder data to corlib.
11118         Implement GetNestedTypes() internalcall.
11119
11120 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11121
11122         * class.c: warn if a type can't be loaded.
11123
11124 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11125
11126         * image.h: typedef MonoImageOpenStatus
11127         * types.h: removed unused file
11128         
11129 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11130
11131         * icall.c: Enum_ToObject accepts enum value arguments.
11132
11133 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11134
11135         * class.c: move initialization of properties, events and nested
11136         classes, so that they happen for interfaces, too.
11137
11138 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11139
11140         * icall.c: cleanup some ugly casts in Array_SetValue*.
11141
11142 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11143
11144         * icall.c: the values array fro enums is of the correct type, now.
11145         Implement (correctly) getFullName instead of assQualifiedName for
11146         MonoType.
11147         * reflection.h, reflection.c: added mono_type_get_name ().
11148
11149 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11150
11151         * assembly.c, image.h: for each MonoImage, record from wich assembly
11152         it was loaded.
11153         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11154         Make Type.Assembly work.
11155
11156 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11157
11158         * debug-symfile.h: use char* instead of gpointer to avoid
11159         unnecessary casts.
11160
11161         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11162
11163         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11164         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11165
11166 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11167
11168         * icall.c (mono_message_init): impl. (code cleanup)
11169         (ves_icall_InternalExecute): impl. FieldGetter
11170
11171         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11172         defined we call all (non-static)methods through the vtable. 
11173
11174 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11175
11176         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11177         finalizer even though the memory is still referenced (and the chunk of
11178         memory is not freed).
11179
11180 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11181
11182         * assembly.c: fix brokeness.
11183
11184 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11185
11186         * class.c: kill some warnings. Check explicit interface method
11187         implementation also without considering the namespace.
11188         Load also literal strings in static class data.
11189
11190 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11191
11192         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11193         (default_assembly_name_resolver): Make the resolver take the
11194         "base" directory where the assembly was originally defined, so we
11195         can load DLLs that are in the same directory as the assembly that
11196         is being referenced.
11197
11198 2002-03-28  Dick Porter  <dick@ximian.com>
11199
11200         * file-io.h: 
11201         * file-io.c:
11202         * socket-io.c: 
11203         * unicode.h: 
11204         * unicode.c: Warning cleanups
11205
11206 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11207
11208         * object.h, reflection.h: use the correct type instead of MonoObject.
11209
11210 2002-03-28  Martin Baulig  <martin@gnome.org>
11211
11212         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11213         (mono_debug_update_symbol_file): Initialize classes if necessary.
11214
11215 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11216
11217         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11218         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11219
11220 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11221
11222         * assembly.h: fix function prototype.
11223         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11224         * mono-endian.h: use const cast.
11225
11226 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11227
11228         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11229
11230 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11231
11232         * loader.c: don't assert when a typeref can't be loaded, give
11233         a chance to the runtime to trow an exception instead.
11234         * loader.h: fix warning.
11235
11236 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11237
11238         * class.c (mono_class_proxy_vtable): added proxy support
11239
11240 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11241
11242         * icall.c: removed last of PAL calls, added System.Environment
11243         * file-io.h, file-io.c: MonoIO implementation
11244         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11245
11246 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11247
11248         * appdomain.c: do not use the byte marker in ldstr table lookup.
11249         * debug-helpers.c: allow two ':' to separate class and method name.
11250         * object.c: allocate arrays bounds with the GC, too.
11251         * verify: add a few more checks.
11252
11253 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11254
11255         * reflection.c: output also literal strings. Allocate parameter data
11256         with GC_malloc() (thanks, Martin, for catching this!).
11257
11258 2002-03-26  Martin Baulig  <martin@gnome.org>
11259
11260         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11261         include the `this' offset in the `param_offsets'.
11262
11263 2002-03-25  Martin Baulig  <martin@gnome.org>
11264
11265         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11266         mono_debug_get_class() function to get the classes. Added new
11267         relocation types for arrays and strings.
11268         (mono_debug_get_class): New static function to search in all
11269         referenced assemblies for a metadata token.
11270
11271         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11272
11273 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11274
11275         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11276         hold gc-allocated objects. Make the string heap a stream like the
11277         others. Removed duplicated code when writing stream info.
11278         Added asserts to catch possible buffer overflows. Set the sorted map
11279         for tables that need sorting. Added some documentation.
11280
11281 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11282
11283         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11284         for interned strings and vtables.
11285
11286 2002-03-24  Martin Baulig  <martin@gnome.org>
11287
11288         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11289         it in the array since it was created with g_slist_prepend().
11290
11291 2002-03-24  Martin Baulig  <martin@gnome.org>
11292
11293         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11294         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11295         (mono_debug_method_from_token): Renamed to
11296         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11297         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11298
11299         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11300         relocation types.
11301
11302         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11303
11304 2002-03-24  Martin Baulig  <martin@gnome.org>
11305
11306         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11307         (mono_debug_method_from_token): New func.
11308
11309         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11310         New interncall, calls mono_debug_local_type_from_signature().
11311         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11312         calls mono_debug_method_from_token().
11313
11314 2002-03-23  Martin Baulig  <martin@gnome.org>
11315
11316         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11317         specifies the number of bytes to be converted, not the array size.
11318         Return the number of chars, not the number of bytes.
11319         (ves_icall_iconv_get_chars): The `byteCount' argument
11320         specifies the number of bytes to be converted, not the array size.
11321
11322 2002-03-23  Martin Baulig  <martin@gnome.org>
11323
11324         * reflection.h (MonoReflectionSigHelper): New type.
11325
11326         * reflection.c (mono_reflection_sighelper_get_signature_local),
11327         (mono_reflection_sighelper_get_signature_local): New functions.
11328
11329         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11330         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11331         interncalls.
11332
11333 2002-03-23  Martin Baulig  <martin@gnome.org>
11334
11335         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11336         is_writeable is set.
11337         (mono_raw_buffer_update): New function to write the modified map
11338         back to disk.
11339
11340         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11341
11342         * debug-symfile.c (mono_debug_update_symbol_file): Call
11343         mono_raw_buffer_update() when done writing.
11344
11345 2002-03-23  Martin Baulig  <martin@gnome.org>
11346
11347         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11348
11349         * debug-symfile.c: Added support for arguments and local variables.
11350
11351 2002-03-23  Dick Porter  <dick@ximian.com>
11352
11353         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11354         protected by ifdefs, hence breaking the w32 build.
11355
11356 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11357
11358         * object.c: implement is_interned() the right way.
11359
11360 2002-03-21  Martin Baulig  <martin@gnome.org>
11361
11362         * debug-symfile.[ch]: New files to handle debugging information
11363         files. There's also support to dynamically update these symbol
11364         files to include machine dependent information.
11365
11366 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11367
11368         * threads.c (mono_thread_create): new function to create thread
11369         from C
11370
11371 2002-03-20  Martin Baulig  <martin@gnome.org>
11372
11373         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11374         method is a constructor.
11375         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11376         points to ves_icall_InternalInvoke().
11377
11378 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11379
11380         * file-io.c: Flush shouldn't throw exceptions.
11381
11382 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11383
11384         * file-io.c: FileStream flush support; FileSetLength now
11385         restores file pointer.
11386
11387 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11388
11389         * class.c: set image for pointer classes.
11390
11391 2002/03/19  Nick Drochak <ndrochak@gol.com>
11392
11393         * sysmath.c: Forgot one.
11394
11395 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11396
11397         * sysmath.c: Avoid redefining existing names.
11398
11399 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11400
11401         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11402         handled by runtime as icall rather than dllimport from libm.so
11403         * file-io.c, file-io.h: fixed handle argument type.
11404
11405 2002-03-18  Dick Porter  <dick@ximian.com>
11406
11407         * reflection.c (mono_image_get_type_info): rename interface to
11408         iface, because of "#define interface struct" on windows.
11409
11410 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11411
11412         * class.c, class.h: rename and export mono_ptr_class_get().
11413         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11414         * reflection.c, reflection.h, icall.c: better/saner type name
11415         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11416         method signatures.
11417
11418 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11419
11420         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11421
11422         * icall.c (ves_icall_InternalInvoke): impl.
11423
11424 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11425
11426         * reflection.c: output the interface map table, too.
11427
11428 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11429
11430         * class.c (class_compute_field_layout): separate computation of 
11431         static field layout
11432
11433 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11434
11435         * icall.c: added System.Buffer support.
11436         * file-io.c: moved file icalls from PAL to FileStream.
11437
11438 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11439
11440         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11441
11442 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11443
11444         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11445
11446 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11447
11448         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11449
11450 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11451
11452         * debug-helpers.{c,h}: moved here from monograph some useful functions
11453         to locate a method by name/signature in a class or image. Included
11454         also a small and flexible IL disassembler.
11455
11456 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11457
11458         * reflection.c: fixup tokens in methods with small header size, too.
11459
11460 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
11461
11462         * object.c (mono_string_to_utf8): remove assert(!error), instead
11463         print a warning. 
11464
11465 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
11466
11467         * icall.c: update to the new mono_Array_class_get interface.
11468
11469 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11470
11471         * appdomain.c, object.c: Boehm-GC enable.
11472         * icall.c: make get_data_chunk() support split data requests.
11473         Ensure a class is initialized in more cases. Return only the first
11474         property found in GetProperties() or the compiler gets confused. 
11475         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
11476         * reflection.h, reflection.c: add fixup mechanism for field and method
11477         tokens. Initialize assembly->typeref in a single place. Output
11478         properties after events. Support custom attributes for events, too.
11479         Typo fix for paramter custom attrs.
11480
11481 2002-03-07  Martin Baulig  <martin@gnome.org>
11482
11483         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
11484
11485 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
11486
11487         * class.c (mono_array_class_get): fix. for multi. dim. arrays
11488
11489 2002-03-06  Martin Baulig  <martin@gnome.org>
11490
11491         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
11492         non-zero lower bounds. See testcases #F10-#F13.
11493
11494 2002-03-05  Martin Baulig  <martin@gnome.org>
11495
11496         * exception.c (mono_get_exception_argument_out_of_range): New exception.
11497
11498         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
11499         ves_icall_System_Array_GetValue(), only calculate the absolute array position
11500         here.
11501         (ves_icall_System_Array_SetValue): Likewise.
11502         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
11503         as argument and does the actual work. This function is used when copying a
11504         multi-dimensional array.
11505         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
11506         now do all the widening conversions of value types.
11507         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
11508
11509 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11510
11511         * class.c: remove some magic numbers and use the smbolic names,
11512         instead. Added init_events() to load event info at class init time.
11513         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
11514         and mono_metadata_methods_from_event().
11515         * reflection.h, reflection.c: added support for writing out the evnets
11516         related information.
11517
11518 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11519
11520         * reflection.h, icall.c: use a different method (GetInterfaces)
11521         to gather interface info and add isbyref, isprimitive and
11522         ispointer to the ves_icall_get_type_info() return value.
11523
11524 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11525
11526         * class.h: stared adding support for events.
11527         * icall.c: split find_members implementation. Added debug icall to get
11528         the address of an object.
11529         * reflection.c: handle TypeBuilders in mono_type_get_object().
11530
11531 2002-03-01  Martin Baulig  <martin@gnome.org>
11532
11533         * icall.c (ves_icall_System_Array_GetLength): This must throw an
11534         ArgumentOutOfRangeException(), not an ArgumentException().
11535         (ves_icall_System_Array_GetLowerBound): Likewise.
11536         (ves_icall_System_Array_GetValue): Improved argument checking.
11537         (ves_icall_System_Array_SetValue): Improved argument checking.
11538
11539 2002-03-01  Martin Baulig  <martin@gnome.org>
11540
11541         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
11542         called with invalid arguments rather than just dying with g_assert().
11543         (ves_icall_System_Array_SetValue): Likewise.
11544         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
11545         raise a NotImplementedException instead.
11546         (ves_icall_System_Array_GetLength): Added argument checking.
11547         (ves_icall_System_Array_GetLowerBound): Added argument checking.
11548
11549 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
11550
11551         * object.h (mono_assert): new macros mono_assert and
11552         mono_assert_not_reached
11553
11554 2002-02-28  Martin Baulig  <martin@gnome.org>
11555
11556         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
11557         and "System::String::IsInterned" to "System::String::_IsInterned".
11558
11559 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
11560
11561         * icall.c: remove hacks for typebuilder. Added icall to create a
11562         modified type from a tybebuilder.
11563         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
11564         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
11565         to create a backing MonoClass for a TypeBuilder.
11566
11567 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11568
11569         * class.c, class.h: more refactoring of class init.
11570         Export mono_class_setup_mono_type() and mono_class_setup_parent().
11571
11572 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
11573
11574         * marshal.c, marshal.h: start of marshaling interface.
11575
11576 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
11577
11578         * icall.c: fix order in assembly qualified name icall.
11579
11580 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
11581
11582         * class.c: do not free str, since we store it in the hash table.
11583         * reflection.h: add label field to MonoILExceptionInfo.
11584         * reflection.c: handle references to more than one assembly. Handle
11585         case when there isn't a module created in the assembly.
11586
11587 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11588
11589         * class.c: Fix typo. Start refactoring of class init code.
11590
11591 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11592
11593         * appdomain.c: exit with 1 on error.
11594         * class.c: we already have the name in MonoClassField.
11595         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
11596         MonoStreamHeader instead of an offset of image->raw_metadata.
11597
11598 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
11599
11600         * appdomain.c (mono_init): Be even more descriptive about the error.
11601
11602 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
11603
11604         * appdomain.c: give the user an informative message when corlib can't
11605         be loaded.
11606
11607 2002-02-26  Martin Baulig  <martin@gnome.org>
11608
11609         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
11610         New icall to get the time zone data.
11611
11612 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11613
11614         * reflection.c: set virtual and raw size of section correctly.
11615         * threads.c: transfer domain information to newly created threads.
11616
11617 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
11618
11619         * class.c: when instancing a class in a domain, load the default
11620         vaules for static fields from the constant table. Fix System.Enum to
11621         not be an enum.
11622         * icall.c: implement Object::GetType() internalcall. Implemented
11623         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
11624         Fixed checking of binding flags in find_members().
11625         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
11626         * reflection.c: handle enumerations when writing to the constant
11627         table. Use a different object cache for types.
11628
11629
11630 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
11631
11632         * object.c (mono_object_isinst): fix for arrays
11633
11634         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
11635
11636 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
11637
11638         * object.c: don't use mprotect ()  and fix intern pool hash table
11639         lookup for big endian systems.
11640
11641 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11642
11643         * icall.c: change type_is_subtype_of () signature.
11644
11645 2002-02-21  Mark Crichton  <crichton@gimp.org>
11646
11647         * rand.c, rand.h: Added random number generator for
11648         System.Security.Cryptography classes.
11649
11650         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
11651
11652         * icall.c: Added System.Security.Cryptography calls.
11653
11654 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
11655
11656         * class.c, icall.c, metadata.c: better support for pointer types.
11657         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
11658         * reflection.c: Add support for getting custom attrs for properties
11659         and simplify some code.
11660
11661 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11662
11663         * icall.c: change getToken () and add custom attribute GetBlob()helper
11664         method.
11665         * reflection.h: add custom attrs array to the reflection builder structures.
11666         * reflection.c: encode and emit custom attributes for all the relevant
11667         reflection objects. Cache fieldref and methodref tokens. Change
11668         mono_image_create_token() interface to take a MonoDynamicAssembly.
11669         More complete custom attributes decoder. Load custom attributes for
11670         Assembly, Field, Method and Constructor objects, too. Make the
11671         returned array an Attribute[] one, not object[]. Added
11672         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
11673         custom attribute constructor.
11674
11675 2002-02-20  Dick Porter  <dick@ximian.com>
11676
11677         * icall.c:
11678         * rawbuffer.c:
11679         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
11680         problem code out for now).
11681
11682 2002-02-19  Radek Doulik  <rodo@ximian.com>
11683
11684         * object.c (mono_ldstr): use hash table to avoid multiple swapping
11685
11686 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
11687
11688         * icall.c: register the GetCustomAttributes method.
11689         * object.c, object.h: add mono_string_new_len ().
11690         * reflection.h, reflection.c: added mono_runtime_invoke(),
11691         mono_install_runtime_invoke(). Added
11692         mono_reflection_get_custom_attrs () to load custom attributes and
11693         create the attribute objects.
11694
11695 2002-02-19  Dick Porter  <dick@ximian.com>
11696         * threads-dummy-types.c:
11697         * threads-dummy-types.h:
11698         * threads-dummy.c:
11699         * threads-dummy.h:
11700         * threads-pthread-types.c:
11701         * threads-pthread-types.h:
11702         * threads-pthread.c:
11703         * threads-pthread.h:  Deleted obsolete files
11704
11705 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
11706
11707         * class.c (mono_class_vtable): runtime init the class when we
11708         allocate static class data.
11709
11710         * icall.c (ves_icall_System_Array_SetValue): check for null values.
11711
11712         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
11713         and String - but we will need generic marshalling support in the
11714         future. 
11715         (mono_init): set the domain name in a ms compatible way
11716
11717         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
11718         String[].
11719
11720 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
11721
11722         * object.c (mono_array_clone): use alloca() instead of g_malloc  
11723         for sizes
11724
11725         * appdomain.c (mono_domain_unload): impl.
11726
11727 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
11728
11729         * appdomain.c, object.c: fix intern pool implementation.
11730         * class.c: fix alignment code.
11731
11732 2002-02-16  Radek Doulik  <rodo@ximian.com>
11733
11734         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
11735         and s2 > s1, just copy lower bytes to be compatible with little
11736         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
11737         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
11738
11739         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
11740         force big_endian to be 1 for big endian machines 
11741         (ves_icall_iconv_new_decoder): ditto
11742
11743 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
11744
11745         * socket-io.c (convert_sockopt_level_and_name): If the system
11746         doesn't define SOL_IP or SOL_TCP, get them by hand using
11747         getprotobyname() and caching the values (because this could be a
11748         slow operation).
11749         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
11750         Use the appropriate struct when the system does support it. Ie,
11751         not all systems have struct ip_mreqn so use struct ip_mreq when
11752         appropriate.
11753
11754 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
11755
11756         * reflection.c: handle finally clauses.
11757
11758 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
11759
11760         * socket-io.c: use g_snprintf() instead of snprintf.
11761
11762 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
11763
11764         * reflection.c (mono_param_get_objects): Cast second argument to
11765         mono_method_get_param_names to a const char** to silence the
11766         compiler warning.
11767
11768         * appdomain.c (mono_domain_assembly_open): Put parens around the
11769         truth statement in the for-loop.
11770
11771         * unicode.c (iconv_convert): Got rid of a compiler warning about
11772         int i being unused when the system has a new iconv.
11773         (iconv_get_length): Same.
11774
11775         * image.c (load_class_names): Cast the second argument to
11776         g_hash_table_insert() to char* to hush compiler warnings about the
11777         arg being a const.
11778         (mono_image_open): Same here.
11779
11780         * socket-io.c: Don't conditionally include sys/filio.h or
11781         sys/sockio.h here anymore since we now get them from
11782         io-layer/io-layer.h
11783         (inet_pton): If the system doesn't support inet_aton, implement
11784         using inet_addr and also #define INADDR_NONE if it isn't defined
11785         by the system.
11786
11787 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
11788
11789         * metadata.c, metadata.h: added function to get packing and size info
11790         of a typedef.
11791         * reflection.h, reflection.c: handle field RVA data. Save info about
11792         the table layout if needed. Assign typedef indexes to all the types
11793         before dumping the info about them to avoid forward reference problems.
11794
11795 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
11796
11797         * socket-io.c (convert_sockopt_level_and_name): ifdef
11798         SO_ACCEPTCONN because it is not defined on my system (old debian)
11799
11800 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11801
11802         * opcode.c: use stddef.h to get NULL.
11803
11804 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
11805
11806         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
11807         for FIONBIO, FIONREAD and SIOCATMARK.
11808         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
11809         define INADDR_NONE and besides, inet_addr() is deprecated and
11810         should not be used. Use inet_pton() instead - it also has the
11811         added bonus that it can easily handle IPv6 addresses as well.
11812         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
11813
11814 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11815
11816         * decimal.c: remove _MSC_VER conditional.
11817
11818 2002-02-13  Dick Porter  <dick@ximian.com>
11819
11820         * socket-io.c: 
11821         * icall.c: Internal calls for Blocking, Select, Shutdown,
11822         GetSocketOption and SetSocketOption
11823
11824 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11825
11826         * assembly.cs: better resolver: use it instead of some kludgy
11827         code.
11828
11829 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
11830
11831         * reflection.c: the best way to speed-up the compiler is to avoid
11832         infinite loops.
11833
11834 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
11835
11836         * class.c (mono_class_vtable): changed the object layout
11837         (obj->vtable->class). 
11838         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
11839
11840 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11841
11842         * assembly.c: look for assemblies in the assembly dir, too.
11843
11844 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11845
11846         * class.c: fix thinko in mono_class_from_type().
11847
11848 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11849
11850         * exception.h, exception.c: added TypeLoadException.
11851         * object.h, object.c: added mono_array_clone ().
11852         * icall.c: handle throwOnError in AssemblyGetType().
11853         Added Array.Clone().
11854         * opcode.h, opcode.c: use a single value for the opcode val.
11855         Compile fix for non-gcc compilers.
11856
11857 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
11858
11859         * opcodes.c, opcodes.h: export interesting info about opcodes.
11860
11861 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
11862
11863         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
11864         icalls. 
11865
11866         * class.c (class_compute_field_layout): set element_class for enums
11867         (mono_class_create_from_typedef): set element_class for normal classes
11868
11869         * icall.c (ves_icall_System_Enum_get_value): impl.
11870
11871         * class.c (mono_class_create_from_typedef): do not set valuetype
11872         flag for System.ValueType and System.Enum
11873
11874 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
11875
11876         * unicode.c (iconv_convert): fix big endian problem.
11877
11878 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
11879
11880         * class.c: add asserts if we are ever going to scribble over memory.
11881         * socket-io.c: not all systems have AF_IRDA defined.
11882
11883 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
11884
11885         * class.c (class_compute_field_layout): do not consider static
11886         fields to compute alignment
11887
11888 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
11889
11890         * appdomain.c (mono_appdomain_get): impl.
11891         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
11892
11893 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11894
11895         * icall.c: ignore "file://" prefix when loading an assembly.
11896
11897 2002-01-23  Dick Porter  <dick@ximian.com>
11898
11899         * socket-io.c:
11900         * icall.c:
11901         * Makefile.am: Added socket support
11902
11903 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
11904
11905         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
11906         code back.  This should return the assemblies that are loaded by
11907         the runtime on behalf of an application domain. 
11908
11909         The current implementation is still broken, it just returns every
11910         assembly loaded, but until we get real applications domain this
11911         will do.
11912
11913 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
11914
11915         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
11916         AppDomain object.
11917
11918 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
11919
11920         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
11921         the mono_class_from_name lookup.
11922         (ves_icall_get_parameter_info): ditto.
11923         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
11924         method.
11925         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
11926
11927 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
11928
11929         * class.c: load also nested classes on class init.
11930         System.ValueType instance methods gets passed boxed
11931         values, unless methods in derived classed that get a pointer to the
11932         data.
11933         * icall.c: use better name parsing code in GetType().
11934         * image.c, image.h: add mono_image_loaded ().
11935         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
11936         * reflection.c, reflection.h: added mono_reflection_parse_type().
11937
11938 2002-01-22  Veronica De Santis <veron78@interfree.it>
11939
11940         * icall.c : Added mapping of internal calls for Manual and Auto reset events
11941         * threads.c : Added the implementation of internal calls for events
11942         * threads.h : Added prototypes of internal calls for events
11943         
11944 2002-01-21  Radek Doulik  <rodo@ximian.com>
11945
11946         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
11947
11948 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
11949
11950         * class.c (mono_class_init): set min_align to 1 (instead of 0)
11951         (mono_class_value_size): use min_align
11952
11953 2002-01-20  Dick Porter  <dick@ximian.com>
11954
11955         * threads.h:
11956         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
11957         so it compiles on w32.
11958
11959 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
11960
11961         * metadata.c (mono_type_stack_size): impl.
11962
11963         * class.c (mono_class_get_field): impl. memberref token
11964
11965 2002-01-16 Veronica De Santis <veron78@@interfree.it>
11966
11967         * icall.h : Added the internal calls mapping for CreateMutex_internal
11968                     and ReleaseMutex_internal.
11969         * threads.h : Added the prototype of mutexes internal calls.
11970         * threads.c : Added the implementations of mutexes internal calls.
11971
11972 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
11973
11974         * metaparse.h: removed unused file.
11975         * reflection.c, reflection.h: added stream_data_align () function 
11976         to align data in streams and keep stream aligned. Add support for
11977         exception support in method headers.
11978
11979 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
11980
11981         * unicode.c: make iconv_convert () return the number of bytess written
11982         in the output buffer.
11983
11984 2002-01-15  Dick Porter  <dick@ximian.com>
11985         * threads.c: Make the runtime's idea of infinite timeouts coincide
11986         with the class library's
11987
11988         Fix a particularly egregious bug in mono_thread_cleanup(). That
11989         code was so utterly bogus it must have been written on a Monday.
11990
11991 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
11992
11993         * reflection.h: add subtypes field to TypeBuilder.
11994         * reflection.c: encode constants for literal fields.
11995         Handle subtypes. Fix user string token (and add a zero byte)
11996         at the end.
11997         
11998 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
11999
12000         * class.c (mono_class_init): bug fix: assign slot numbers for
12001         abstract methods.
12002
12003 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12004
12005         * reflection.c: don't try to output a code RVA for abstract methods.
12006         Small fixes for method header format. Output parameter info to the
12007         ParamDef table. Save method overriding info to MethodImpl table.
12008         Fix property support. Allow typedef.extends to be a type in the
12009         building assembly.
12010         * verify.c: fix off-by-one error.
12011
12012 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12013
12014         * class.c: fix mono_class_from_mono_type () for szarray types.
12015         Remove unused cache check in mono_class_from_type_spec().
12016         * icall.c: *type_from_name () functions handle simple arrays and byref.
12017         * reflection.c: handle byref and szarray types. Handle methods without
12018         body (gets P/Invoke compilation working). Handle types and fields in
12019         get_token ().
12020         * reflection.h: add rank to MonoTypeInfo.
12021
12022 2002-01-10  Dick Porter  <dick@ximian.com>
12023
12024         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12025         internal calls
12026
12027 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12028
12029         * icall.c: initialize class in type_from_handle ().
12030         Loop also in parent classes for get_method ().
12031         * reflection.c: properly encode class and valuetype types.
12032         Start on encoding TypeBuilder types. Handle fieldrefs.
12033         Use correct length when registering a user string.
12034         Handle ConstructorBuilder and MonoMethod in get_token ().
12035         Make mono_type_get_object () aware of cached types.
12036         * object.c: back out change to mono_string_new ().
12037
12038 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12039         * object.c: mono_string_new should return a NULL when the string 
12040         passed in is NULL -- not try to deference it.
12041         
12042 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12043
12044         * icall.c: hack to make IsSubType work for TypeBuilders.
12045         * reflection.c: emit constructors before methods.
12046         Retrieve param names in mono_param_get_objects().
12047
12048 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12049
12050         * Makefile.am: fix list of headers and sources so automake 1.5
12051         doesn't complain. Removed \# at end of list.
12052
12053 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12054
12055         * reflection.c: get token for a method ref. Set return type of
12056         constructor to void.
12057         * loader.c: debug message.
12058         * class.c: typo fix.
12059
12060 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12061
12062         * icall.c: fix array init with rank > 1. FindMembers
12063         loops in parent class as well.
12064         * image.c: do not insert nested types in name cache.
12065         * reflection.c: warning fix.
12066         * reflection.h: add override method (for interface impl).
12067
12068 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12069
12070         * metadata.c: fix customattr decoding.
12071
12072 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12073
12074         * rawbuffer.cs: Added native Win32 implementation, avoids using
12075         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12076
12077 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12078
12079         * class.c: make the low-level routines handle the cache.
12080
12081 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12082
12083         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12084
12085 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12086
12087         * class.c: fix mono_array_element_size() for objects.
12088         * class.h, class.c: add properties to MonoClass and load them
12089         at init time.
12090         * icall.c: check with isinst() when assigning a value to an array
12091         instead of requiring the classes to match exactly.
12092         Implemented icall for System.Type::GetType().
12093         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12094         enums. Handle bindingflags when looking for methods and fields.
12095         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12096         and mono_metadata_methods_from_property().
12097         * reflection.h, reflection.c: added structures for propreties,
12098         parameters and enums. Implemented mono_property_get_object() and
12099         mono_param_get_objects().
12100
12101 2001-12-18  Dick Porter  <dick@ximian.com>
12102
12103         * file-io.c: Use mono_string_to_utf16() instead of
12104         mono_string_chars()
12105
12106         * object.c: Added mono_string_to_utf16(), which copies the non
12107         NULL-terminated MonoString into a new double-null-terminated
12108         buffer.
12109
12110 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12111
12112         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12113
12114 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12115
12116         * file-io.c: raise exceptions if handle is invalid.
12117
12118 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12119
12120         * assembly.c: yet another check for mscorlib.
12121         * class.c, class.h: load nesting info for classes.
12122         * icall.c: many new functions to support the Reflection classes.
12123         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12124         * reflection.h, reflection.c: mono_image_create_token(),
12125         mono_assembly_get_object(), mono_type_get_object(),
12126         mono_method_get_object(), mono_field_get_object(): methods to return
12127         objects that parallel the C representation of assemblies, types,
12128         methods, fields.
12129
12130 2001-12-11  Dick Porter  <dick@ximian.com>
12131
12132         * icall.c:
12133         * file-io.c: Internal calls for file IO.
12134
12135 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12136
12137         * tabledefs.h: missing FileAttributes.
12138         * verify.h, verify.c: use is_valid_string () to simplify and check for
12139         valid strings more correctly. Fix warnings and speeling.
12140         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12141         Check code: branches, maxstack, method calls.
12142
12143 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12144
12145         * object.c (mono_object_allocate): removed static, so that the jit
12146         can allocate value types.
12147
12148         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12149
12150 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12151
12152         * class.c: init enum types right away and register the
12153         token->MonoClass map in mono_class_create_from_typedef ().
12154         * verify.h, verify.c: first cut of the verifier.
12155         * pedump.c: add --verify switch to verify metadata tables.
12156         * tabledefs.h: add some missing enums.
12157
12158 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12159
12160         * class.c (mono_install_runtime_class_init): impl.
12161         (mono_class_init): renamed mono_class_metadata_init to
12162         mono_class_init, also removed the metadata_inited flag
12163
12164         * object.c (mono_object_isinst): use faster algorithm
12165
12166 2001-11-30  Radek Doulik  <rodo@ximian.com>
12167
12168         * mono-endian.h: reverted last change
12169         added function prototypes
12170
12171         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12172         add mono-endian.c back
12173
12174         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12175         for unaligned access, I've mistaked it with endianess. I am
12176         sorry.
12177         (mono_read16): fix reverted endianess
12178         (mono_read64): ditto
12179         (mono_read32): ditto
12180
12181 2001-11-30  Dick Porter  <dick@ximian.com>
12182
12183         * exception.c: Implement mono_exception_from_name()
12184
12185 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12186
12187         * metadata.h, metadata.c: remove params_size and locals_size and their
12188         calculation from the metadata code: they are only usefult to the
12189         interp.
12190
12191 2001-11-29  Radek Doulik  <rodo@ximian.com>
12192
12193         * object.c (mono_ldstr): swap bytes here, it's probably not the
12194         best place, but works for me now, I'll redo it once I know mono
12195         better, also note that I add PROT_WRITE and don't reset back, also
12196         note that it's only affects big endians, so x86 should be OK
12197
12198         * mono-endian.h (read16): use just glib macros for both endians
12199
12200         * mono-endian.c: removed as glib macros are used in in
12201         mono-endian.h so we don't need to care about endianess for read
12202         macros as glib does that for us already
12203
12204 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12205
12206         * class.h, class.h: take minimum alignment into consideration so
12207         that the fields of a class remain aligned also when in an array.
12208
12209 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12210
12211         * loader.h, loader.c: add mono_method_get_param_names().
12212         * class.c: 0-init class fields.
12213
12214 2001-11-26  Dick Porter  <dick@ximian.com>
12215
12216         * icall.c:
12217         * threads-types.h:
12218         * threads.c: New file that handles System.Threading on all platforms
12219
12220         * object.c: 
12221         * object.h: Remove the synchronisation struct from MonoObject,
12222         replace it with a pointer that gets initialised on demand
12223
12224         * Makefile.am: Replace all the system-specific threading code with
12225         a single file that uses the new wrapper library
12226
12227 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12228
12229         * class.c, class.h: add mono_install_trampoline() so that the runtime
12230         can register a function to create a trampoline: removes the ugly
12231         requirement that a runtime needed to export arch_create_jit_trampoline.
12232         * object.h, object.c: added mono_install_handler() so that the runtime
12233         can install an handler for exceptions generated in C code (with
12234         mono_raise_exception()). Added C struct for System.Delegate.
12235         * pedump.c: removed arch_create_jit_trampoline.
12236         * reflection.c: some cleanups to allow registering user strings and
12237         later getting a token for methodrefs and fieldrefs before the assembly
12238         is built.
12239         * row-indexes.h: updates and fixes from the new ECMA specs.
12240
12241 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12242
12243         * class.h, class.c: add enum_basetype field to MonoClass.
12244         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12245         to get index in the constant table reated to a field, param or
12246         property.
12247         * reflection.h, reflection.c: handle constructors. Set public-key and
12248         version number of the built assembly to 0.
12249         * row-indexes.h: update from new ECMA spec.
12250
12251 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12252
12253         * class.h, class.c: add a max_interface_id to MonoClass.
12254         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12255         since it's used to do that. Added mono_type_type_from_obj().
12256         Make GetType() return NULL instead of segfaulting if the type was not
12257         found. Handle simple arrays in assQualifiedName.
12258         * object.h: add a struct to represent an Exception.
12259         * reflection.c: output call convention in method signature.
12260         Add code to support P/Invoke methods and fixed offsets for fields.
12261
12262 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12263
12264         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12265         the value.
12266         * icall.c: use mono_array_addr instead of array->vector: fixes the
12267         reflection image writing.
12268         * reflection.c: init call convention byte to 0 in method signature.
12269         Encode the property signature. Don't output property-related methods
12270         twice. Really process the properties for a type (don't cast a field to
12271         a property, my mom always told me that).
12272         Fix 64 bit issues in pointer alignment in a different and more
12273         readable way.
12274
12275 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12276
12277         * loader.h: Removed type class from MonoDefaults, added monotype
12278
12279         * loader.c: Loaded MonoType, removed loading of Type
12280
12281         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12282         and fills in System.Type._impl with a RuntimeTypeHandle rather
12283         than the actual MonoClass *
12284
12285         (ves_icall_type_from_handle): change from type_class to
12286         monotype_class
12287
12288         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12289         implemented
12290
12291         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12292         implemented
12293
12294         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12295
12296         (ves_icall_System_Reflection_Assembly_GetType): implemented
12297
12298         (ves_icall_System_MonoType_assQualifiedName): implemented
12299
12300         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12301
12302 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12303
12304         * assembly.c (mono_assembly_open): Implement a cache for the
12305         assemblies. 
12306
12307         (mono_assembly_close): only destroy the assembly when the last
12308         reference is gone.
12309         
12310 2001-11-09  Dick Porter  <dick@ximian.com>
12311
12312         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12313
12314 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12315
12316         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12317
12318 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12319
12320         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12321         from Martin Weindel.
12322         * object.h: add mono_string_chars ().
12323
12324 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12325
12326         * reflection.c (build_compressed_metadata): Eliminates warnings
12327         and uses 64-bit clean code.
12328
12329         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12330         (mono_type_equal): Change signature to eliminate warnings.
12331
12332 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12333
12334         * icall.c, loader.c: remove the internalcall array constructors.
12335         Changes to match the new MonoArray structure.
12336         * object.h, object.c: an array object doesn't allocate an extra
12337         vector. Add mono_array_new_full () to create jagged arrays easily.
12338
12339 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12340
12341         * metadata.h, metadata.c: add mono_metadata_field_info () to
12342         retreive all the info about a field from vairous tables.
12343         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12344         * class.h, class.c: augment MonoClassField with more info.
12345         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12346         policy and load a field's RVA if needed.
12347
12348 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12349
12350         * class.c (mono_class_metadata_init): create a trampoline for all
12351         virtual functions instead of actually compiling them.
12352
12353 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12354
12355         * class.h, class.c: include name in MonoClassField.
12356         * class.c: fix fundamental type of System.Object and System.String.
12357         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12358         tokens in ldtoken.
12359         * icall.c: remove internalcalls for the Reflection stuff that is now
12360         done in C# code.
12361         * loader.c: mono_field_from_memberref () implementation.
12362         * mono-endian.c: thinko (s/struct/union/g).
12363         * object.c, object.h: make the mono_string_* prototypes actually use
12364         MonoString instead of MonoObject.
12365         * reflection.c, reflection.h: updates for changes in the reflection
12366         code in corlib: we use C structures that map to the actual C# classes.
12367         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12368         fat method header if needed and use the info from the ILGenerator for
12369         methods. Handle fields in types. Misc fixes.
12370
12371 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12372
12373         * class.c (mono_class_metadata_init): bug fix: always allocate
12374         space for static class data
12375
12376 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12377
12378         * class.c (mono_compute_relative_numbering): use relative
12379         numbering to support fast runtime type checks.
12380
12381 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12382
12383         * class.c (mono_class_create_from_typeref): added debugging output
12384         to print class name when MonoDummy is returned instead of real class
12385
12386 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12387
12388         * class.c (mono_class_metadata_init): interface offset table now
12389         contains pointers into the vtable - this is more efficient for the jit
12390
12391 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12392
12393         * class.c (mono_class_metadata_init): use a temporary vtable (the
12394         old algorithm only worked for the interpreter, but not for the jit)
12395
12396 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12397
12398         * loader.c (method_from_memberref): use mono_class_get to get the
12399         class of an array instead of using System.Array directly.
12400         (mono_get_method): also add MEMBERREF methods to the method cache
12401         which usefull for arrays.
12402
12403 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12404
12405         * pedump.c (arch_compile_method): added to compute vtable entry
12406
12407         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12408         number of interfaces.
12409         
12410         * class.h: merged MonoArrayClass into MonoClass
12411
12412         * class.c (mono_class_create_from_typedef): compute the vtable size and
12413         allocate space to include the vtable inside MonoClass
12414         (mono_class_metadata_init): initialize the vtable
12415
12416 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12417
12418         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12419         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12420         * image.c: endian fixes by Laurent Rioux.
12421         * object.h, object.c: rename MonoStringObject to MonoString and
12422         MonoArrayObject to MonoArray. Change some function names to conform to
12423         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12424         guint16* as first argument, so don't use char*.
12425         Provide macros to do the interesting things on arrays in a portable way.
12426         * threads-pthread.c: updates for the API changes and #include <sched.h>
12427         (required for sched_yield()).
12428         * icall.c: updates for the API changes above.
12429         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12430         platforms that need them.
12431
12432 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12433
12434         * class.c: set the correct type for all the fundamental
12435         type when loading the class.
12436
12437 2001-10-05  Dick Porter  <dick@ximian.com>
12438
12439         * threads-pthread.c (pthread_mutex_timedlock): Simple
12440         compatibility version for C libraries that lack this call.
12441
12442 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12443
12444         * class.c: MonoTypes stored in MonoClass are stored as
12445         fundamental MonoTypes when the class represents a
12446         fundamental type (System.Int32, ...).
12447         The TypeHandle return by ldtoken is a MonoType*.
12448         * icall.c: ves_icall_get_data_chunk () write out all the
12449         PE/COFF stuff. Implement ves_icall_define_method (),
12450         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12451         * image.c: properly skip unknown streams.
12452         * loader.h, loader.c: add type_class to mono_defaults.
12453         * metadata.c, metadata.h: export compute_size () as
12454         mono_metadata_compute_size () with a better interface.
12455         Typo and C&P fixes.
12456         * pedump.c: don't try to print the entry point RVA if there is no entry point.
12457         * reflection.c, reflection.h: many cleanups, fixes, output method
12458         signatures and headers, typedef and typeref info, compress the metadata
12459         tables, output all the heap streams, cli header etc.
12460         * row-indexes.h: typo fixes.
12461
12462 2001-10-04  Dick Porter  <dick@ximian.com>
12463
12464         * object.h: Add a synchronisation mutex struct to MonoObject
12465
12466         * object.c (mono_new_object): Initialise the object
12467         synchronisation mutexes
12468
12469         * icall.c: System.Threading.Monitor internal calls
12470         
12471         * threads-pthread.h:
12472         * threads-pthread.c: System.Threading.Monitor internal calls
12473
12474         * threads-types.h: New file, includes the system-specific thread
12475         structures
12476         
12477         * threads-pthread-types.h:
12478         * threads-pthread-types.c: New files, handle pthread-specific
12479         synchronisation types
12480
12481         * threads-dummy-types.h: 
12482         * threads-dummy-types.c: New files of dummy support for
12483         thread-specific types
12484
12485         * metadata.c:
12486         * image.c:
12487         * pedump.c: include mono-endian.h not endian.h
12488         
12489         * Makefile.am: More threads files.
12490         Name mono-endian.h not endian.h
12491
12492 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
12493
12494         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
12495         stuff and implement a few more bits.
12496         * icall.c: a field needs to be dereferenced twice. Do not use the same
12497         name for two variables in the same scope.
12498         * image.c, image.h: cleanups.
12499
12500 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
12501
12502         * class.c (mono_class_metadata_init): bug fix: compute the right size
12503
12504 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
12505
12506         * icall.c: implemented some of the Reflection internalcalls.
12507         * image.c, image.h: start writing out the PE/COFF image.
12508         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
12509         that does the reverse than decode_blob_size ().
12510         * object.c: use mono_metadata_encode_value (). Move here
12511         temporary implementation of mono_string_to_utf8 ().
12512         * rawbuffer.c: make malloc_map static.
12513
12514 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12515
12516         * metadata.c: fix type comparison for arrays.
12517         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
12518         Added a couple of new classes to monodefaults.
12519         * icall.c: added a couple of Reflection-related internalcalls.
12520         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
12521         Added a byval_arg MonoType to MonoClass.
12522
12523 2001-09-28  Dick Porter  <dick@ximian.com>
12524
12525         * icall.c:
12526         * threads-pthread.h: 
12527         * threads-pthread.c: Implemented internal calls for
12528         LocalDataStoreSlot operations.  Applied mutexes around all shared
12529         data.  Reworked the thread creation and Start() operations to
12530         avoid a race condition.
12531         
12532         * threads-dummy.h:
12533         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
12534
12535 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
12536
12537         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
12538
12539 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
12540
12541         * class.c, loader.c: warn and return NULL instead of erroring out.
12542         * icall.c: added System.AppDomain::getCurDomain().
12543         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
12544
12545 2001-09-25  Dick Porter  <dick@ximian.com>
12546
12547         * threads-pthread.h:
12548         * threads-pthread.c: Implemented timed thread joining and added
12549         System.Threading.Thread::Join_internal internal call
12550
12551         * icall.c: Added System.Threading.Thread::Join_internal internal call
12552
12553         * threads-dummy.h:
12554         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
12555
12556 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
12557
12558         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
12559         mono_string_intern () to implement the semantics of the ldstr opcode
12560         and the interning of System.Strings.
12561         * icall.c: provide hooks to make String::IsIntern and String::Intern
12562         internalcalls.
12563
12564 2001-09-23  Dick Porter  <dick@ximian.com>
12565
12566         * threads-dummy.c: 
12567         * threads-dummy.h: New files of dummy threading routines
12568
12569         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
12570         support code based on system specifics
12571
12572         Rename PTHREAD_LIBS to THREAD_LIBS
12573         
12574 2001-09-23  Dick Porter  <dick@ximian.com>
12575
12576         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
12577         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
12578         internal calls.
12579         (mono_thread_init): Set up a Thread object instance to return when
12580         the main thread calls Thread.CurrentThread
12581         (mono_thread_cleanup): Wait for all subthreads to exit
12582
12583         * icall.c: New internal calls for System.Threading.Thread::Sleep
12584         (including Schedule) and CurrentThread
12585
12586         * threads.h: New file, to insulate thread-specific stuff from the
12587         rest of the code
12588
12589 2001-09-21  Dick Porter  <dick@ximian.com>
12590
12591         * threads-pthread.h: 
12592         * threads-pthread.c: New file, for handling pthreads-style
12593         threading support.  Start() now starts a new thread and executes
12594         the ThreadStart delegate instance.
12595
12596         * icall.c: Added the internalcall for
12597         System.Threading.Thread::Start_internal
12598
12599         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
12600
12601 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
12602
12603         * loader.c: work around the different signatures for delegates
12604         constructors csc generates in compiled code vs the ones compiled in mscorlib.
12605
12606 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
12607
12608         * class.h, class.c: add mono_class_get_field_from_name ().
12609         * *: Fix C comments and other ANSI C issues.
12610
12611 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
12612
12613         * endian.h, assembly.c: fix some endianness issues.
12614
12615 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
12616
12617         * loader.h, load.c: add delegate_class to mono_defaults.
12618         Handle runtime provided methods in mono_get_method ().
12619
12620 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
12621
12622         * loader.c (mono_get_method): use pinvoke for internal call
12623
12624         * icall.c: use pinvoke for internal call
12625
12626         * loader.c (method_from_memberref): set the method name
12627
12628 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
12629
12630         * metadata.c: help the compiler generate better code for
12631         mono_class_from_mono_type ().
12632
12633 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
12634
12635         * class.c (mono_class_metadata_init): delayed computing of the
12636         class size to mono_class_metadata_init ()
12637
12638 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
12639
12640         * class.c, class.h: add an interfaces member to MonoClass.
12641         * image.c, image.h: add assembly_name field to MonoImage
12642         from the assembly table.
12643         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
12644
12645 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
12646
12647         * class.c: Handle Array in mono_class_from_mono_type ().
12648         * metadata.c, pedump.c: some endian fixes.
12649
12650 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12651
12652         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
12653         * metadata.c: fix small problem introduced with the latest commit.
12654
12655 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
12656
12657         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
12658         We don't need a MonoMetadata pointer anymore to compare signatures in
12659         mono_metadata_signature_equal (), update callers.
12660         Reduced memory usage an number of allocations for MonoMethodHeader and
12661         MonoMethodSignature.
12662
12663 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
12664
12665         * metadata.c: added compare for szarray.
12666
12667 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
12668
12669         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
12670         and add a couple more types to it and mono_defaults. Give an hint on
12671         classes that need implementing in our corlib and are referenced
12672         in mscorlib.
12673
12674 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
12675
12676         * class.h, class.c: keep track if a class is also an Enum.
12677         * loader.c: Implement a couple more types for use in libffi
12678         marshalling. Gives better diagnostics when failing to dlopen
12679         a library. Set method->klass for P/Invoke methods, too.
12680
12681 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
12682
12683         * class.c, class.h: add a MonoType this_arg to MonoClass that
12684         represents a pointer to an object of the class' type that
12685         can be used by the interpreter and later the type cache.
12686         Add best guess alignment info for valuetype objects.
12687
12688 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
12689
12690         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
12691         into MonoType: one less level of indirection and allocation and
12692         simplifies quite a bit of code. Added cache for MonoTypes that are
12693         used frequently, so that we don't need to allocate them all the time.
12694
12695 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
12696
12697         * class.c (mono_class_create_from_typedef): System.Enum is also a
12698         value type, although it does not derive from System.ValueType
12699         (maybe a bug in the ms compiler?)
12700
12701         * metadata.c (mono_type_size): return the right size for value types
12702
12703         * loader.c (mono_get_method): only initialize method header if not abstract
12704
12705         * class.c (mono_class_from_mono_type): use mono_default values. 
12706
12707 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
12708
12709         * *: use MonoClass pointers instead of <type_tokens>
12710         
12711         * class.h: new flag: metadata_inited.
12712
12713         * class.c (mono_class_metadata_init): impl.
12714         (mono_class_instance_size): impl.
12715         (mono_class_data_size): impl.
12716
12717 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12718
12719         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
12720         MonoClass now has the name and name_space fields. 
12721         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
12722         mono_get_method () takes and optional MonoClass as argument.
12723         Removed mono_typedef_from_name() and added mono_class_token_from_name()
12724         instead that takes advantage of a map from class names to typedef
12725         tokens in MonoImage.
12726
12727 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
12728
12729         * metadata.c: zero is not a valid alignment boundary.
12730         Merge MONO_TYPE_VOID in default decoding code.
12731
12732 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
12733
12734         * image.h: merged MonoMetadata into MonoImage
12735
12736         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
12737         identify the type of elements.
12738
12739 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
12740
12741         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
12742         * cil-coff.h: split MonoMSDOSHeader and add size info.
12743         * image.c: add some consistency checks.
12744         * metadata.c: fix row size computation: one programmer
12745         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
12746         add explanation for the locator routine.
12747         Fix decoding of size in method header.
12748         
12749 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
12750
12751         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
12752         (g_concat_dir_and_file): Bring g_concat_dir_and_file
12753         function from gnome-libs.  This uses the right path separator
12754         based on the OS, and also works around a bug in some systems where
12755         a double slash is not allowed. 
12756         (default_assembly_name_resolver): Use g_concat_dir_and_file
12757         (mono_assembly_open): ditto.
12758
12759 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
12760
12761         * metadata.c (mono_metadata_signature_equal): impl.
12762
12763         * *: void is now a realy MonoType (instead of using NULL)
12764         
12765         * metadata.c (do_mono_metadata_parse_type): use
12766         mono_metadata_parse_type to parse void value.
12767
12768 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
12769
12770         * metadata.c, metadata.h: in the signature and method header store
12771         only the space required for holding the loca vars and incoming arguments.
12772
12773 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
12774
12775         * metadata.c (do_mono_metadata_parse_type): treat void like any
12776         other type (instead of assigning NULL);
12777
12778 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
12779
12780         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
12781
12782 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
12783
12784         * image.c (do_mono_image_open): added a cache for arrays.
12785
12786 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
12787
12788         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
12789         decode a single column from a row in a metadata table and changes
12790         to take advantage of it in the typedef locator (gives a nice speed up).
12791         Store offset info for function params.
12792
12793 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
12794
12795         * image.h (MONO_IMAGE_IS_CORLIB): removed 
12796
12797 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
12798
12799         * assembly.c: how could mono_assembly_close () had ever worked?
12800         * metadata.c, metadata.h: provide offset info for local vars.
12801         Implement mono_type_size () to take care of alignment as well
12802         as size (it was mono_field_type_size in cli/class.c before).
12803
12804 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
12805
12806         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
12807
12808         * assembly.h (CORLIB_NAME): set to corlib.dll
12809
12810         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
12811
12812 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
12813
12814         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
12815         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
12816         tokentype.h: massive namespace cleanup.
12817
12818 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
12819
12820         * metadata.h, metadata.c: decode exception clauses when parsing method header.
12821
12822 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
12823
12824         * metadata.c (mono_metadata_free_type): added check for type !=
12825         NULL (void) before calling mono_metadata_free_type()
12826
12827 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
12828
12829         * metadata.h, row_indexes.h: added header with enumerations to use
12830         to index in the columns from tables in metadata and to decode coded
12831         tokens: we should start using this instead of embedding magic numbers
12832         all over the code.
12833
12834 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
12835
12836         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
12837         Move metadata_t info from cli_image_info_t to MonoImage, where
12838         it's easily accessible. Changed all the uses accordingly.
12839         Added the method and class caches to MonoImage.
12840         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
12841         and mono_metadata_decode_value () signature to be more consistent
12842         with the other parse functions (and simplify code). Taken advantage
12843         of zero-length array allocation with GCC. Removed reduntant (and
12844         wrong) MonoFieldType struct and use MonoParam instead. Changed
12845         mono_metadata_parse_field_type () to use common code for parsing.
12846         Added mono_metadata_typedef_from_field () and
12847         mono_metadata_typedef_from_method () to lookup a typedef index from a
12848         field or method token.
12849         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
12850
12851 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
12852
12853         * metadata.c (mono_metadata_parse_field_type): Implement. 
12854         (do_mono_metadata_parse_type): Split engine from
12855         mono_metadata_parse_type, so that we can create smaller structures
12856         for things that just have one pointer to the MonoType (look at
12857         the MonoFieldType)
12858
12859 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
12860
12861         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
12862         as Jan Gray found out, it is incorrect. 
12863
12864 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
12865
12866         * assembly.c: Implement asssembly loading.  This loads an image
12867         and loads all the referenced assemblies.  Come to think of it, we
12868         could always do lazy loading of the assemblies. 
12869
12870         * image.c (mono_image_open): Keep loaded images in a hashtable.
12871
12872         * image.h (MonoImage): Add reference count.
12873
12874 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
12875
12876         * assembly.c (mono_assembly_open): Keep track of the file name in
12877         case the assembly has no ASSEMBLY table.
12878
12879         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
12880         from get.c here.
12881
12882 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
12883
12884         * metadata.c, metadata.h: decode local vars in method header
12885         parse function. Change callers accordingly.
12886
12887 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
12888
12889         * metadata.h, cil-coff.h: protect against multiple inclusion.
12890         Added some new structures to hold information decoded from metadata:
12891         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
12892         and relevant decoding/free functions.
12893         * metadata.c: implement decoding functions. Add warning for out of bounds
12894         index in mono_metadata_locate(). Implement mono_get_method () to retreive
12895         all the info about a method signature and invocation. Remove check on
12896         uninitialized local var in parse_mh() and fix memory leak.
12897
12898 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
12899
12900         * metadata.h: More macros.
12901
12902         * tokentype.h: New file.
12903
12904 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
12905
12906         * assembly.c: added a consistency check and initialize
12907         some structures with g_new0().
12908         * metadata.c: fixed a couple more bugs in table size computation
12909         and add other checks for out-of bound access to metadata.
12910
12911 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
12912
12913         * metatada.c: fix bugs computing table sizes. Spew a
12914         warning when index in string heap is out of bounds.
12915
12916 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
12917
12918         * metadata.h: Add a couple of macros to manipulate tokens. 
12919
12920 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
12921
12922         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
12923         cli_section_tables).
12924
12925 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
12926
12927         * metadata.c (mono_metadata_user_string): New function, provides
12928         access to the UserString heap. 
12929
12930 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
12931
12932         * metadata.c: Add inline documentation.
12933
12934 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
12935
12936         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
12937         files. 
12938
12939 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
12940
12941         * typeattr.h: New file, TypeAttribute flags. 
12942
12943 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
12944
12945         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
12946         mono_assembly_ensure_section): Section loading code.
12947         (load_section_tables): Load the sections.
12948
12949         * mono/metadata/metadata.c (mono_metadata_locate_token,
12950         mono_metadata_locate): Functions to locate the information
12951         definition given a token or a table and an index.
12952         (mono_metadata_compute_table_bases): New.
12953         (compute_size): New function to compute the sizes of the various
12954         tables.
12955
12956         * mono/metadata/metadata.h: Finish listing the different index
12957         types. 
12958
12959         * mono/metadata/pedump.c: Improve to dump new information.
12960
12961 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
12962
12963         * mono/metadata/metadata.c: Entered all the tables matching
12964         Beta2. 
12965
12966         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
12967