2005-01-14 Lluis Sanchez Gual <lluis@novell.com>
[mono.git] / mono / metadata / ChangeLog
1 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
2
3         * object-internals.h: Added some needed fields from StringBuilder class.
4         * marshal.c: Set the maxCapacity when creating a StringBuilder.
5
6 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7
8         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9         threads before shutting down the runtime.
10
11         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
12
13 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
14
15         * object-internal.h, threads.c: implement stacksize and 
16         parameterized thread start functionality (requires
17         matching corlib). Marked broken code for later removal.
18
19 2005-01-12  Martin Baulig  <martin@ximian.com>
20
21         * class-internals.h (MonoGenericClass): Moved the `initialized'
22         flag to MonoDynamicGenericClass, removed `init_pending'.
23         (MonoGenericInst): Added `is_reference' flag.
24
25 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
26
27         * reflection.c (mono_image_create_pefile): Only set the pe_offset
28         inside the MSDOS header. Fixes #71201.
29
30         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
31         gc thread.
32         (mono_domain_finalize): Ditto.
33
34 2005-01-12  Martin Baulig  <martin@ximian.com>
35
36         * class.c (mono_get_shared_generic_class): Use the cache for
37         non-dynamic generic classes.
38
39         * class-internals.h (mono_class_create_generic_2): Removed
40         function prototype, this function is now static inside class.c.
41
42         * class.c (mono_class_create_generic_2): Made this static, only
43         call it from mono_class_init() and mono_class_setup_parent().
44         (collect_implemented_interfaces_aux): Call mono_class_init() on
45         the interfaces we collect.
46         (mono_class_setup_vtable): Call mono_class_init (class->parent).
47
48 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
49
50         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
51         it a real thread handle.
52
53         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
54         MonoJitExceptionInfo, since each catch clause needs its own variable.
55         
56 2005-01-11  Dick Porter  <dick@ximian.com>
57
58         * image.c (mono_pe_file_open): New variant on mono_image_open()
59         that does not set up the CLI metadata; used for FileVersionInfo so
60         it can get the data for windows binaries too.
61         
62         * process.c (process_read_string_block): Don't read off the end of
63         the StringTable block.
64
65         These both fix bug 70766.
66
67 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
68
69         * gc.c: set some fields to NULL at GC cleanup time.
70         * threads.c: if we quit the main thread, call exit ().
71
72 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
73
74         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
75
76 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
77
78         * threads.h, threads.c, object.c: added accessor and settor for
79         main_thread. Handle it specially when exiting from it: wait
80         for other foreground threads to exit.
81
82 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
83
84         * process.c, verify.c: remove some bloat.
85
86 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
87
88         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
89         the calling convention to cdecl under win32.
90
91 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
92
93         * object.c (mono_object_get_size): New function to get the size of
94         an object instance.
95
96         * profiler.c (simple_allocation): Use above.
97
98 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
99
100         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
101         ves_icall_System_AppDomain_getRootDomain (as it's not required to
102         get an appdomain by it's id and we can't assume the root's id is 0).
103         * domain-internals.h: Change the function prototype to match.
104         * icall.c: Change the icall table for AppDomain.
105
106 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
107
108         * locales.c (string_invariant_compare_char): Only compute
109         GUnicodeTypes in the case where we need them.  Test for ordinality
110         first and return if so.
111
112         From the commit:
113
114                 /*
115                  * FIXME: here we must use the information from c1type and c2type
116                  * to find out the proper collation, even on the InvariantCulture, the
117                  * sorting is not done by computing the unicode values, but their
118                  * actual sort order.
119                  */
120
121 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
122
123         * loader.c: for P/Invoke methods, allow the "Internal" shared
124         library name to refer to the calling process symbol namespace.
125
126 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
127
128         * Makefile.am: Add the security manager to the build.
129         * security-manager.c|h: New. Initialization of the security manager.
130
131 2005-01-07  Dick Porter  <dick@ximian.com>
132
133         * threads.c: 
134         * monitor.c: Update thread state during Monitor and WaitHandle
135         waits.  Fixes bug 71031.
136
137 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
138
139         * reflection.c (property_encode_signature): Correctly handle when the
140         property has no methods.
141
142 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
143
144         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
145         
146         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
147         fields from mb, not rmb. Fixes #71017.
148
149         * marshal.c (emit_ptr_to_str_conv): Add support for 
150         ByValTStr -> string conversion. Fixes #71015.
151
152         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
153
154         * mempool.c (mono_mempool_contains_addr): New helper function.
155
156 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
157
158         * metadata.c (mono_metadata_compute_size): Fix size calculation of
159         HasSematics encoded fields.
160         
161         * metadata.c (mono_type_to_unmanaged): Improve error message for 
162         invalid string marshalling.
163
164         * metadata.c: Fix warnings.
165         
166 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
167
168         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
169         profiler support.
170
171 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
172
173         * domain.c object.c domain-internals.h: Revert part of r38077 since the
174         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
175         tests.
176
177 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
178
179         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
180         so methods containing these can be AOTed.
181
182 2005-01-03  Martin Baulig  <martin@ximian.com>
183
184         * loader.c (find_method): Removed the hack for generic instances.
185         (method_from_memberref): If our parent is a generic instance, pass
186         its generic type definition to find_method() and then inflate the
187         method.
188         (mono_get_method_constrained): Pass the generic type definition to
189         find_method() and inflate the method later.
190
191         * class-internals.h (MonoStats): Added `generic_class_count'.
192
193         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
194         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
195
196         * reflection.c (mono_custom_attrs_from_params): Don't ignore
197         generic type definitions.
198
199 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
200
201         * loader.c icall.c: Fix warnings.
202
203 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
204
205         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
206         blittable types. Fixes #70864.
207
208 2004-12-29  Martin Baulig  <martin@ximian.com>
209
210         * icall.c
211         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
212
213         * reflection.c (mono_method_get_object): Create a
214         "System.Reflection.MonoGenericMethod" for inflated methods; don't
215         call mono_get_inflated_method().
216
217         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
218
219 2004-12-27  Martin Baulig  <martin@ximian.com>
220
221         * class-internals.h (MonoMethod): Added `is_inflated' flag.
222         (MonoMethodInflated): Added `inflated' field.
223
224         * class.c (mono_class_inflate_generic_method): Don't really
225         inflate the method here; just set the `is_inflated' flag in the
226         MonoMethod.
227         (mono_class_get_inflated_method): Actually inflate the method here
228         if it's not already inflated; we use the MonoMethodInflated's new
229         `inflated' field as a cache.
230
231 2004-12-26  Martin Baulig  <martin@ximian.com>
232
233         * class.c
234         (inflate_generic_class): Moved some code out of inflate_generic_type().
235         (mono_class_inflate_generic_method): If we're already inflated,
236         inflate the context and use the declaring method; ie. make sure
237         the declaring method of an inflated method is always the generic
238         method definition.
239         (mono_class_create_from_typedef): Create
240         `class->generic_container->context->gclass'.
241
242 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
243
244         * metadata-internals.h, marshal.c, reflection.c: More
245         MonoGHashTable->GHashTable.
246
247         * domain-internals.h, class.c: Change MonoGHashTable's into
248         GHashTables for some cases where no gc stuff is used
249
250         All users: update apis
251
252 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
253
254         * metadata.c (builtin_types): Make this `const'. Makes this get
255         put into the shareable section.
256         (mono_metadata_init): Casts to make gcc happy.
257
258 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
259
260         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
261
262 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
263
264         * icall.c: Added an internal call to retrieve the position and length
265         of assembly-level declarative security attributes (RequestMinimum, 
266         RequestOptional and RequestRefuse). This is used by the Assembly class
267         to re-create the corresponding permission sets.
268
269 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
270
271         * marshal.c: fix the stelemref wrapper to be type correct
272         (and faster).
273
274 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
275
276         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
277         to do key & 0x7fffffff. Hashtable already does this. It just
278         results in longer code.
279
280 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
281
282         * appdomain.c: Bump corlib version.
283         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
284         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
285         * reflection.c|h: Add functions to get declarative security infos
286         (blob position and length) for assemblies, classes and methods.
287
288 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
289
290         * reflection.c: sort the constant table (bug #70693).
291
292 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
293
294         * object-internals.h, threads.c, domain.c: add accessors for
295         the MonoThread and MonoDomain tls keys.
296
297 2004-12-18  Martin Baulig  <martin@ximian.com>
298
299         * class.c (inflate_generic_type): If we're inflating a generic
300         instance, set `ngclass->context->container = context->container';
301         ie. the container we inflated into.
302
303         * metadata.c (mono_metadata_parse_generic_param): Reflect above
304         inflate_generic_type() changes.
305
306 2004-12-17  Martin Baulig  <martin@ximian.com>
307
308         * class-internals.h
309         (MonoGenericClass): Replaced `MonoType *generic_type' with
310         `MonoClass *generic_class'.  Removed `dynamic_info'; if
311         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
312         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
313
314 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
315
316         * exception.c (mono_exception_from_token): New helper function.
317
318 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
319
320         * assembly.c (mono_assembly_load_with_partial_name): Call 
321         mono_assembly_loaded before invoking the preload hooks. Fixes
322         #70564.
323
324         * object-internals.h (MonoThread): Change culture_info and 
325         ui_culture_info into an array.
326
327         * threads.c: Cache culture info objects from more than one appdomain.
328
329         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
330         current UI culture.
331
332 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
333
334         * threads.h threads.c appdomain.c: Clear the culture_info field of
335         all threads during unloading if they point to an object in the dying
336         appdomain.
337
338 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
339
340         * culture-info.h (TextInfoEntry): New struct
341         * object-internals.h: sync with managed
342         * locales.c: fill the `text_info_data' field
343         * culture-info-tables.h: update
344
345 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
346
347         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
348         collector.
349
350 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
351
352         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
353         (ves_icall_ModuleBuilder_getMethodToken): Ditto
354
355 2004-12-12  Martin Baulig  <martin@ximian.com>
356
357         * mono-debug-debugger.c (write_type): If we're an enum and the
358         builtin types have already been initialized, call mono_class_init().
359
360 2004-12-11  Martin Baulig  <martin@ximian.com>
361
362         * metadata.c (mono_metadata_load_generic_params): Added
363         `MonoGenericContainer *parent_container' argument; automatically
364         compute `container->is_method'; pass the correct owner to
365         get_constraints().      
366
367         * reflection.c (compare_genericparam): Sort the GenericParam table
368         according to increasing owners. 
369
370 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
371
372         * profiler.c: allow disabling the default profiler.
373
374 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
375
376         * decimal.c, icall.c: allow disabling System.Decimal support.
377
378 2004-12-09  Marek Safar <marek.safar@seznam.cz>
379
380         * reflection.c: Add support for null attribute arguments.
381
382 2004-12-09  Martin Baulig  <martin@ximian.com>
383
384         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
385         names to get rid of compiler warnings.
386
387 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
388
389         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
390         mono_marshal_load_type_info (). Fixes #69625.
391         (mono_marshal_get_ptr_to_struct): Likewise.
392
393 2004-12-08  Martin Baulig  <martin@ximian.com>
394
395         * mono-debug.h: Bumped version number to 47.
396
397         * mono-debug-debugger.c
398         (mono_debugger_event_handler, mono_debugger_event): Take two
399         guint64 arguments insteed of a gpointer and a guint32.  
400
401 2004-12-08  Martin Baulig  <martin@ximian.com>
402
403         * debug-mono-symfile.h
404         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
405         `address' to `native_offset'.
406
407 2004-12-08  Martin Baulig  <martin@ximian.com>
408
409         * class.c (mono_class_create_from_typespec): Only inflate if we
410         either have `context->gclass' or `context->gmethod'.
411
412 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
413
414         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
415
416         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
417
418         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
419
420         * reflection.c (mono_assembly_get_object): Remove the workaround put
421         in for the release.
422         
423         * appdomain.c: Use the corlib_internal field from MonoAssembly.
424
425         * appdomain.c: Bump corlib version.
426
427         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
428         be visible in other appdomains.
429
430 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
431
432         * threads.c: Interlocked inc and dec for longs were messed up,
433         use a KISS based impl for this. Fixes 70234
434
435 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
436
437         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
438
439 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
440
441         * icall.c: fix to follow policy not to allow struct
442         arguments in icalls.
443
444 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
445
446         * process.c: make the patch that handles spaces in file paths work
447         on mono/windows too.
448
449 2004-12-06  Martin Baulig  <martin@ximian.com>
450
451         * class.c (mono_class_create_generic): Call
452         mono_class_setup_supertypes() if we're dynamic.
453         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
454
455 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
456
457         * object-internals.h: Add new fields to MonoThread.
458
459         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
460
461         * icall.c threads-types.h threads.c: Add new icalls.
462
463         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
464
465         * object-internals.h (MonoReflectionAssembly): Sync object layout with
466         managed side.
467
468         * appdomain.c: Bump corlib version.
469
470         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
471         internal assemblies. Fixes #69181.
472
473 2004-12-05  Martin Baulig  <martin@ximian.com>
474
475         * class.c (mono_class_inflate_generic_signature): Make this a
476         no-op if `context' is NULL or we don't have any type parameters;
477         also copy `sentinelpos'.        
478
479 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
480
481         * image.c: Add unbox_wrapper_cache.
482
483         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
484
485         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
486         function generator.
487         
488         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
489         Fixes #70173.
490
491         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
492         
493 2004-12-04  Martin Baulig  <martin@ximian.com>
494
495         * loader.c (mono_method_get_signature_full): New public function;
496         like mono_method_get_signature(), but with an additional
497         `MonoGenericContext *' argument.
498
499         * class.c (mono_class_inflate_generic_signature): Formerly known
500         as inflate_generic_signature(); make this public.
501
502 2004-12-04  Martin Baulig  <martin@ximian.com>
503
504         * metadata.c
505         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
506         instead of a `MonoGenericContainer *'.  
507         (mono_metadata_parse_array_full): Likewise.
508         (mono_metadata_parse_signature_full): Likewise.
509         (mono_metadata_parse_method_signature_full): Likewise.
510         (mono_metadata_parse_generic_inst): Likewise.
511         (mono_metadata_parse_generic_param): Likewise.
512         (mono_metadata_parse_mh_full): Likewise.
513         (mono_type_create_from_typespec_full): Likewise.
514
515 2004-12-03  Martin Baulig  <martin@ximian.com>
516
517         * class-internals.h (MonoGenericContainer): Replaced the
518         `MonoGenericContext * pointer with a `MonoGenericContext'
519         structure and made it the first element.
520
521 2004-12-03  Martin Baulig  <martin@ximian.com>
522
523         * class.c
524         (inflate_generic_type): Set the `context->container' when creating
525         a new MonoGenericContext.
526         (mono_class_inflate_generic_method): Likewise.
527         (mono_class_create_from_typespec): Just use `context->container'
528         to get the container.
529
530         * loader.c (method_from_methodspec): Set `context->parent' from
531         `context->container' - and if that's a method container, use its
532         parent.  Also set the `context->container' when creating a new
533         MonoGenericContext.
534         (mono_get_method_from_token): Use just `context->container' to get
535         the container.
536
537         * metadata.c (do_mono_metadata_parse_generic_class): Also set
538         `gclass->context->container'.
539
540         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
541         the `context->container' when creating a new MonoGenericContext.
542
543 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
544
545         * reflection.c (compare_genericparam): Sort params with identical
546         owner by their number. Fixes gen-111 on sparc.
547
548 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
549
550         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
551         around the domain changes.
552
553         * appdomain.c (mono_domain_unload): Handle the case when the thread
554         calling Unload is itself being aborted during unloading. Fixes #70022.
555
556         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
557
558         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
559         checkpoint_func as an icall so it gets a wrapper.
560         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
561         in the cross-appdomain wrappers too.
562
563         * threads.c (mono_thread_has_appdomain_ref): Make this public.
564
565         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
566
567         * reflection.c: Fix some memory leaks.
568         
569 2004-12-02  Martin Baulig  <martin@ximian.com>
570
571         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
572
573         * metadata.c (generic_class_cache): New static hashtable.
574         (mono_metadata_lookup_generic_class): New public method.
575
576 2004-12-02  Martin Baulig  <martin@ximian.com>
577
578         * class.c (mono_class_create_from_typedef): Call
579         mono_class_setup_parent() and mono_class_create_mono_type() before
580         parsing the interfaces.
581
582 2004-12-02  Martin Baulig  <martin@ximian.com>
583
584         * metadata.c (generic_inst_cache): New static hashtable.
585         (mono_metadata_lookup_generic_inst): New public function.
586         (mono_metadata_inflate_generic_inst): New public function.
587         (mono_metadata_parse_generic_inst): New public function.
588         (do_mono_metadata_parse_generic_class): Use the new
589         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
590         since this'll also use the cache.
591
592         * reflection.c (mono_reflection_bind_generic_method_parameters):
593         Use mono_metadata_lookup_generic_inst() to use the new cache.
594
595         * class.c (inflate_mono_type): Use
596         mono_metadata_inflate_generic_inst() to inflate a generic
597         instance; this'll also use the new cache.
598
599         * loader.c (method_from_methodspec): Use
600         mono_metadata_parse_generic_inst() and
601         mono_metadata_inflate_generic_inst() rather than parsing it
602         manually, so we can use the new cache.
603
604 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
605
606         * threads.c (wait_for_tids): Do not incorrectly free threads when 
607         the wait times out.
608
609 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
610
611         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
612         iter->args based on whether parameters are passed in registers (i.e.
613         MONO_ARCH_REGPARMS is defined)
614
615 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
616
617         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
618         the exception message. Fixes #70070.
619         (method_from_methodspec): Fix warnings.
620
621 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
622
623         * process.c: (complete_path) return the path quoted
624
625 2004-12-01  Martin Baulig  <martin@ximian.com>
626
627         * class-internals.h (MonoGenericInst): New structure.
628         (MonoGenericClass): Replaced `type_argc', `type_argv' and
629         `is_open' with `MonoGenericInst *inst'.
630         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
631         `is_open' with `MonoGenericInst *inst'.
632
633 2004-11-30  Martin Baulig  <martin@ximian.com>
634
635         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
636
637         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
638         to `generic_class_cache'.
639
640         * metadata.c
641         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
642         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
643         (mono_generic_inst_is_valuetype): Renamed to
644         mono_generic_class_is_valuetype().
645
646         * class-internals.h
647         (MonoGenericInst): Renamed to MonoGenericClass.
648         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
649         (MonoClass): Renamed `generic_inst' to `generic_class'.
650         (MonoGenericContext): Renamed `ginst' to `gclass'.
651
652         * object-internals.h
653         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
654
655         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
656         mono_reflection_generic_class_initialize().
657
658         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
659         now known as "System.Reflection.MonoGenericClass".
660         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
661
662 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
663
664         * class-internals.h: Added a flag field to MonoClass to cache the
665         declarative security attributes actions associated with the class.
666         * domain-internals.h: Added booleans to MonoJitInfo to cache the
667         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
668         applicable to the JITted method.
669         * reflection.c|h: Added functions to extract (as flags) which security
670         actions are available (declaratively) for a method, class or assembly.
671         * metadata.c|h: Added functions to search the declarative security
672         table in the metadata.
673         
674 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
675
676         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
677         EXPORTEDTYPES are already in the class name cache, so there is no
678         need to add extra code here to look at them. Just removes a bit of
679         cruft.
680
681         (ves_icall_System_Environment_get_TickCount): No need for #if
682         WINDOWS. We already have the code in io-layer.
683
684 2004-11-28  Martin Baulig  <martin@ximian.com>
685
686         * loader.c
687         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
688         Fixes gen-112.cs.
689
690 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
691
692         * assembly.c (do_mono_assembly_open): Instead of having a
693         conditional WITH_BUNDLE, incorporate support for bundles here, by
694         having a global `bundles' variable holding a pointer to the actual
695         bundles. 
696
697         (mono_register_bundled_assemblies): New API call used by the
698         bundle code. 
699
700         See mkbundle.1 for details.
701         
702 2004-11-27  Martin Baulig  <martin@ximian.com>
703
704         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
705         the vtable for generic methods.
706
707 2004-11-26  Martin Baulig  <martin@ximian.com>
708
709         * metadata.c
710         (mono_metadata_generic_method_hash): New public function.
711         (mono_metadata_generic_method_equal): Likewise.
712
713         * class-internals.h
714         (MonoGenericContainer): Added `GHashTable *method_hash'.
715
716         * reflection.c (ReflectionMethodBuilder): Added
717         `MonoGenericContainer *generic_container'.
718         (reflection_methodbuilder_to_mono_method): Don't create a new
719         MonoGenericContainer each time we're called.
720         (mono_reflection_bind_generic_method_parameters): Use
721         `container->method_hash' to cache the results so we don't create a
722         different method if we're called several times with the same
723         arguments.
724
725         * loader.c (method_from_methodspec): Use the new
726         `container->method_hash' here, too.
727
728 2004-11-26  Martin Baulig  <martin@ximian.com>
729
730         * class.c (inflate_generic_signature): Correctly compute
731         `res->has_type_parameters'.
732         (mono_class_vtable): Use the `has_type_parameters' flag to
733         determine whether we're a generic method.
734
735         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
736
737 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
738
739         * object.c (mono_runtime_run_main): Fix a small memory leak.
740
741 2004-11-25  Martin Baulig  <martin@ximian.com>
742
743         * class.c (set_generic_param_owner): Fixed the loop.
744
745 2004-11-25  Martin Baulig  <martin@ximian.com>
746
747         * object.c (mono_class_vtable): Don't create any JIT wrappers for
748         generic methods.
749
750 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
751
752         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
753         names. Fixes #69787.
754
755 2004-11-24  Martin Baulig  <martin@ximian.com>
756
757         * class.c (mono_class_create_generic_2): If we don't have a
758         `ginst->parent', inflate `gklass->parent' to get our parent.
759
760 2004-11-24  Martin Baulig  <martin@ximian.com>
761
762         * reflection.c (compare_genericparam): Correctly sort the
763         GenericParam table; fixes #69779.
764
765 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
766
767         * reflection.c: When writing a PE file, don't create a huge
768         buffer in memory. Just write the arrays we have to the file.
769         This reduces memory usage.
770
771         * metadata-internals.h: MonoDynamicStream pefile is no longer used
772         globally.
773
774 2004-11-17  Martin Baulig  <martin@ximian.com>
775
776         * class.c (mono_class_init): Don't setup `class->parent' for
777         dynamic instances; moved this to mono_class_generic_2().
778         (mono_class_create_generic): Also set `klass->inited' for dynamic
779         generic instances.
780         (mono_class_create_generic_2): Don't do anything for dynamic
781         generic instances.  Set `klass->parent' here and also call
782         mono_class_setup_parent() here. 
783
784         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
785         `MonoType *parent' argument; set `ginst->parent' before calling
786         mono_class_create_generic_2(), so we set the correct parent.
787
788 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
789
790         * reflection.c: allow getting attributes from ModuleBuilder
791         (used by ikvm).
792
793 2004-11-17  Martin Baulig  <martin@ximian.com>
794
795         * class.c (mono_class_create_from_typedef): If a type parameter is
796         inherited from an outer class, set its owner to that class.
797
798 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
799
800         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
801           for (int*) written size. This fixes bug #69592.
802
803 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
804
805         * icall.c: Added IsAuthenticodePresnet internal call.
806         * image.c|h: New function that check a MonoImage for an Authenticode
807         signature in the certificate PE data directory.
808         * security.c|h: New internal call to ask the runtime if an 
809         Authenticode signature seems referenced in the PE header.
810
811 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
812
813         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
814
815         * reflection.c (mono_image_create_pefile): Free the assembly streams
816         after writing out the assembly file.
817
818         * object.c (mono_runtime_run_main): Fix small memory leak.
819
820         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
821         property access modifiers. Fixes #69389.
822
823 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
824
825         * domain.c, object.c, object-internals.h, domain-internals.h,
826         object.h, marshal.c: keep dynamic code info per domain.
827
828 2004-11-15  Martin Baulig  <martin@ximian.com>
829
830         * class.c (mono_type_get_name_recurse): Put type arguments in
831         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
832         see bug #68387.
833
834 2004-11-15  Martin Baulig  <martin@ximian.com>
835
836         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
837         (mono_class_setup_vtable): When computing `the_cname' for a
838         generic instance, don't include the namespace since we'd otherwise
839         add it twice.
840
841 2004-11-15  Martin Baulig  <martin@ximian.com>
842
843         * class.c (mono_class_create_generic): Changed return type to void.
844         (mono_class_create_generic_2): New public function; setup
845         `class->method', `class->field' and `class->interfaces' here
846         instead of in mono_class_init().
847
848         * class.h (mono_class_create_generic): Moved to class-internals.h.
849
850 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
851
852         * reflection.c (mono_image_create_pefile): take a file HANDLE.
853         rather than writing to memory, write to this file. Right now,
854         we are just writting into a buffer, and copying that. However
855         we can avoid the buffer later.
856
857         (mono_dynamic_stream_reset): new function
858
859         * icall.c, object-internals.h: update for the above.
860
861 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
862
863         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
864         have been using gc'd memory. First it is slower, unlikely
865         the comment in the source code said, secondly, it increases
866         our footprint to do it in the gc.
867
868         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
869         the method so that it does not have to copy to managed code.
870
871 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
872
873         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
874
875 2004-11-12  Martin Baulig  <martin@localhost>
876
877         * reflection.c (mono_image_create_token): Allow generic method
878         definitions here, since they may appear in an `.override'; see
879         gen-98/gen-99 for an example.
880
881 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
882
883         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
884         #69365.
885
886         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
887         descriptive.
888
889 2004-11-11  Martin Baulig  <martin@ximian.com>
890
891         * class.c (mono_class_setup_vtable): In an explicit interface
892         implementation, the method name now includes the arity.
893
894 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
895
896         * object.c (mono_array_full_copy): Fix warning.
897
898 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
899
900         * appdomain.c: Removed look_for_method_by_name(). Use the new method
901         mono_class_get_method_from_name() instead.
902         
903         * class-internals.h: Added two new types of wrappers. 
904         Added MonoRemotingTarget enum. Added new trampoline function type, which
905         takes an additional MonoRemotingTarget value as parameter, so it is
906         possible to request a trampoline for a specific target.
907         
908         * class.c: Added new mono_class_get_method_from_name() method.
909         
910         * class.h: In MonoRemoteClass, we can have now to vtables, one for
911         general remoting sinks and one specific for cross domain calls.
912         
913         * debug-helpers.c: Added new wrapper names.
914         
915         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
916         of a remote class.
917         
918         * image.c: Porperly delete value objects form the remoting invoke hashtable.
919         
920         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
921         with several other methods (mono_marshal_get_xappdomain_dispatch,
922         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
923         and others) can generate a fast remoting wrapper for cross domain calls.
924         More information can be found in docs/remoting.
925         Other changes: Removed mono_find_method_by_name, and used
926         mono_class_get_method_from_name instead.
927         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
928         is stored in the remoting invoke hashtable.
929         
930         * marshal.h: published the new method for getting the xdomain wrapper,
931         and also added a method for getting the adequate wrapper for a given
932         method and target.
933         
934         * object-internals.h, object.c: Added a couple of methods for capying and
935         cloning arrays.
936         Modified mono_install_remoting_trampoline, which takes the new remoting
937         trampoline that has a remoting target as parameter.
938         mono_class_proxy_vtable now also takes a remoting target as parameter, and
939         will return the most suitable vtable for the target.
940         Added mono_remote_class_vtable, which returns the vtable of a remote class
941         (which can be the normal remoting vtable or the xdomain vtable).
942         
943         * threads.c: the xdomain invoke and dispatch wrappers must also be
944         protected against interruptions.
945
946 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
947
948         * icall.c: use memmove in BlockCopyInternal when the source and
949         destination arrays are the same.
950
951 2004-11-09  Martin Baulig  <martin@ximian.com>
952
953         * class-internals.h (MonoGenericContainer): Removed `method' and
954         `signature', replaced them with `is_method' and `is_signature'
955         flags.  Added `context'.
956
957         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
958         instead of a `MonoGenericContainer *'.
959
960         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
961         for dynamic type parameters.
962         (mono_metadata_load_generic_params): Setup `container->context'.
963
964         * reflection.c (mono_reflection_setup_generic_class): Setup
965         `tb->generic_container->context'.
966         (do_mono_reflection_bind_generic_parameters): Use
967         mono_class_inflate_generic_type() to correctly inflate types,
968         rather than using our own hack just for MONO_TYPE_VAR.
969
970 2004-11-09  Martin Baulig  <martin@ximian.com>
971
972         * class.c (mono_class_inflate_generic_method): Small fix; don't
973         crash here.
974
975         * icall.c
976         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
977         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
978         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
979         (ves_icall_Type_BindGenericParameters): Likewise.
980         (ves_icall_Type_get_IsGenericInstance): Likewise.
981         (ves_icall_Type_GetGenericParameterPosition): Likewise.
982         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
983         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
984         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
985
986 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
987
988         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
989         assembly versions and public key tokens. Fixes #69113.
990
991 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
992
993         * metadata.c: fix bug introduced with the type cache changes
994         on 2004-11-06.
995
996 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
997
998         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
999         the MonoClass pointer instead of the token in exception clauses.
1000         * reflection.c: updates for the above and make the code not depend
1001         on the structure of MonoExceptionClause.
1002
1003 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
1004
1005         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1006         Add support for dynamic assemblies. Fixes #69114.
1007
1008         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
1009
1010 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
1011
1012         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
1013         since most only those methods use it. the code member of
1014         MonoMethodPInvoke was dead, so that can be removed too. Also,
1015         remove inline_count (again, not used), and move slot so that it
1016         can share bits with some other flags. This saves 8 bytes in the
1017         structure and gives us about 50 kb back for mcs helloworld.cs
1018
1019         * *.[ch]: Do naming changes for the above.
1020
1021         * loader.c (mono_method_get_header): Lazily init the header
1022         on first access.
1023         (mono_get_method_from_token): don't init the header here
1024         (mono_free_method): the header may never be allocated
1025
1026         Overall, this saves 150 kb of unmanaged allocations
1027         for mcs helloworld.cs. That accounts for 10% of the unmanaged
1028         memory at runtime.
1029         
1030         * loader.c, loader.h (mono_method_get_header): new accessor.
1031
1032         * *.[ch]: use the above method. Prepares us to lazily load
1033         the header.
1034
1035         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
1036         three warnings, which are actual bugs (see 69206).
1037
1038         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
1039         unused. Saves a cool 4 bytes / method.
1040
1041 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
1042
1043         * metadata.c (builtin_types): Add types for System.Object here.
1044         (mono_metadata_parse_type_full): Cache MonoType*'s that are
1045         for a class or valuetype from klass->this_arg or klass->byval_arg.
1046
1047         On mcs for a hello world, this gets us down from 21836 MonoType's
1048         to 14560.
1049
1050         (mono_metadata_free_type): Account for the above change.
1051
1052 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
1053
1054         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
1055         exception instead of asserting if name is null.
1056         (ves_icall_System_AppDomain_GetData): Ditto.
1057
1058 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
1059
1060         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
1061         EnumBuilder.
1062
1063         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
1064         Return NULL when the domain does not have entry_assembly set.
1065
1066         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
1067         Add a 'resource_modules' argument.
1068         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
1069
1070         * reflection.c (mono_reflection_create_runtime_class): Move setting
1071         of wastypebuilder here, so mono_get_type_object () returns a MonoType
1072         for enums too.
1073
1074         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
1075         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
1076         Throw an ArgumentNullException if 'ptr' is null.
1077
1078         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
1079         assemblies here. Fixes #69020.
1080
1081 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
1082
1083         * reflection.c (build_compressed_metadata): Fix the previous patch for
1084         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
1085         the stack.
1086
1087 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
1088
1089         * assembly.c (mono_assembly_names_equal): Allow a match if one of
1090         the cultures is false. Fixes #69090.
1091
1092         * reflection.c (build_compressed_metadata): Fix invalid memory read 
1093         detected by valgrind.
1094         
1095         * reflection.c (mono_reflection_get_type): Avoid triggering a 
1096         TypeResolve multiple times for the same type. Fixes #65577.
1097
1098 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
1099
1100         * marshal.c: Avoid using ldftn to call managed functions. It is
1101         much slower than just a call.
1102
1103         * reflection.c (mono_module_get_object): free the basename we
1104         allocate here from glib.
1105         
1106         * reflection.c (ensure_runtime_vtable): make sure to free
1107         overrides.  Also, we were allocating an array of MonoMethod not an
1108         array of MonoMethod*.
1109
1110         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
1111
1112         * image.c (mono_image_close): free image->guid here.
1113
1114 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
1115
1116         * reflection.c: Fix some spec conformance issues with the PE file
1117         structures so mcs compiled apps run on the Net 2.0 beta.
1118
1119 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
1120
1121         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
1122         Implement this. Fixes #67264.
1123
1124         * debug-helpers.h debug-helpers.c marshal.c: Move 
1125         mono_find_method_by_name to debug-helpers.c.
1126
1127 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
1128
1129         * object.c (mono_release_type_locks): type_initialization_hash is
1130         a GHashTable.
1131
1132         * reflection.c object.c object-internals.h: Fix warnings.
1133
1134         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
1135         without accessors. Fixes #61561.
1136
1137         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
1138         application base from the root domain if not set. Fixes #65641.
1139         (mono_runtime_init): Fix warning.
1140
1141 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1142
1143         * appdomain.c: call mono_thread_pool_init.
1144         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1145         of worker threads based on the number of CPUs and the environment
1146         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1147         for non-windows (windows) systems.
1148
1149 2004-10-27  Chris Toshok  <toshok@ximian.com>
1150
1151         * mono-debug-debugger.c (write_class): don't call mono_class_init
1152         here, as even with the check for (!klass->init_pending), we get
1153         into a situation where we're hitting cycles in class
1154         initialization.  Fixes #68816.
1155
1156 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1157
1158         * image.c: Avoid overwriting values in the loaded_images_hash when an
1159         assembly is loaded multiple times. Fixes #61152.
1160
1161         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1162         so multiple satellite assemblies for the same name can be loaded.
1163         Fixes #68259.
1164
1165         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1166         not NULL.
1167
1168         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1169         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1170
1171         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1172         pending finalizers are not invoked after the appdomain has been 
1173         unloaded. Fixes #67862.
1174
1175 2004-10-22  Martin Baulig  <martin@ximian.com>
1176
1177         * mono-debug-debugger.c
1178         (mono_debugger_runtime_invoke): Don't box valuetypes.
1179
1180 2004-10-22  Chris Toshok  <toshok@ximian.com>
1181
1182         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1183         don't hide private methods.
1184
1185 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1186
1187         * icall.c: Allows the runtime to "share" (when known) the public key
1188         token of an assembly. This avoid the need to recalculate the token 
1189         (from the public key) in managed code.
1190
1191 2004-10-21  Chris Toshok  <toshok@ximian.com>
1192
1193         * debug-helpers.c (append_class_name): argh, revert last patch.
1194         
1195 2004-10-21  Chris Toshok  <toshok@ximian.com>
1196
1197         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1198         not '/', so that it matches what the debugger uses to look up
1199         methods.
1200
1201 2004-10-21  Martin Baulig  <martin@ximian.com>
1202
1203         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1204         public method; this is called each time an exception is thrown and
1205         allows the debugger to use exception catch points.
1206
1207 2004-10-21  Martin Baulig  <martin@ximian.com>
1208
1209         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1210         the stack pointer and the exception object in some struct and pass
1211         that to the debugger.
1212
1213 2004-10-21  Chris Toshok  <toshok@ximian.com>
1214
1215         * mono-debug-debugger.c (do_write_class): add instance/static
1216         event support.  We don't expose "raise" or "other" yet.
1217         (event_is_static): new method.
1218
1219 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1220
1221         * mono-debug-debugger.c
1222         (mono_debugger_handle_exception): Remove
1223         bogus return value for fussy compilers.
1224
1225 2004-10-20  Martin Baulig  <martin@ximian.com>
1226
1227         * mono-debug-debugger.c
1228         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1229         (mono_debugger_handled_exception): Likewise.
1230
1231 2004-10-20  Martin Baulig  <martin@ximian.com>
1232
1233         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1234         MONO_DEBUGGER_EVENT_EXCEPTION.
1235
1236         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1237         public function to send the debugger a notification for an
1238         exception and inform it about a catch/finally clause.
1239
1240 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1241
1242         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1243         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1244         fix 2.95 build. 
1245
1246         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1247
1248 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1249
1250         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1251         marshalled as [In,Out]. Fixes #58325.
1252
1253 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1254
1255         * reflection.c (mono_method_body_get_object): Implement some fields.
1256
1257 2004-10-12  Martin Baulig  <martin@ximian.com>
1258
1259         * reflection.c (mono_reflection_bind_generic_parameters): Small
1260         fix, correctly retrieve our parent from a generic instance.
1261
1262 2004-10-12  Martin Baulig  <martin@ximian.com>
1263
1264         * metadata.c (mono_metadata_generic_param_equal): We always have
1265         an owner.
1266
1267         * class.c
1268         (mono_class_from_generic_parameter): We need to have an owner.
1269         (my_mono_class_from_generic_parameter): Likewise.
1270
1271         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1272         mono_reflection_create_generic_class() and added a new
1273         mono_reflection_setup_generic_class().  
1274         (mono_reflection_initialize_generic_param): If we're a nested
1275         generic type and inherited from the containing class, set our
1276         owner to the outer class.
1277
1278 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1279
1280         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1281
1282         * reflection.c (mono_method_body_get_object): New function to create
1283         a MethodBody object.
1284
1285         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1286
1287 2004-10-11  Martin Baulig  <martin@ximian.com>
1288
1289         * metadata.c (_mono_metadata_type_equal): Renamed to
1290         do_mono_metadata_type_equal() and made static.
1291
1292 2004-10-11  Martin Baulig  <martin@ximian.com>
1293
1294         * appdomain.c: Bump corlib version number to 28.
1295
1296 2004-10-10  Martin Baulig  <martin@ximian.com>
1297
1298         * class-internals.h
1299         (MonoGenericInst): Added `MonoGenericContainer *container'.
1300         (MonoGenericMethod): Likewise.
1301         (MonoGenericContext): Likewise.
1302         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1303
1304         * metadata.c
1305         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1306         (do_mono_metadata_parse_generic_inst): Likewise.
1307         (mono_metadata_parse_type_full): New public method.  This is the actual
1308         mono_metadata_parse_type() implementation - with an additional
1309         `MonoGenericContainer *' argument.
1310         (mono_metadata_parse_array_full): Likewise.
1311         (mono_metadata_parse_signature_full): Likewise.
1312         (mono_metadata_parse_method_signature_full): Likewise.
1313         (mono_metadata_parse_mh_full): Likewise.
1314         (mono_type_create_from_typespec): Likewise.
1315         (mono_metadata_interfaces_from_typedef_full): New public method;
1316         this is similar to the other _full() methods, but we take a
1317         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1318         (mono_metadata_parse_generic_param): Take an additional
1319         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1320         from that container.
1321         (mono_metadata_generic_param_equal): New static method to compare
1322         two type parameters.
1323         (_mono_metadata_type_equal): New static method; takes an
1324         additional `gboolean signature_only' argument - if true, we don't
1325         compare the owners of generic parameters.
1326         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1327         with a TRUE argument - do a signature-only comparision.
1328
1329         * loader.c: Use the new _full() methods and pass the
1330         MonoGenericContainer to them.
1331
1332         * object-internals.h (MonoReflectionTypeBuilder): Added
1333         `MonoGenericContainer *generic_container' field.
1334         (MonoReflectionMethodBuilder): Likewise.
1335
1336 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1337
1338         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1339         case initial images of dynamic assemblies.
1340
1341         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1342
1343         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1344
1345         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1346         length of event->other array.
1347         (typebuilder_setup_events): Ditto.
1348
1349         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1350         'assembly_by_name' and add an 'assemblies' list.
1351
1352         * assembly.h assembly.c: Add a new search hook for determining whenever
1353         an assembly is already loaded. Use this instead of searching in the
1354         loaded_assemblies list.
1355
1356         * domain.c appdomain.c: Implement the new search hook so loaded 
1357         assemblies are now scoped by appdomain. Fixes #67727.
1358
1359 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1360
1361         * threads.c (mono_thread_attach): Initialize synch_lock field so
1362         mono_thread_detach works again.
1363
1364         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1365         'lib' too. Fixes #63130.
1366
1367 2004-10-06  Jackson Harper  <jackson@ximian.com>
1368
1369         * culture-info-tables.h: regenerated.
1370
1371 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1372
1373         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1374         implemented by other interfaces in the result. Fixes #65764.
1375         
1376         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1377         Handle unloadable modules without crashing.
1378
1379         * image.c (load_modules): Revert the previous patch since modules must
1380         have a fixed index inside the array.
1381         
1382         * image.c (load_modules): Don't include native modules in the modules
1383         array.
1384
1385 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1386
1387         * reflection.h: Add param_defaults field.
1388
1389         * reflection.c: Add support for parameter defaults in dynamic methods.
1390         Fixes #64595.
1391
1392         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1393         an empty string when a type has no namespace. Fixes #64230.
1394
1395 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1396
1397         * tabledefs.h: Added "internal" security actions to support non-CAS
1398         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1399         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1400
1401 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1402
1403         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1404         constructor of abstract class. Fixes #61689.
1405
1406 2004-10-04  Martin Baulig  <martin@ximian.com>
1407
1408         * class-internals.h (MonoGenericContainer): New type.
1409         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1410         `MonoGenericContainer *generic_container'.
1411         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1412         `MonoGenericContainer *generic_container'.
1413
1414         * metadata.c (mono_metadata_load_generic_params): Return a
1415         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1416         removed the `num' argument.
1417
1418 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1419
1420         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1421         for dynamic images.
1422
1423         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1424         machine fields.
1425
1426         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1427
1428         * reflection.c: Save pe_kind and machine values into the generated
1429         image file.
1430
1431         * appdomain.c: Bump corlib version number.
1432
1433         * object-internals.h: Reorganize layout of LocalBuilder.
1434
1435         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1436         New helper function.
1437
1438         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1439         created MonoType for dynamic types. Fixes #66180.
1440
1441 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1442
1443         * threadpool.c: the ares hashtable needs a critical section around it.
1444         this prevents some nasty segfaults
1445
1446 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1447
1448         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1449         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1450         bug 67324).
1451         
1452 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1453
1454         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1455         
1456 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1457
1458         * image.c: Always canonicalize image file names, to avoid loading
1459         the same assembly twice when referenced using a relative path.
1460
1461 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1462
1463         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1464
1465         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1466
1467         * marshal.c: Fix warnings.
1468
1469 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1470
1471         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1472         attempting to marshal the delegate_trampoline as the method_addr.
1473         This patch has a static hashtable of marshalled delegates so that 
1474         we can map delegate_trampoline addresses back to delegates.  This
1475         allows a delegate passed to managed code to be passed back into native
1476         code.  Fixes #67039
1477
1478 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1479
1480         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1481
1482         * reflection.c (method_encode_code): Align method headers properly.
1483         Fixes #66025.
1484
1485 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1486
1487         * marshal.c: In the runtime invoke wrapper, reset the abort
1488         exception if it is cached. This avoids the automatic rethrowal of 
1489         the exception after the catch of the wrapper. Also check for pending
1490         interruptions before calling the managed method. This is done using
1491         the new method emit_thread_force_interrupt_checkpoint, since the
1492         normal checkpoint method is ignored when running the invoke wrapper.
1493         * object.c: If the abort exception is rethrown, set the abort_exc
1494         field of the thread, so it will be rethrown aftere every catch.
1495         * threadpool.c: Only run an interruption checkpoint if what has been
1496         requested is a stop of the thread (aborts will be ignored).
1497         * threads.c: By default, a thread will now never be interrumped while
1498         running the runtime invoke wrapper (this ensures that runtime_invoke
1499         will always return to the caller if an exception pointer is provided).
1500         There is a new special method mono_thread_force_interruption_checkpoint()
1501         to force an interruption checkpoint even if running a protected
1502         wrapper, which is used by the same runtime invoke wrapper to do a check
1503         at a safe point.
1504
1505 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1506
1507         * object.c, object-internals.h: Implemented mono_release_type_locks,
1508         which releases the cctor locks held by a thread.
1509         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1510         by a thread. Added mono_thread_exit() method to be used to safely stop
1511         a thread.
1512
1513 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1514
1515         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1516         Move null check before dereference.  Avoid indexing beyond the end
1517         of the 'modules' array.
1518
1519 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1520
1521         * metadata-internals.h (MonoImage): Add module_count field.
1522         * image.c (load_modules): Set image->module_count.
1523         (mono_image_load_file_for_image): Use image->module_count.
1524         * reflection.c (mono_image_load_module): Append to image->modules array 
1525         of dynamic assembly.
1526         (mono_module_get_object): Fix loop to actually increment index.
1527         Use image->module_count.
1528         * assembly.c (mono_assembly_load_references): Use image->module_count.
1529         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1530         Likewise.
1531
1532 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1533
1534         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1535         Avoid assert on generic types.
1536
1537 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1538
1539         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1540
1541         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1542
1543         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1544         function to convert a MarshalSpec structure to its managed counterpart.
1545
1546         * reflection.c: Fix warnings.
1547         
1548         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1549         field.
1550
1551         * icall.c (mono_create_icall_signature): Fix build.
1552
1553 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1554
1555         * icall.c: Add MakePointType icall.
1556
1557         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1558         warnings.
1559
1560 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1561
1562         * threadpool.c: reuse allocated slots in the queue.
1563
1564 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1565
1566         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1567
1568         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1569
1570         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1571         previous change.
1572
1573         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1574         ThrowOnUnmappableChar.
1575
1576         * icall.c (ves_icall_Type_GetPacking): New icall.
1577
1578 2004-09-24  Martin Baulig  <martin@ximian.com>
1579
1580         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1581
1582 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1583
1584         * appdomain.c:
1585         (mono_domain_set): allow setting a domain that is being unloaded.
1586         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1587         being unloaded.
1588
1589 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1590
1591         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1592         the GetCustomAttributes icall.
1593
1594 2004-09-23  Martin Baulig  <martin@ximian.com>
1595
1596         * object-internals.h (MonoReflectionGenericParam): Replaced
1597         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1598         with `guint32 attrs'.
1599
1600 2004-09-23  Martin Baulig  <martin@ximian.com>
1601
1602         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1603
1604 2004-09-23  Martin Baulig  <martin@ximian.com>
1605
1606         * object-internals.h (GenericParameterAttributes): New enum.
1607
1608 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1609
1610         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1611         
1612         * class.c (init_events): Fill out event->other field.
1613
1614         * class.c: Fix warnings.
1615
1616         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1617
1618 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1619
1620         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1621         walk which doesn't supply the IL offset.
1622
1623 2004-09-22  Martin Baulig  <martin@ximian.com>
1624
1625         * reflection.c (mono_reflection_setup_internal_class): If we're
1626         System.ValueType, System.Object or System.Enum, set
1627         `klass->instance_size' and create the vtable.
1628         (mono_reflection_create_internal_class): If we're an enum type,
1629         get the base class from our current corlib.
1630
1631 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1632
1633         * reflection.h (MonoResolveTokenError): New type.
1634
1635         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1636         icall.
1637
1638         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1639
1640 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1641
1642         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1643         Support also calling constructors, but only for already allocated objects.
1644
1645 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1646
1647         * reflection.c (type_get_qualified_name): If the klass is null
1648         return the typename to avoid a NullRefEx.
1649         (encode_cattr_value): Get the qualified name of the boxed type,
1650         not the underlying enumtype.  Fixes #62984.
1651
1652 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1653
1654         * marshal.c: Fix problems with previous checkin.
1655
1656 2004-09-21    <vargaz@freemail.hu>
1657
1658         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1659         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1660
1661         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1662
1663 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1664
1665         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1666         should only return a type for pointers, arrays, and passbyref types.
1667         Fixes bug #63841.
1668
1669 2004-09-21  Martin Baulig  <martin@ximian.com>
1670
1671         * domain.c (mono_debugger_check_runtime_version): New public
1672         function.
1673
1674         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1675
1676 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1677
1678         * reflection.c: Added missing sort to the declarative security 
1679         attributes table. MS implementation stops seeing the attributes if the
1680         token number regress in the table (as shown by ildasm and permview).
1681
1682 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1683
1684         * object-internals.h (MonoReflectionModule): Add 'token' field.
1685         
1686         * reflection.c (mono_reflection_get_token): Add support for Module
1687         and Assembly.
1688         (mono_module_get_object): Set 'token' field.
1689         (mono_module_file_get_object): Set 'token' field.
1690
1691         * icall.c: Add new Assembly and Module icalls.
1692
1693         * appdomain.c: Bump corlib version.
1694
1695 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1696
1697         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1698         tokens of metadata objects.
1699
1700         * reflection.h reflection.c (mono_reflection_get_token): New function
1701         to obtain the token of a metadata object.
1702
1703         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1704
1705 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1706
1707         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1708         
1709         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1710
1711 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1712
1713         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1714         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1715         AssemblyBuilder to access the permissions set in the class lib.
1716         * reflection.c: Added security attributes encoding step in 
1717         mono_image_build_metadata.
1718         * tabledefs.h: Added new security actions defined in 2.0:
1719         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1720
1721 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1722
1723         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1724         macro parameter.
1725
1726 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1727  
1728         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1729           finalized. There where random SIGSEVs at program termination, when
1730           an object being finalized was trying to do a string comparison and
1731           the current culture was already finalized.
1732  
1733 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1734
1735         * threads.c: call thread_cleanup before finishing the thread if we get
1736         there.
1737
1738 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1739
1740         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1741         assemblies from the parent. Fixes #65665.
1742
1743 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1744
1745         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1746         modifiers.
1747
1748 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1749
1750         * reflection.h: add prototype for mono_get_dbnull_object
1751         * reflection.c: add prototypes for get_default_param_value_blobs 
1752         and mono_get_object_from_blob for fussier compilers
1753
1754 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1755  
1756         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1757         false deadlock checks in class initialization.
1758  
1759 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1760
1761         * image.c (mono_image_addref): Fix comment.
1762
1763         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1764         possible.
1765
1766 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1767
1768         * reflection.c (mono_param_get_objects): Modified to return
1769         ParameterInfo.DefaultValue object.
1770
1771         (get_default_param_value_blobs):
1772         (mono_get_object_from_blob):
1773         (mono_get_dbnull_object): New helper routines. 
1774
1775         * object.c (mono_get_constant_value_from_blob): New helper routine
1776         carved out from get_default_field_value ()
1777
1778         * object-internals.h (mono_get_constant_value_from_blob): Added
1779         function declaration.
1780
1781 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1782
1783         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1784         referenced assemblies. Fixes #62135.
1785
1786         * exception.h exception.c (mono_get_exception_file_not_found2): New
1787         helper function.
1788
1789 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1790
1791         * class.h class.c: Add mono_type_get_underlying_type ().
1792
1793 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1794
1795         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1796         Fix GetTypes() to support dynamically created assemblies.
1797
1798 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1799
1800         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1801         
1802         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1803         previous patch.
1804
1805         * reflection.h reflection.c loader.c: Allow dynamic construction of
1806         pinvoke methods. Fixes #65571.
1807         
1808         * reflection.c (mono_reflection_get_type): Revert previous change since
1809         it causes regressions.
1810
1811 2004-09-08  Martin Baulig  <martin@ximian.com>
1812
1813         * class.c (class_compute_field_layout): Don't call
1814         mono_class_layout_fields() for open generic instances.
1815
1816 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1817         * threads.c appdomain.c: fix typo in GC macro
1818
1819 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1820
1821         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1822         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1823
1824 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1825
1826         * image.c (mono_image_close): Applied patch from 
1827         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1828         assembly is loaded multiple times from data.
1829         
1830         * image.c (mono_image_open): Fix warning.
1831
1832 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1833
1834         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1835         once. Fixes #58334.
1836         
1837         * reflection.c (mono_reflection_create_runtime_class): Initialize
1838         klass->nested_classes. Fixes #61224.
1839
1840 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1841
1842         * threads.c: sched_yield() on exit, to allow threads to quit.
1843
1844 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1845
1846         * object.c (mono_unhandled_exception): Remove leftover debug code.
1847
1848 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1849
1850         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1851
1852 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1853
1854         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1855         
1856         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1857
1858 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1859
1860         * marshal.c (emit_marshal_array): Null terminate string arrays.
1861         
1862         * marshal.c (raise_auto_layout_exception): Fix warning.
1863
1864         * reflection.c (mono_param_get_objects): Initialize the default value
1865         with DBNull.Value, not null. Fixes #62123.
1866
1867 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1868
1869         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1870         throw an exception with a cute explanation.
1871
1872 2004-09-06  Dick Porter  <dick@ximian.com>
1873
1874         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1875         Close the new process's thread handle, as we don't use it.  The
1876         handle stays around forever otherwise.
1877
1878 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1879
1880         * object.c (arith_overflow): Fix warning.
1881
1882         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1883         calling conventions in method refs. Fixes #65352.
1884
1885         * reflection.c: Fix warnings.
1886
1887 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1888
1889         * icall.c: Add a new icall for Array.Clear
1890
1891 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1892
1893         * object.c: When allocating an array, we have to throw
1894         an overflow exception if any of the lengths are < 0.
1895
1896 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1897
1898         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1899         properly. Also move implementation of string array marshalling to 
1900         managed code. Fixes #42316.
1901
1902 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1903
1904         * assembly.c: provide more information when loading an assembly fails.
1905
1906 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1907
1908         * filewatcher.c: don't expect the development fam package to be
1909         installed.
1910
1911 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1912
1913         * marshal.c: Make a copy of the signature cookie since it will be
1914         freed by the caller.
1915         
1916         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1917
1918         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1919
1920         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1921         marshal specs.
1922
1923         * marshal.c: More refactoring.
1924         
1925         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1926         smaller functions.
1927
1928 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1929
1930         * object.c: In mono_message_invoke, fill the output parameter array after
1931           calling the managed method (it was done before the call). This fixes
1932           bug #59299.
1933
1934 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1935
1936         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1937         as well.
1938
1939 2004-09-02  Martin Baulig  <martin@ximian.com>
1940
1941         * class.c (mono_class_instance_size): Don't allow generic type
1942         definitions or open generic instances.
1943         (mono_class_array_element_size): If we're a value type, call
1944         mono_class_instance_size() on the original class.
1945
1946         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1947         handle generic instances.
1948
1949         * mono-debug-debugger.c (write_type): Handle generic instances
1950         like classes.
1951
1952 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1953
1954         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
1955         the allocation request fails. Fixes #65089.
1956
1957         * object.c (mono_runtime_free_method): Do not call mono_free_method.
1958         
1959         * object.c (mono_runtime_free_method): New function to free a dynamic
1960         method.
1961
1962         * marshal.c (mono_delegate_free_ftnptr): New function to free the
1963         delegate trampoline.
1964
1965         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
1966         with hasthis as dynamic,
1967
1968         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
1969
1970         * domain.c (mono_jit_info_table_remove): New function to remove an
1971         entry from the jit info table.
1972
1973         * class-internals.h (MonoMethod): Add 'dynamic' field.
1974
1975         * loader.c: Fix warnings.
1976
1977 2004-09-01  Martin Baulig  <martin@ximian.com>
1978
1979         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
1980         instead of mono_debugger_lock() because the latter one is a no-op
1981         unless running in the debugger.
1982
1983 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1984
1985         * class.c (class_compute_field_layout): Classes with auto-layout or
1986         reference fields are not blittable.
1987         
1988 2004-09-01  Dick Porter  <dick@ximian.com>
1989
1990         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
1991         mono_image_get_filename() to get the assembly location.
1992
1993         * icall.c:
1994         * metadata.h: Fix compile warnings
1995
1996 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1997
1998         * class.c (class_compute_field_layout): System.Object is blittable.
1999
2000         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
2001         as in/out. Fixes #59909.
2002
2003 2004-09-01  Martin Baulig  <martin@ximian.com>
2004
2005         * metadata.h (MONO_TYPE_ISREFERENCE): Call
2006         mono_metadata_generic_inst_is_valuetype() if we're a generic
2007         instance to check whether our underlying type is a reference type.
2008
2009 2004-09-01  Martin Baulig  <martin@ximian.com>
2010
2011         * metadata.c (mono_type_size): If we're a generic instance, call
2012         mono_class_value_size() for value types.
2013
2014 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
2015
2016         * marshal.c: Implement more custom marshalling functionality. Fixes
2017         #64915.
2018
2019 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2020
2021         * mono-debug.c, debug-mono-symfile.c: add some locking love.
2022
2023 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
2024
2025         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
2026
2027         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
2028
2029         * icall.c: Fix some warnings.
2030
2031         * threads.c (abort_appdomain_thread): Fix unref errors.
2032         (mono_thread_current): Fix THREAD_DEBUG define.
2033
2034 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
2035
2036         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
2037
2038         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
2039
2040 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
2041
2042         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
2043         string arrays.
2044
2045 2004-08-28  Martin Baulig  <martin@ximian.com>
2046
2047         * metadata.c
2048         (mono_metadata_generic_inst_is_valuetype): New public function.
2049
2050         * metadata.h (MONO_TYPE_ISSTRUCT): Call
2051         mono_metadata_generic_inst_is_valuetype() if we're a generic
2052         instance to check whether our underlying type is a valuetype.
2053
2054 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
2055
2056         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
2057         #63768.
2058
2059 2004-08-25  Martin Baulig  <martin@ximian.com>
2060
2061         * loader.c (mono_get_method_from_token): Abstract methods can also
2062         be generic and thus have type parameters.
2063
2064         * metadata-internals.h
2065         (MonoDynamicImage): Added `GPtrArray *gen_params'.
2066
2067         * reflection.c (mono_image_get_generic_param_info): Don't create a
2068         metadata row, just add an entry to the `gen_params' array.
2069         (build_compressed_metadata): Sort the `gen_params' array and then
2070         actually create the metadata.
2071
2072 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2073
2074         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
2075
2076 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
2077
2078         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
2079
2080 2004-08-24  Martin Baulig  <martin@ximian.com>
2081
2082         * class.cs (mono_class_is_subclass_of): Like an interface, a
2083         generic instance also derives from System.Object.
2084
2085 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
2086
2087         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
2088         custom modifiers to be in any order. Fixes #61990.
2089
2090 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
2091
2092         * object.c: Register mono_object_new_fast icall.
2093         
2094         * object.c (mono_class_get_allocation_ftn): Return to calling
2095         mono_object_new_fast, since it seems faster to compute the object 
2096         size in unmanaged code than passing it as a parameter.
2097
2098         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
2099
2100         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
2101         this function with Boehm as the oom handler, so we don't have to check
2102         the result of GC_malloc.
2103
2104         * object.c: Remove checks for oom.
2105
2106         * object.h object.c (mono_class_get_allocation_ftn): New function to
2107         return the icall which can be used to allocate an instance of a given
2108         class. 
2109
2110         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
2111
2112         * class-internals.h: Add 'enabled' field.
2113
2114 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
2115
2116         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
2117
2118 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
2119         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
2120         value 0x0010.
2121
2122 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
2123
2124         * appdomain.c: use the Tls function for appdomain too,
2125         at Zoltan's request. Actually return in mono_context_get
2126
2127         * appdomain.c, profiler.c, threads.c: use __thread
2128
2129 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
2130
2131         * appdomain.c threads.c: Call GC_CreateThread on windows.
2132
2133         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
2134         multiple libraries since this don't work on windows.
2135
2136 2004-08-18  Martin Baulig  <martin@ximian.com>
2137
2138         * class-internals.h
2139         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
2140         MonoMethodHeader.
2141
2142         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2143         MonoMethodNormal since we also need it for abstract and interface
2144         methods.
2145
2146         * reflection.c
2147         (build_compressed_metadata): Sort the GenericParam table.
2148         (mono_image_create_token): Added `gboolean create_methodspec'
2149         argument; this is false when generating a MethodImpl token.
2150         (reflection_methodbuilder_to_mono_method): Abstract and interface
2151         methods may also have generic parameters.
2152
2153 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2154
2155         * appdomain.c: thread local alloc
2156
2157 2004-08-17  Martin Baulig  <martin@ximian.com>
2158
2159         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2160
2161         * icall.c
2162         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2163         argument.
2164
2165         * class.c (mono_type_get_full_name): New public function.
2166         (mono_type_get_name): Don't include the type arguments.
2167
2168 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2169
2170         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2171         for inclusion into the mono executable.
2172
2173 2004-08-16  Martin Baulig  <martin@ximian.com>
2174
2175         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2176         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2177
2178 2004-08-14  Martin Baulig  <martin@ximian.com>
2179
2180         * class.c (dup_type): Also copy the `byref' field.
2181
2182 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2183
2184         * reflection.c (create_dynamic_mono_image): Revert the last change 
2185         since it breaks bootstrap.
2186
2187 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2188
2189         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2190
2191         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2192         not free them with g_free.
2193
2194 2004-08-11  Martin Baulig  <martin@ximian.com>
2195
2196         * reflection.c (mono_reflection_setup_internal_class): Also call
2197         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2198
2199 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2200
2201         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2202         called during default (first) AppDomain creation. Keep track of
2203         Evidence when loading assemblies.
2204
2205 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2206
2207         * opcodes.c, opcodes.h: reduce runtime relocations.
2208
2209 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2210
2211         * culture-info.h, locales.c: fixes and chages to sue the new
2212         optimized format of the locale data.
2213         * culture-info-tables.h: regenerated.
2214
2215 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2216         
2217         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2218
2219 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2220
2221         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2222         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2223         * domain-internals.h: icall declaration.
2224         * icall.c: icall registration.
2225         * object-internals.h: New fields in MonoAssembly for CAS.
2226
2227 2004-08-05  Duncan Mak  <duncan@ximian.com>
2228
2229         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2230         CEE_LDELEM_ANY.
2231
2232 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2233
2234         * reflection.c: fix to deal with object[] arrays in custom ctors
2235         (bug #62550).
2236
2237 2004-08-05  Martin Baulig  <martin@ximian.com>
2238
2239         * class.c (mono_class_array_element_size): Added support for
2240         generic instances and correctly handle "recursive" types.
2241
2242 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2243
2244         * assembly.c: Fix warnings.
2245
2246 2004-08-04  Martin Baulig  <martin@ximian.com>
2247
2248         * class.c
2249         (mono_type_get_name_recurse): Added `gboolean include_arity'
2250         argument specifying whether or not we should include the generic
2251         arity in the type name.
2252         (_mono_type_get_name): New static function.
2253         (mono_class_setup_vtable): If we're a generic instance, don't
2254         include the generic arity in the names of explicit method
2255         implementations.        
2256
2257 2004-08-03  Martin Baulig  <martin@ximian.com>
2258
2259         * class.c (mono_type_get_name_recurse): Enclose the generic type
2260         arguments in `<', '>'.
2261
2262 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2263
2264         * gc.c: make GC warning messages use the trace API, they are just
2265         noise to most of the users.
2266
2267 2004-08-03  Martin Baulig  <martin@ximian.com>
2268
2269         * debug-mono-symfile.c (read_string): Correctly read the string.
2270
2271 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2272
2273         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2274         
2275         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2276         icalls.
2277         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2278
2279 2004-07-30  Martin Baulig  <martin@ximian.com>
2280
2281         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2282         Reflect latest symbol writer changes.   
2283
2284 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2285
2286         * object.c: always create an object if null is passed
2287         to Invoke() where a valuetype is expected.
2288
2289 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2290
2291         * marshal.c (mono_marshal_init): make managed
2292         signatures match native ones better for 64bits.
2293
2294 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2295
2296         * appdomain.c: hack to build correctly the private bin path on windows.
2297         Fixes bug #61991.
2298
2299 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2300
2301         * assembly.c: Load mscorlib from the correct framework directory
2302           (mono/<version>/mscorlib.dll).
2303         * appdomain.h: Added prototypes for new functions.
2304         * internals.h: Added some prototypes.
2305         * domain.c: When initializing the runtime, get from the executable and
2306           the configuration files the runtime version that the app supports.
2307           Added support methods for reading app.exe.config. Added list of versions
2308           supported by the JIT. Added two new methods: mono_init_from_assembly,
2309           which initializes the runtime and determines the required version from
2310           the provided exe file, and mono_init_version, which initializes
2311           the runtime using the provided version.
2312         * icall.c: Get machine.config from version-specific directory.
2313         * reflection.c: When generating an image, embed the version number
2314           of the current runtime.
2315
2316 2004-07-28  Dick Porter  <dick@ximian.com>
2317
2318         * socket-io.c
2319         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2320         returned sockaddr size before creating the remote address object.
2321         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2322         61608.
2323
2324 2004-07-28  Dick Porter  <dick@ximian.com>
2325
2326         * locales.c (string_invariant_compare_char): Fix invariant char
2327         compares between upper and lower cases.  Fixes bug 61458.
2328
2329 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2330         
2331         * marshal.c: actually cache stelem.ref wrappers.
2332         
2333 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2334
2335         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2336         sections and remove the mono_cli_rva_map () function.
2337
2338 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2339
2340         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2341         by Geoff Norton (<gnorton@customerdna.com>).
2342
2343 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2344
2345         * class.c: fix class loads for pointer types (typeof(int) !=
2346         typeof(int*)).
2347
2348 2004-07-27  Martin Baulig  <martin@ximian.com>
2349
2350         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2351         reading the debugging information from an external ".mdb" file.
2352
2353 2004-07-24  Martin Baulig  <martin@ximian.com>
2354
2355         * reflection.c (mono_image_get_type_info): Only write a class
2356         layout entry if we actually have a size or a packing size.
2357
2358 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2359
2360         * reflection.c (type_get_fully_qualified_name): 
2361         insert cast to get type checking of ?: with non-gcc compilers
2362
2363 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2364
2365         * rand.c: use g_getenv for both lookups of
2366         MONO_EGD_SOCKET
2367
2368 2004-07-17  Martin Baulig  <martin@ximian.com>
2369
2370         * reflection.c (mono_reflection_bind_generic_method_parameters):
2371         Set `gmethod->reflection_info'.
2372
2373 2004-07-17  Martin Baulig  <martin@ximian.com>
2374
2375         * class.c (mono_class_create_from_typedef): Insert the newly
2376         created class into the hash table before computing the interfaces
2377         since we could be called recursively.
2378
2379 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2380
2381         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2382         function to implement stelem.ref in managed code
2383         * class-internals.h, debug-helpers.c: a new wrapper type
2384         for the above.
2385
2386 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2387
2388         * gc.c: allow GC handles to work even when no GC is compiled in.
2389         Fix part of bug #61134 (GetAddrOfPinnedObject).
2390
2391 2004-07-13  Peter Williams  <peter@newton.cx>
2392  
2393         * process.c (complete_path): Make sure we don't attempt to execute
2394         directories.
2395  
2396 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2397
2398         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2399           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2400           and will add/subtract the hour if needed
2401
2402 2004-07-12  Martin Baulig  <martin@ximian.com>
2403
2404         * reflection.c (mono_field_get_object): If we have
2405         `field->generic_info', take the attributes from
2406         `field->generic_info->generic_type'.    
2407
2408 2004-07-12  Martin Baulig  <martin@ximian.com>
2409
2410         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2411         This function must be called before initializing the runtime.
2412         (mono_debug_init_1): New function; call this after initializing
2413         the runtime, but before loading the assembly.  It tells the
2414         debugger to load corlib and the builtin types.
2415
2416         * mono-debug-debugger.c: Did some larger changes in the debugging
2417         code; support recursive class declarations, make sure we actually
2418         add all classes.
2419
2420 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2421
2422         * debug-helpers.c: undo my previous patch and fixed the real issue in
2423         ../mini/exceptions-x86.c
2424
2425 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2426
2427         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2428         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2429         called from other .cctors.
2430
2431 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2432
2433         * loader.c: Removed the mono_loader_wine_init hack now that we are
2434         doing a managed version of Windows.Forms.
2435
2436 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2437
2438         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2439         threadpool.c, threads.c: remove static data from rootset.
2440
2441 2004-07-09  Dick Porter  <dick@ximian.com>
2442
2443         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2444         Don't do any more processing if the matched length was 0.  It was
2445         increasing the size of the string before.  Fixes bug 61167.
2446
2447 2004-07-09  Dick Porter  <dick@ximian.com>
2448
2449         * socket-io.h:
2450         * socket-io.c
2451         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2452         Add support for SO_PEERCRED if its available.
2453
2454 2004-07-09  Peter Bartok <pbartok@novell.com>
2455         * loader.c: winelib.exe.so error message is now only displayed if
2456         MONO_DEBUG is set. To help us avoid questions when people are trying
2457         out the new Managed.Windows.Forms.
2458
2459 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2460
2461         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2462         for isinst and castclass wrappers.
2463
2464         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2465         to libmetadata from the JIT, so they could be used by the marshalling
2466         code and the interpreter.
2467
2468         * marshal.c: Register marshalling related JIT icalls here instead of
2469         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2470         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2471
2472         * metadata.h: Remove unneeded marshalling conversions.
2473
2474         * opcodes.c: Update for new opcodes.
2475         
2476 2004-07-08  Martin Baulig  <martin@ximian.com>
2477
2478         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2479         (mono_debug_get_domain_data): Make this function static.
2480
2481 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2482
2483         * gc.c, object.h: add nice GC handle API for embedders.
2484
2485 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2486
2487         * reflection.c: more changes for the new api
2488
2489         * object.c: When we reflect on a field w/ a constant value, it
2490         will not have a memory location, so we must access metadata. Also,
2491         allow easier reading of strings so that we can read them from
2492         the constant data.
2493
2494         * class.c (mono_class_layout_fields): no need for literal fields here.
2495
2496         * class-internals.h: api changes for const fields
2497
2498         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2499
2500 2004-07-06  Martin Baulig  <martin@ximian.com>
2501
2502         * mono-debug.h: Increment version number to 44.
2503
2504         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2505         now a gpointer, rewrote this whole method.
2506
2507         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2508         function.  Add information about the wrapper in a new "misc table".
2509
2510         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2511         for the new misc table.
2512
2513 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2514
2515         * metadata-internals.h image.c: Add a cache for helper signatures.
2516
2517         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2518
2519 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2520
2521         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2522         delegates from a delegate. Fixes #61033.
2523         
2524         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2525         marshalling of stringbuilder arrays. Fixes #59900.
2526
2527 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2528
2529         * icall.c: Add EnumBuilder:setup_enum_type icall.
2530
2531 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2532
2533         * icall.c: Added a new icall for the property version of
2534         OffsetOfStringData.
2535
2536 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2537
2538         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2539         it has a constant size across platforms.
2540
2541         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2542         stack trace.
2543
2544 2004-06-29  Martin Baulig  <martin@ximian.com>
2545
2546         * mono-debug.c (mono_debug_add_method): Protect the whole function
2547         in mono_debugger_lock(), not just parts of it.
2548
2549 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2550
2551         * reflection.c: make sure padding bytes in heaps are zeroed.
2552
2553 2004-06-24  David Waite  <mass@akuma.org>
2554
2555         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2556         image.c, loader.c, locales.c, marshal.c, metadata.c,
2557         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2558         string-icalls.c, threads.c: change to C90-style comments from C99 /
2559         C++ -style
2560
2561 2004-06-24  Dick Porter  <dick@ximian.com>
2562
2563         * threads.c
2564         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2565         return createdNew.  Fixes bug 60412.
2566
2567         * threads-types.h: 
2568         * icall.c: Add createdNew parameter to CreateMutex icall
2569
2570 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2571
2572         * reflection.c, object-internals.h: save default value in params.
2573
2574 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2575
2576         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2577         no need to build a new path combining that with the application base.
2578         Fixes bug #60442.
2579
2580 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2581
2582         * reflection.c: fixed minor standard compliance issues.
2583
2584 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2585
2586         * reflection.c: fixed issue with encoding some custom attributes
2587         (arrays in properties and fields, bug #60411).
2588
2589 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2590
2591         * reflection.c: fix start address when copying the public key token.
2592
2593 2004-06-23  Martin Baulig  <martin@ximian.com>
2594
2595         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2596         the `exc' object in a static object to put it into the GC's root set.
2597
2598 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2599
2600         * reflection.c: make mono_reflection_setup_internal_class ()
2601         callable a second time to setup a new parent class.
2602
2603 2004-06-23  Dick Porter  <dick@ximian.com>
2604
2605         * threads.c: Check for WAIT_IO_COMPLETION return values.
2606
2607 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2608
2609         * appdomain.c: Removed the g_free on the public key token. Now copy 
2610         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2611         * assembly.c: Added public key token string value when loading 
2612         assemblies. Fix bug #60439.
2613         * icall.c: Added missing informations (like public key) in 
2614         GetReferencedAssemblies. Fix #60519.
2615         * image.h: Changed definition for public key token from const char*
2616         public_tok_value to guchar public_key_token [17];
2617         * reflection.c: Updated for changes to public key token.
2618
2619 2004-06-22  Lluis Sanchez Gual
2620
2621         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2622         for the field in base classes.
2623
2624 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2625
2626         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2627         mark headers as not supported, they are installed only for use by the
2628         debugger.
2629
2630 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2631
2632         * *.c, *.h: avoid namespace pollution in public headers.
2633
2634 2004-06-21  Martin Baulig  <martin@ximian.com>
2635
2636         * exception.c (mono_get_exception_security): It's in
2637         "System.Security", not in "System".
2638
2639         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2640         the exception classes.
2641
2642 2004-06-21  Martin Baulig  <martin@ximian.com>
2643
2644         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2645         Protect the exception object from being finalized.
2646
2647 2004-06-21  Martin Baulig  <martin@ximian.com>
2648
2649         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2650         public function.
2651
2652 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2653
2654         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2655         if it was not loaded before. Fix parts of #60439.
2656
2657 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2658
2659         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2660         code that was broken since Ben's change: wrappers are now
2661         dependent on the method signature only again.
2662
2663 2004-06-21  Martin Baulig  <martin@ximian.com>
2664
2665         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2666         added interface support.
2667
2668 2004-06-21  Martin Baulig  <martin@ximian.com>
2669
2670         * class.c (mono_vtable_get_static_field_data): New public method.
2671
2672 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2673
2674         * filewatcher.c : Windows build fix to be compliant with API changes.
2675
2676 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2677
2678         * class.h, class.c: more accessors.
2679         * metadata.h, metadata.c: prepare for hiding MonoType and
2680         MonoMethodSignature: people should use the accessors from now on
2681         outside of the tree.
2682
2683 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2684
2685         * *.c, *.h: more API cleanups.
2686
2687 2004-06-18  Jackson Harper  <jackson@ximian.com>
2688
2689         * assembly.c: Trace loading assemblies.
2690         * loader.c: Trace loading native libraries.
2691         * mono-config.c: Trace loading config files.
2692         
2693 2004-06-18  Dick Porter  <dick@ximian.com>
2694
2695         * locales.c: Tell ICU the lengths of strings, it can cope with
2696         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2697
2698 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2699
2700         * image.c: swapped name/filename;
2701
2702 2004-06-18  Martin Baulig  <martin@ximian.com>
2703
2704         * mono-debug-debugger.c (write_class): Write the parent class at
2705         the end of the header.
2706
2707 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2708
2709         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2710
2711 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2712
2713         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2714         (bundle_obj): New conditional define.
2715         (BUILT_SOURCES): Remove.
2716         ($(bundle_srcs)): Make parallel-make safe.
2717         (libmonoruntime_la_LIBADD): Make unconditional.
2718         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2719         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2720
2721 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2722
2723         * culture-info-tables.h: It was inconsistent with the latest
2724           supp info files.
2725
2726 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2727
2728         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2729         be loaded.
2730
2731         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2732         with gcc 2.95.
2733
2734 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2735
2736         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2737         cleaned up public header threads.h.
2738
2739 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2740
2741         * Makefile.am, *.c, *.h: more API cleanups.
2742
2743 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2744
2745         * Makefile.am: removed monosn from compilation.
2746         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2747         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2748         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2749         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2750         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2751         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2752
2753 2004-06-15  Jackson Harper  <jackson@ximian.com>
2754
2755         * assembly.c: Make locales lower case when searching the GAC for
2756         assemblies. gacutil will always make locales lowercase when
2757         installing so this effectively makes them case insensitive.
2758         
2759 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2760
2761         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2762         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2763           parameter which allows to choose whether the wait can be interrupted or 
2764           not. Also added the method mono_monitor_enter(), which locks the monitor
2765           using an infinite wait and without allowing interruption.
2766           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2767           interrupted.
2768         * object.h: Added new fields in MonoThread. suspend_event holds the event
2769           used to susped/resume the thread. synch_lock is the lock object to use for
2770           modifying the thread state.
2771         * threads.c: Use the new synch_lock object for locking, instead of "this",
2772           which can generate deadlocks.
2773           Moved thread state change in Thread.Sleep and Thread.Join from managed
2774           to unmanaged code. This avoids a deadlock when the thread was suspended
2775           just after acquiring the thread lock.
2776           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2777           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2778           which is not fully implemented in the io-layer.
2779         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2780
2781 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2782
2783         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2784         threads-types.h: more API cleanups.
2785
2786 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2787
2788         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2789         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2790         threadpool.c, threads.c: first pass at the exported API cleanup.
2791
2792 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2793
2794         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2795
2796 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2797
2798         * icall.c: added internalGetHome.
2799
2800 2004-06-14  Dick Porter  <dick@ximian.com>
2801
2802         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2803         possible to return successfully when '.' or '..' were the only
2804         entries in a directory, but were skipped.  The MonoIOStat was not
2805         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2806         Fixes bug 59574.
2807
2808 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2809
2810         * reflection.c: make binaries run on .Net 1.1 by default.
2811
2812 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2813
2814         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2815
2816 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2817
2818         * marshal.c: keep track of struct size with explicit layout
2819         (bug #59979).
2820
2821 2004-06-12  Martin Baulig  <martin@ximian.com>
2822
2823         * mono-debug-debugger.c: Comment out a debugging g_message().
2824
2825 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2826
2827         * reflection.c, reflection.h: do not free custom attrs that are cached.
2828         * icall.c: use braces to make code clearer.
2829
2830 2004-06-11  Martin Baulig  <martin@ximian.com>
2831
2832         * class.h (MonoInflatedField): New type.
2833         (MonoClassField): Replaced `MonoType *generic_type' with
2834         `MonoInflatedField *generic_info'.
2835
2836         * icall.c
2837         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2838
2839 2004-06-11  Martin Baulig  <martin@ximian.com>
2840
2841         * reflection.c (mono_image_create_method_token): Correctly encode
2842         varargs methods.
2843
2844 2004-06-11  Martin Baulig  <martin@ximian.com>
2845
2846         * metadata.c (mono_metadata_parse_method_signature): When parsing
2847         a MethodDef which has VarArgs, also set sentinelpos if we don't
2848         have any parameters.
2849
2850 2004-06-11  Martin Baulig  <martin@ximian.com>
2851
2852         * verify.c (mono_method_verify): In CEE_CALL, use
2853         mono_method_get_signature() to get the method's signature, unless
2854         we're a PInvoke method.
2855
2856 2004-06-10  Jackson Harper  <jackson@ximian.com>
2857
2858         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2859         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2860         logical name as the supplied path is just a prefix to the gac not
2861         the direct path to it.
2862         
2863 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2864
2865         * reflection.c: make the token for a created method match
2866         the token of the MethodBuilder it was created from
2867         (IKVM requires this behaviour now).
2868
2869 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2870
2871         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2872         reflection.c, socket-io.c: leak fixes.
2873
2874 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2875
2876         * icall.c: handle sentinel pos in vararg methods in position different
2877         from 0.
2878
2879 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2880
2881         * culture-info-tables.h: freshly generated.
2882
2883 2004-06-09  Martin Baulig  <martin@ximian.com>
2884
2885         * loader.c (mono_get_method_constrained): Call `mono_class_init
2886         (constrained_class)'.   
2887
2888 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2889
2890         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2891         any methods. Fixes #59629.
2892
2893 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2894
2895         * culture-info-tables.h: reflecting locale-builder updates.
2896
2897 2004-06-08  Dick Porter  <dick@ximian.com>
2898
2899         * object.h:
2900         * locales.c: Fixed compile warnings, including a real bug in
2901         CompareInfo_internal_compare.
2902         
2903 2004-06-08  Dick Porter  <dick@ximian.com>
2904
2905         * locales.c
2906         (ves_icall_System_Globalization_CompareInfo_internal_index):
2907         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2908         Double-check the resuls of usearches, because ICU currently
2909         ignores most of the collator settings here.  Fixes bug 59720.
2910         
2911 2004-06-08  Dick Porter  <dick@ximian.com>
2912
2913         * locales.c
2914         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2915         Fix memory leak and segfault-causing typo.  No idea how this one
2916         lasted so long without being noticed.
2917
2918 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2919
2920         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2921         any methods. Fixes #59629.
2922
2923 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2924
2925         * assembly.c:
2926         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2927         own the critical section before). Removed dead code (that's done
2928         in the preload hook).
2929
2930         (mono_assembly_load_with_partial_name): call the preload hook.
2931
2932 2004-06-08  Martin Baulig  <martin@ximian.com>
2933
2934         * metadata.c (mono_metadata_signature_alloc): Default
2935         `sentinelpos' to -1.
2936
2937         * reflection.c (mono_image_get_array_token): Likewise.
2938
2939 2004-06-08  Martin Baulig  <martin@ximian.com>
2940
2941         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2942
2943         * metadata.c (mono_metadata_parse_method_signature): When parsing
2944         a MethodDef which has VarArgs, set sentinelpos.
2945
2946         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2947         `gint16' since we're using -1 for non-varargs methods.
2948
2949         * reflection.c
2950         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
2951         (method_encode_signature): Added varargs support.
2952         (method_builder_encode_signature): Likewise.
2953         (mono_image_get_varargs_method_token): New static method.
2954         (mono_image_create_method_token): New public method; this is
2955         called via an icall instead of mono_image_create_token() when
2956         calling a varargs method.       
2957
2958 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
2959
2960         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
2961
2962 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2963
2964         * culture-info-tables.h : Reflecting the latest locale-builder that
2965           fixed empty array representation ({} to {0}).
2966
2967 2004-06-07  Jackson Harper  <jackson@ximian.com>
2968
2969         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
2970         looking up extra gac paths. This allows MONO_GAC_PATH to act
2971         exactly like a prefix.
2972         
2973 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2974
2975         * reflection.c (mono_reflection_type_from_name): Make a copy of the
2976         type name before modifying it. Fixes #59405.
2977
2978 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2979
2980         * culture-info.h: added fields for "all datetime patterns".
2981         * locales.c: (  ves_icall_System_Globalization_CultureInfo
2982           _construct_datetime_format ()): fill xxx_patterns fields.
2983         * object.h: added fields for "all datetime patterns" to
2984           MonoDateTimeFormatInfo.
2985         * culture-info-tables.h: reflecting locale-builder updates.
2986
2987 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2988
2989         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
2990         the event has no add and remove methods. Fixes #59629.
2991
2992 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
2993
2994         * object.c: Fixed possible integer overflow when allocating large
2995         strings.
2996
2997 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2998
2999         * culture-info-tables.h: reflecting locale-builder updates.
3000
3001 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3002
3003         * culture-info-tables.h: reflecting locale-builder updates.
3004
3005 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
3006
3007         * culture-info-tables.h: reflecting locale-builder updates.
3008
3009 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
3010
3011         * threads.c: Made Thread.Sleep abortable.
3012
3013 2004-06-02  Martin Baulig  <martin@ximian.com>
3014
3015         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
3016
3017         * debug-mono-symfile.h: Bumped symbol file version number to 37.
3018
3019 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
3020
3021         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
3022
3023 2004-05-30  Jackson Harper  <jackson@ximian.com>
3024
3025         * reflection.c: Do not hardcode assembly versions or public key
3026         tokens anymore. All of this except the corlib section was dead
3027         code anyways.
3028         
3029 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
3030
3031         * object.c (mono_runtime_invoke_array): Automatically create boxed
3032         objects for byref valuetypes if needed. Fixes #59300.
3033         
3034         * object.c (mono_method_return_message_restore): Handle 
3035         MONO_TYPE_OBJECT as well.
3036
3037 2004-05-28  Jackson Harper  <jackson@ximian.com>
3038
3039         * reflection.c: The modified type encoding was causing build
3040         problems. Reverted for now.
3041         
3042 2004-05-28  Jackson Harper  <jackson@ximian.com>
3043
3044         * reflection.c/h: Take an assembly ref so that we dont create
3045         fully qualified names when encoding types in the same assembly as
3046         the custom attribute being emitted.
3047         * appdomain.c: Increment version number.
3048         
3049 2004-05-26  Duncan Mak  <duncan@ximian.com>
3050
3051         * icall.c
3052         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
3053         Set the full version number (major, minor, build, revision).
3054
3055 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
3056
3057         * marshal.c (emit_struct_conv): increment src/dst after blit
3058         (mono_marshal_get_managed_wrapper,
3059         mono_marshal_get_native_wrapper): make sure we have marshalling
3060         info before marshalling params (info computation affects
3061         blittable)
3062
3063         * class.c (class_compute_field_layout): correctly deal with
3064         blittable
3065         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
3066         value types (as per what windows dows by default)
3067         (mono_class_setup_mono_type): System.ValueType is blittable
3068         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
3069         blittable
3070
3071         * marshal.c (mono_marshal_load_type_info): flag types  as
3072         non-blittable if the native layout doesn't match the managed
3073         layout
3074
3075 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3076
3077         * appdomain.c: don't add stuff in the private search path that is
3078         above the application base. If application base is not set, there's
3079         no private search path.
3080
3081 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
3082
3083         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
3084         byref struct arguments in native->managed marshalling.
3085
3086 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
3087
3088         * marshal.c (mono_marshal_get_runtime_invoke): correctly
3089         cache methods using signature (special case for methods
3090         that are value type or string class)
3091         
3092         * image.c (mono_image_close): clean up allocated GSList's
3093         in runtime_invoke_cache.
3094
3095 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3096
3097         * mono-config.c: set the correct path for mono_cfg_dir on windows when
3098         there's no MONO_CFG_DIR environment variable defined.
3099
3100 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3101
3102         * threads.c: windows version must be >= 0x0500 to include OpenThread.
3103
3104 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
3105
3106         * threadpool.c: Really wait for 500ms after the async call, even if the wait
3107           is interrumped.
3108         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
3109           before waiting for it, and call CloseHandle after the wait to unref it.
3110           This will make sure that handles are not disposed too early.
3111
3112 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3113
3114         * appdomain.c:
3115         * appdomain.h:
3116         * icall.c: removed
3117         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
3118         needed now.
3119
3120         * object.c: se the application_base only for the domain that runs
3121         Main. Fixes bug #59216,
3122
3123 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3124
3125         * appdomain.c:
3126         * object.c: only the domain in which Main is run have
3127         SetupInformation.ConfigurationFile set, so moved a few lines from
3128         appdomain.c to object.c.
3129
3130 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3131
3132         * appdomain.c: we tried to load [name].(dll|exe), but according
3133         to bug #57710, we must also try [culture]/[name].(dll|exe) and
3134         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
3135         There's a test case attached to bug #58922.
3136
3137 2004-05-27  Dick Porter  <dick@ximian.com>
3138
3139         * icall.c:
3140         * file-io.c: Implemented icalls for locking and unlocking regions
3141         in a file.
3142         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3143         FALSE on error (fixes both compiler warning and real bug.)
3144
3145 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
3146
3147         * culture-info-tables.h: reflecting locale-builder updates.
3148
3149           (Added missing ChangeLog entry for 05/26)
3150
3151 2004-05-27  Jackson Harper  <jackson@ximian.com>
3152
3153         * locales.c: Fix some cut and paste errors.
3154         
3155 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3156
3157         * mono-config.c: set the correct path for config. directory on windows.
3158
3159 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3160
3161         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3162           on win32.
3163
3164 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3165
3166         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3167         from pinvoke functions.
3168         
3169         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3170
3171 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3172
3173         * culture-info-tables.h: reflecting locale-builder updates.
3174
3175 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3176
3177         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3178         #59086.
3179
3180 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3181
3182         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3183         * icall.c: Modified icalls for RNG.
3184         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3185         Windows (CryptoAPI).
3186
3187 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3188
3189         * locales.c: Fix build.
3190
3191 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3192
3193         * culture-info-tables.h: reflecting locale-builder updates.
3194
3195 2004-05-25  Jackson Harper  <jackson@ximian.com>
3196
3197         * locales.c: When creating the current culture use the $LANGs
3198         specific culture. So DateTimeFormat and NumberFormat entries are created.
3199         
3200 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3201
3202         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3203         a char array as parameter.
3204
3205 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3206
3207         * image.c: In mono_image_open(), always use an absolute path name to
3208           look for already loaded images.
3209
3210 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3211
3212         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3213         missing in the windows build (like older cygwin include files).
3214
3215 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3216
3217         * icall.c: Fixed check for possible integer overflow in Buffer_
3218         BlockCopy icall. Replaced comments style // by /* */.
3219
3220 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3221
3222         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3223         
3224         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3225         check after MONO_VTADDR. Fixes pinvoke2.exe.
3226
3227         * marshal.h marshal.c metadata.h: Add beginnings of support for
3228         ftnptr -> delegate marshalling.
3229
3230 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3231
3232         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3233         * threads.c: Fix warnings.
3234
3235 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3236
3237         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3238         * icall.c: Registered icalls for Suspend and Resume.
3239         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3240           Thread.Abort.
3241         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3242         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3243         * process.c: Use WaitForSingleObjectEx.
3244         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3245           checkpoints.
3246         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3247           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3248           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3249           background threads. Added basic support for Abort in Windows.
3250           Start new threads using a managed delegate invoke wrapper. This wrapper
3251           has an interruption checkpoint that is needed since an interruption
3252           can be requested before the thread leaves the unmanaged code that starts 
3253           the thread.
3254         * marshal.c: Added interruption checkpoint after every native call, and
3255           also before managed calls for wrappers called from unmanaged code to
3256           go into managed code.
3257         * object.h: Added new field in MonoThread to keep track of interruption
3258           requests.
3259
3260 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3261
3262         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3263         calls.
3264
3265 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3266
3267         * appdomain.c:
3268         * assembly.c:
3269         * gc.c:
3270         * locales.c:
3271         * mono-config.c:
3272         * rand.c: getenv -> g_getenv (windows!)
3273
3274         * process.c: complete_path is also used on non-windows platforms.
3275
3276 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3277
3278         * icall.c: new signature for Process_Start.
3279
3280         * process.[ch]: new signature for Process_Start. If we're on windows
3281         and UseShellExecute is false, we have to search for the program by
3282         ourselves if we don't get a full path.
3283
3284 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3285
3286         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3287         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3288
3289 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3290
3291         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3292         Fixes bug #58373.
3293
3294 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3295
3296         * process.c: use double quotes to quote program name and arguments on
3297         windows. Fixes bug #58575.
3298
3299 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3300
3301         * file-io.c: don't return "." and ".." when using windows Find*File.
3302
3303 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3304
3305         * marshal.c: Don't pass wrappers to message init because method 
3306         addressed used to lookup metadata. part of remoting[2|3] fix.
3307
3308 2004-05-15  Jackson Harper  <jackson@ximian.com>
3309
3310         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3311         path is essentially the same as MONO_PATH except that it points to
3312         GACs instead of lib directories.
3313         * loader.h: The user gac is gone so we dont need function to
3314         enable/disable it.
3315         * mono-config.c: user gac option is now gone.
3316         
3317 2004-05-15  Jackson Harper  <jackson@ximian.com>
3318
3319         * culture-info.h: Make defines more consistent, add calendar data
3320         to the culture info table.
3321         * culture-info-tables.h: Add basic calendar data. Basically
3322         everyone gets default gregorian until all the data is
3323         updated.
3324         * locales.c: Use the new consistent defines. Set calendar data for
3325         culture info objects.
3326         * object.h: add a field for calendar data to CultureInfo
3327         
3328 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3329
3330         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3331         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3332         a signature.
3333         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3334         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3335         an extra param that is the pointer of the method to invoke. The IL for
3336         the invoke method is no longer specific to the method, but to the
3337         signature of the method. Thus, we can share the same code for multiple
3338         methods. This reduces the number of methods that have to be compiled.
3339
3340 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3341
3342         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3343
3344         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3345
3346         * icall.c: Optimize Buffer.BlockCopy.
3347
3348 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3349
3350         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3351         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3352         quote). Changed them to "MMMM yyyy".
3353
3354 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3355
3356         * rand.c
3357         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3358
3359 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3360
3361         * reflection.h: Updated after changes to managed structures.
3362
3363         * appdomain.c: Bump corlib version.
3364
3365 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3366
3367         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3368         windows.
3369
3370 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3371
3372         * Makefile.am: link to ../os/libmonoos.la on windows.
3373
3374         * assembly.c:
3375                 -If MONO_DEBUG, warn about non-existing directories in
3376                 MONO_PATH.
3377                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3378                 compile time variable.
3379                 -Removed init_default_path and call mono_set_rootdir from
3380                 libmonoos.a instead (windows only).
3381
3382         * assembly.h: declare mono_assembly_getrootdir().
3383
3384         * domain.c:
3385         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3386
3387         * loader.c: s/getenv/g_getenv/
3388
3389 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3390
3391         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3392
3393         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3394
3395         * metadata.h: Add new marshalling conversions.
3396
3397         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3398         function.
3399
3400         * reflection.c (mono_reflection_get_type): Lookup the type in all
3401         modules of a multi-module assembly. Fixes #58291.
3402
3403 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3404
3405         * threads.c: Before aborting a background, set the StopRequested
3406         state.  This avoids throwing the Abort exception.
3407         In mono_thread_manage, don't continue with the shutdown until all
3408         aborted threads have actually stopped.
3409
3410 2004-05-10  Jackson Harper  <jackson@ximian.com>
3411
3412         * locales.c: Remove the modifier from culture names.
3413         
3414 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3415
3416         * Makefile.am: monosn is not installed any more. It has been deprecated
3417         in favor of sn.
3418
3419 2004-05-07  Jackson Harper  <jackson@ximian.com>
3420
3421         * locales.c
3422         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3423         Fix array construction, add bailout if the length is 0.
3424
3425 2004-05-07  Dick Porter  <dick@ximian.com>
3426
3427         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3428         machine doesn't have a DNS entry.  Patch by Urs Muff
3429         (umuff@quark.com), fixes bug 57928.
3430
3431 2004-05-06  Jackson Harper  <jackson@ximian.com>
3432
3433         * reflection.c: Handle null PublicTokens properly. alloc mem for
3434         assembly names culture so we dont crash when freeing it.
3435         
3436 2004-05-06  Jackson Harper  <jackson@ximian.com>
3437
3438         * assembly.c: Check the usergac when loading with partial names.
3439         
3440 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3441
3442         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3443         does nothing for now (not required for Linux/Windows) but the class
3444         library can call it (and a newer or modified runtime could need it).
3445         * icall.c: Registred icall.
3446
3447 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3448
3449         * loader.c: prints a message on module loading error we set MONO_DEBUG
3450         environment variable.
3451
3452 2004-05-05  Jackson Harper  <jackson@ximian.com>
3453
3454         * appdomain.c: Handle PublicKeyToken=null properly.
3455         
3456 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3457
3458         * environment.c|h: Added icall ves_icall_System_Environment_
3459         GetOSVersionString to get the current OS version as a string.
3460         * icall.c: Registred icall.
3461
3462 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3463
3464         * object.c: in mono_object_get_virtual_method(), take into account that
3465         non-virtual methods don't have a slot in the vtable. Check needed when
3466         the object is a proxy.
3467
3468 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3469
3470         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3471         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3472
3473         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3474
3475         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3476         passed when a valuetype is expected.
3477
3478         * object.c (mono_unhandled_exception): Only set the exit code if the
3479         exception happens in the main thread. Fixes thread5.exe.
3480
3481         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3482         invalid names. Fixes #58047.
3483
3484 2004-05-03  Jackson Harper  <jackson@ximian.com>
3485
3486         * assembly.c: This line was committed accidently and is unneeded.
3487         
3488 2004-05-03  Jackson Harper  <jackson@ximian.com>
3489
3490         * icall.c: Add new icall for Assembly::LoadWithPartialName
3491         * assembly.c/.h: new function that probes the GAC to load partial
3492         assembly names by Paolo Molaro.
3493         
3494 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3495
3496         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3497         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3498         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3499         full type name.
3500
3501 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3502
3503         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3504         * reflection.c: fix bug when parsing a full type name and Version is not
3505         the last thing in the string.
3506
3507 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3508
3509         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3510         crashes when it is freed.
3511
3512 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3513
3514         * assembly.c: print the compat warning to stderr.
3515
3516 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3517
3518         * assembly.c (mono_assembly_load_references): Add a compatibility
3519         hack to run old applications that might be still referencing the
3520         3300-based assemblies, only do this for System.xxx.
3521
3522 2004-05-01  Jackson Harper  <jackson@ximian.com>
3523
3524         * appdomain.c: If the culture is neutral we set it to "".
3525         
3526 2004-04-29  Jackson Harper  <jackson@ximian.com>
3527
3528         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3529
3530 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3531  
3532         * string-icalls.c: added low overhead function for copying chars
3533         * icall.c: added needed icall for the above function
3534  
3535 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3536
3537         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3538         Environment.GetLogicalDrives.
3539
3540 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3541
3542         * rand.c: try and talk to egd or prngd
3543         for random bytes if opening devices fail.
3544
3545 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3546
3547         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3548         alignment for the type using the native alignment of its members 
3549         instead of using klass->min_align.
3550
3551         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3552
3553 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3554
3555         * file-io.c:
3556         * socket-io.c: added check for sys/aio.h.
3557
3558 2004-04-28  Dick Porter  <dick@ximian.com>
3559
3560         * threads.c: Don't abort a thread thats already aborting, when
3561         terminating everything.
3562
3563 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3564
3565         * icall.c: added 2 new async calls for Socket.
3566
3567         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3568         IO on *nix systems.
3569
3570         * threadpool.c: removed unused variable.
3571
3572 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3573
3574         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3575
3576 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3577
3578         * locales.c: put back string_invariant_tolower () and
3579         string_invariant_toupper ().
3580
3581 2004-04-26 David Waite <mass@akuma.org>
3582
3583         * file-io.h:
3584         * socket-io.h:
3585         * threads.h:
3586         * unicode.h: remove comma from end of enumeration declarations
3587
3588 2004-04-26 David Waite <mass@akuma.org>
3589
3590         * debug-mono-symfile.h:
3591         * decimal.c:
3592         * mono_debug.h:
3593         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3594
3595
3596 2004-04-26  Jackson Harper  <jackson@ximian.com>
3597
3598         * appdomain.c: Increment version number.
3599         
3600 2004-04-26  Jackson Harper  <jackson@ximian.com>
3601
3602         * appdomain.c: Set assembly references public token value when
3603         PublicKeyToken is specified, not the hash_value. Free public token
3604         values when free assembly name data. Previously the public key
3605         token was hex decoded, however we are using hex encoded public key
3606         tokens, so this is not neccasary.
3607         * assembly.c: Lookup assemblies in the gac if their public token
3608         value is set. Add function to allow enabling user gac
3609         lookups. Specify whether or not the assembly was loaded from the
3610         GAC. Compare full assembly names when checking the cache for
3611         assemblies (Temporarily disabled see comment in code). Remove
3612         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3613         specifies trace-loader they get extra info to stdout on the
3614         loading of assemblies.
3615         * image.h: Add a field for an assembly references public token
3616         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3617         whether an assembly has been loaded from the GAC.
3618         * image.c: Remove a corlib -> mscorlib name mapping.
3619         * loader.h: Add function to enable/disable the user gac.
3620         * mono-config.c: Check if the usergac is enabled in the config
3621         file.
3622         * icall.c: New icall to determine whether or not an assembly has
3623         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3624         * tabldefs.h: Add constant for assemblyref flag that specifies a
3625         full public key is used instead of a public token.
3626         * reflection.c: Remove mscorlib -> corlib mappings. Set
3627         PublicTokenValue instead of hash value. This value is a hex
3628         string so it does not need to be expanded.
3629
3630 2004-04-26  Martin Baulig  <martin@ximian.com>
3631
3632         * mono-debug-debugger.c (mono_debugger_initialize): Set
3633         `mono_debugger_initialized' before calling mono_debug_lock().
3634
3635 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3636
3637         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3638           InternalToUpper/InternalToLower.
3639         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3640           removed invariant culture shortcut.  This is now done in managed code.
3641         * locales.c: (string_invariant_toupper/tolower) removed.
3642
3643 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3644
3645         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3646         Added Poll internal call.
3647
3648         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3649         call for Poll. Select was too heavy for polling a single socket.
3650
3651         * threadpool.[ch]: added mono_threadpool_cleanup.
3652         * threads.c: use it. Don't use Thread_Abort on windows.
3653
3654 2004-04-23  Martin Baulig  <martin@ximian.com>
3655
3656         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3657
3658 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3659
3660         * icall.c: Registred new icalls for key pair protection and added an
3661         icall for Environment.GetFolderPath on Windows.
3662         * security.c|h: Added new icalls for key pair protection.
3663
3664 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3665
3666         * socket-io.c: don't display the non-supported family warning for known
3667         families. Now this is not displayed on windows when checking support
3668         for IPv4/IPv6.
3669
3670 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3671
3672         * class.c: don't display the layout warning for static fields.
3673
3674 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3675
3676         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3677         * locales.c, locales.h: Added new icalls for culture-specific
3678         Char.ToLower and Char.ToUpper.
3679
3680 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3681
3682         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3683         by David Waite.
3684
3685 2004-04-20  Martin Baulig  <martin@ximian.com>
3686
3687         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3688         of the type name before passing it to mono_reflection_type_from_name().
3689
3690 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3691
3692         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3693         encodings here. Fixes #56965.
3694
3695 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3696
3697         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3698         fix test on strstr result not that I can see anything that
3699         relies on the result.
3700
3701 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3702
3703         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3704         Fixes #57081.
3705
3706         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3707
3708         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3709         function to determine which marshalling to use for strings. Fixes
3710         #56965.
3711
3712         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3713
3714         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3715
3716 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3717
3718         * icall.c: #include mono-config.h
3719
3720 2004-04-15  Jackson Harper  <jackson@ximian.com>
3721
3722         * culture-info-tables.h: Fix date formats for en-US culture.
3723         
3724 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3725
3726         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3727         ThreadPool.SetMinThreads.
3728         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3729         ThreadPool.SetMinThreads.
3730
3731 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3732
3733         * mono-config.c: also load the .config file in the directory
3734         where the assembly was found.
3735
3736 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3737
3738         * assembly.c: load per-assembly config files.
3739         * icall.c: decrapified code to get the config dir and moved to
3740         mono-config.c.
3741         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3742         per-assembly config files. When doing a dll map lookup give precedence
3743         to the per-assembly data.
3744
3745 2004-04-14  Martin Baulig  <martin@ximian.com>
3746
3747         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3748         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3749         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3750
3751         * mono-debugger-debugger.c: While the debugger is locked, remember
3752         whether the symbol tables have changes and send one single
3753         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3754
3755 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3756
3757         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3758
3759         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3760         function.
3761
3762         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3763         account when marshalling string arrays. Fixes #56965.
3764
3765 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3766
3767         * icall.c: Add new icalls mapping for security.
3768         * security.c|h: Add internal calls for WindowsIdentity,
3769         WindowsImpersonationContext and WindowsPrincipal.
3770
3771 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3772
3773         * class.c: Added comment to ensure the System.MonoDummy class
3774         is removed when no longer necessary
3775
3776 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3777
3778         * appdomain.c: Pass arguments to the bootstraping exceptions to
3779         minimize JITed methods at boot
3780
3781         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3782         second string to be null.
3783
3784         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3785         Change the protocol to minimize the JIT methods at startup.  Now
3786         it Returns the internal codepage, if the value of "int_code_page"
3787         is 1 at entry, and we can not compute a suitable code page
3788         number, returns the code page as a string.
3789
3790 2004-04-13  Jackson Harper  <jackson@ximian.com>
3791
3792         * culture-info-tables.h: Fix number of decimal digits for all
3793         english locales.
3794
3795 2004-04-13  Jackson Harper  <jackson@ximian.com>
3796
3797         * icall.c: Clairfy out of sync error message. It is not always
3798         your corlib that is out of sync.
3799
3800 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3801
3802         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3803         properties when only the set accessor is overriden. Fixes #55874.
3804
3805 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3806
3807         * assembly.c (mono_assembly_load_references): Make this thread safe.
3808         Fixes #56327.
3809
3810 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3811
3812         * monosn.c: Add missing initialization calls.
3813
3814 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3815
3816         * locales.c:
3817         ves_icall_System_Globalization_CultureInfo_construct_number_format
3818         Fix g_assert so it compiles on fussier compilers re int/ptr
3819         mismatch
3820
3821 2004-04-08  Dick Porter  <dick@ximian.com>
3822
3823         * socket-io.h:
3824         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3825         53992.  Also rearrange the code so that the internal calls return
3826         an error value and exceptions are thrown from managed code.
3827
3828         * icall.c: Add type info to the socket icalls.
3829
3830 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3831
3832         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3833         owes me a beer.
3834
3835 2004-04-07  Martin Baulig  <martin@ximian.com>
3836
3837         * class.c (mono_class_from_generic_parameter): Don't default
3838         `klass->parent' to `mono_defaults.object_type'.
3839
3840 2004-04-07  Martin Baulig  <martin@ximian.com>
3841
3842         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3843         `param->pklass->reflection_info'.       
3844
3845 2004-04-07  Jackson Harper  <jackson@ximian.com>
3846
3847         * culture-info-tables.h: Fix date separator symbol.
3848         
3849 2004-04-07  Martin Baulig  <martin@ximian.com>
3850
3851         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3852         from System.Type to System.MonoType.
3853
3854 2004-04-07  Martin Baulig  <martin@ximian.com>
3855
3856         * reflection.h
3857         (MonoReflectionGenericParam): Added `has_reference_type' and
3858         `has_value_type' fields.
3859
3860         * reflection.c (mono_image_get_generic_param_info): Encode the
3861         correct flags if we have the `class' or `struct' constraint.
3862
3863 2004-04-07  Martin Baulig  <martin@ximian.com>
3864
3865         * reflection.h
3866         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3867
3868 2004-04-07  Jackson Harper  <jackson@ximian.com>
3869
3870         * appdomain.c: Revert extra patches, just wanted to bump the
3871         version number.
3872         
3873 2004-04-07  Jackson Harper  <jackson@ximian.com>
3874
3875         * Makefile.am: Add culture-info private headers.
3876         * icall.c: Add new icalls for contructing locales.
3877         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3878         * locales.h: Declare new culture info construction methods.
3879         * object.h: Add new fields used to avoid the CultureMap to
3880         MonoCultureInfo.
3881         * culture-info.h: Definition of structs used in the culture info
3882         tables.
3883         * culture-info-tables.h: Autogenerated tables that contain culture
3884         info data. This file was generated with the locale-builder tool.
3885         * appdomain.c: Incement corlib version number.
3886         
3887 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3888
3889         * appdomain.c: (mono_runtime_init) move mono_thread_init
3890         to before mono_object_new calls so critical sections
3891         are initialized before use.
3892
3893 2004-04-07  Martin Baulig  <martin@ximian.com>
3894
3895         * icall.c
3896         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3897         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3898         (ves_icall_MonoGenericParam_initialize): Removed.
3899         (monogenericparam_icalls): Removed.
3900         (generictypeparambuilder_icalls): Added new table for
3901         System.Reflection.Emit.GenericTypeParameterBuilder.
3902
3903         * reflection.c
3904         (mono_reflection_define_generic_parameter): Removed.
3905         (mono_reflection_initialize_generic_parameter): This is now called
3906         from GenericTypeParameterBuilder's .ctor.
3907
3908 2004-04-06  Martin Baulig  <martin@ximian.com>
3909
3910         * class.c (mono_class_init): Don't inflate nested classes in a
3911         generic instance.
3912         (mono_type_get_name_recurse): Include the generic arguments for
3913         generic instances and generic type declarations.
3914         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3915         (_mono_class_get_instantiation_name): Removed.
3916         (mono_class_create_generic): Always use `gklass->name' as our name.
3917
3918         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3919
3920         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3921         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3922         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3923         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3924         closed generic methods here.
3925
3926         * reflection.c
3927         (mono_reflection_generic_inst_get_nested_types): Removed.
3928         (inflate_mono_method): Copy the generic parameters from the
3929         MonoMethodHeader into out MonoGenericMethod.
3930
3931 2004-04-06  Martin Baulig  <martin@ximian.com>
3932
3933         * row-indexes.h
3934         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3935
3936         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3937
3938         * reflection.c (build_compressed_metadata): If we have any entries
3939         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3940         set the header version to 1.1.
3941
3942 2004-04-06  Martin Baulig  <martin@ximian.com>
3943
3944         * class.c (mono_class_init): If we're a generic instance,
3945         initialize our nested classes, too.
3946         (_mono_class_get_instantiation_name): Deal with the new `!%d'
3947         suffix. 
3948
3949 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3950
3951         * process.c: quote the argument passed to the shell on windows.
3952
3953 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
3954
3955         * threads.c (mono_alloc_special_static_data): Allow this to be
3956         called during startup.
3957
3958 2004-04-02  Martin Baulig  <martin@ximian.com>
3959
3960         * icall.c
3961         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
3962
3963 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
3964
3965         * icall.c: Fix build.
3966
3967 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
3968
3969         * Makefile.am: Added security.c|h.
3970         * icall.c: Added icall for get_UserName;
3971         * security.c: New file for security related icalls. Added function
3972         get_UserName for System.Environment (fix #56144).
3973         * security.h: New. Header file for security.c
3974
3975 2004-04-02  Dick Porter  <dick@ximian.com>
3976
3977         * icall.c: Deleted the icalls that were obsoleted some time ago
3978         by the ICU string code, and which were mixed into the icall
3979         rearranging.  Fixes bug 55969.
3980
3981         * string-icalls.h: 
3982         * string-icalls.c: Deleted the code that those icalls reference.
3983
3984 2004-04-01  Martin Baulig  <martin@ximian.com>
3985
3986         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
3987
3988         * class.c (mono_class_from_generic_parameter): Don't set 
3989         TYPE_ATTRIBUTE_INTERFACE.
3990         (my_mono_class_from_generic_parameter): Likewise.
3991
3992 2004-04-01  Martin Baulig  <martin@ximian.com>
3993
3994         * loader.c (find_method): Added an optional `MonoClass *ic'
3995         argument to search in a specific interface.
3996         (mono_get_method_constrained): New public function.
3997
3998 2004-04-01  Martin Baulig  <martin@ximian.com>
3999
4000         * reflection.c (mono_image_get_generic_field_token): Use the
4001         `handleref' cache here.
4002
4003 2004-04-01  Martin Baulig  <martin@ximian.com>
4004
4005         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
4006
4007         * reflection.c (create_generic_typespec): Use the `typespec' hash
4008         here, not the `typeref' one.    
4009
4010 2004-04-01  Martin Baulig  <martin@ximian.com>
4011
4012         * class.c (mono_class_inflate_generic_type): Moved the
4013         functionality into a new static inflate_generic_type() which
4014         returns NULL if it didn't do anything.  Only increment the
4015         `mono_stats.inflated_type_count' if we actually inflated
4016         something.
4017         (mono_class_get_full): Check the classes type to see whether we
4018         need to inflate it; also inflate MONO_TYPE_(M)VAR.
4019
4020 2004-04-01  Jackson Harper  <jackson@ximian.com>
4021
4022         * reflection.c: Set culture for assembly references.
4023         
4024 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
4025
4026         * reflection.[ch], icall.[ch], Fix support for pinning variables.
4027
4028 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4029
4030         * assembly.c:
4031         (do_mono_assembly_open): the critical section also covers
4032         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
4033
4034 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4035
4036         * threads.c:
4037         (mono_manage_threads): abort the background threads when finishing.
4038         Fixes bug #47232.
4039
4040 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4041
4042         * gc.c: only close the done_event handle if there was no timeout.
4043         C-ified comments.
4044
4045 2004-03-30  Martin Baulig  <martin@ximian.com>
4046
4047         * icall.c (icall_entries): It's called "System.Activator", not
4048         "System.Activation".    
4049
4050 2004-03-30  Martin Baulig  <martin@ximian.com>
4051
4052         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
4053         (mono_class_create_from_typespec): Likewise.
4054
4055 2004-03-30  Martin Baulig  <martin@ximian.com>
4056
4057         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
4058         `has_ctor_constraint' and `initialized'.
4059
4060 2004-03-30  Martin Baulig  <martin@ximian.com>
4061
4062         * reflection.c (encode_new_constraint): New static function to add
4063         the constructor constraint attribute to a type parameter.
4064         (encode_constraints): Call encode_new_constraint() if necessary.
4065
4066         * reflection.h
4067         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
4068
4069         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
4070         
4071 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
4072
4073         * reflection.c, icall.c: add support for pinning variables. 
4074
4075 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
4076
4077         * marshal.c (mono_marshal_get_managed_wrapper):
4078         init bool local with zero rather than null.
4079
4080 2004-03-29  Martin Baulig  <martin@ximian.com>
4081
4082         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
4083         the "official" behavior here.
4084         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
4085
4086 2004-03-29  Martin Baulig  <martin@ximian.com>
4087
4088         * icall.c: Reflect latest API changes.
4089
4090 2004-03-29  Martin Baulig  <martin@ximian.com>
4091
4092         * loader.c (mono_get_method_from_token): Also call
4093         mono_metadata_load_generic_params () for abstract and interface
4094         methods; replace the type arguments in the method signature with
4095         the ones which are loaded from the metadata.
4096
4097 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
4098
4099         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
4100         of the lock is not the current thread. MS.NET don't do it, in spite of
4101         what the documentation says. See bug #56157.
4102
4103 2004-03-28  Martin Baulig  <martin@ximian.com>
4104
4105         * class.c (mono_class_init): Don't call init_properties() and
4106         init_events() for generic instances; set `prop->parent' when
4107         inflating properties.
4108
4109         * reflection.c (mono_generic_inst_get_object): Call
4110         `mono_class_init (ginst->klass)'.
4111         (mono_type_get_object): Only create a MonoGenericInst if your
4112         generic type is a TypeBuilder.
4113         (do_mono_reflection_bind_generic_parameters): Only set
4114         `ginst->is_dynamic' if our generic type is a TypeBuilder.
4115
4116 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
4117
4118         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
4119         Fixes #56091.
4120
4121 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4122
4123         * icall.c: added Kill_internal icall.
4124         * process.[ch]: added Kill_internal icall.
4125
4126 2004-03-25  Martin Baulig  <martin@ximian.com>
4127
4128         * class.h (MonoStats): Added `generic_instance_count',
4129         `inflated_method_count', `inflated_type_count' and
4130         `generics_metadata_size'.       
4131
4132 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4133
4134         * reflection.c: no warnings now.
4135
4136 2004-03-25  Martin Baulig  <martin@ximian.com>
4137
4138         * class.c (mono_class_get_full): New public function; does a
4139         mono_class_get(), but also takes a `MonoGenericContext *'.
4140
4141         * loader.c (mono_field_from_memberref): Renamed to
4142         `field_from_memberref', made static and added `MonoGenericContext *'
4143         argument.
4144         (mono_field_from_token): Added `MonoGenericInst *' argument.
4145         (method_from_memberef): Likewise.
4146         (mono_get_method_from_token): Likewise.
4147         (mono_get_method_full): New public function; does a
4148         mono_get_method(), but also takes a `MonoGenericContext *'.
4149
4150         * verify.c (mono_method_verify): Get the method's generic context
4151         and pass it to mono_field_from_token(), mono_get_method_full() and
4152         mono_class_get_full().
4153
4154 2004-03-25  Martin Baulig  <martin@ximian.com>
4155
4156         * class.c (mono_class_inflate_generic_type): Take a
4157         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4158         `MonoGenericMethod *'.
4159
4160 2004-03-25  Martin Baulig  <martin@ximian.com>
4161
4162         * loader.h (MonoMethodInflated): Store the MonoGenericContext
4163         instead of the MonoGenericMethod here.
4164
4165 2004-03-25  Martin Baulig  <martin@ximian.com>
4166
4167         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4168         each time we create a new MonoGenericInst, we also create a new
4169         context which points back to us.
4170
4171         * class.c (inflate_method): Use `ginst->context' instead of
4172         creating a new context.
4173
4174         * loader.c (method_from_memberref): Use
4175         `klass->generic_inst->context' instead of creating a new context.
4176
4177 2004-03-25  Martin Baulig  <martin@ximian.com>
4178
4179         * class.h (MonoGenericContext): New struct.
4180         (MonoGenericMethod): Removed `generic_inst'.
4181
4182         * class.c (mono_class_inflate_generic_method): Take a
4183         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4184
4185 2004-03-25  Martin Baulig  <martin@ximian.com>
4186
4187         * loader.h (MonoMethodInflated): New typedef.
4188
4189         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4190         `generic_param_count' consume just 30 bits, added `is_inflated'
4191         and `has_type_parameters' flags (one bit each).
4192
4193         * class.c (mono_class_inflate_generic_method): Create a
4194         MonoMethodInflated instead of a MonoMethodNormal and set
4195         `is_inflated' in the method signature.
4196
4197         * class.h (MonoGenericMethod): Removed `generic_method'.
4198
4199 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4200
4201         * image.c: Make sure the name of a MonoImage is always an absolute path.
4202           This fixes bug #54415.
4203
4204 2004-03-24  Martin Baulig  <martin@ximian.com>
4205
4206         * class.c (mono_class_setup_vtable): If we're a generic instance,
4207         use our generic type's vtable size.
4208
4209 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4210
4211         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4212         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4213         problems.
4214
4215 2004-03-23  Martin Baulig  <martin@ximian.com>
4216
4217         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4218         `MonoEvent *events'.
4219
4220         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4221         (typebuilder_icalls): Added "get_event_info"; calls
4222         mono_reflection_event_builder_get_event_info(). 
4223
4224         * reflection.c (mono_reflection_generic_inst_initialize): Added
4225         `MonoArray *events'.
4226         (mono_reflection_event_builder_get_event_info): New function.
4227
4228 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4229
4230         * object.h: add mono_type_initialization_init
4231
4232         * object.c (mono_runtime_class_init): 
4233         implement class constructor synchronization rules
4234         to cope with threading issues.  
4235         add mono_type_initialization_init
4236
4237         * appdomain.c (mono_runtime_init): call 
4238         mono_type_initialization_init
4239
4240         * class.h: removing initializing field from MonoVTable
4241
4242 2004-03-23  Martin Baulig  <martin@ximian.com>
4243
4244         * class.c (my_mono_class_from_generic_parameter): Use
4245         `param->name' if it's not NULL. 
4246
4247 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4248
4249         * class.c: do not insert non-virtual methods in the vtable.
4250         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4251         that means the method is non-virtual. This never would have
4252         happened before.
4253
4254 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4255
4256         * profiler.c: Added lock for accessing coverage_hash.
4257
4258 2004-03-22  Martin Baulig  <martin@ximian.com>
4259
4260         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4261         `method->method->signature->generic_param_count != 0' to make it
4262         work for interface methods.
4263
4264 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4265
4266         * process.c: quote the string passed to the shell using g_shell_quote.
4267
4268 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4269
4270         * threads.c:
4271         (mono_threads_manage): don't remove the finalizer thread and self
4272         from the threads hash table so that mono_thread_manage can be called
4273         more than once.
4274
4275 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4276
4277         * process.c: quote the arguments when UseShellExecute is true. Fixes
4278         bug #55790.
4279
4280 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4281
4282         * threads.c: set mono_thread_detach as a cleanup routine for every
4283         thread. This way it's always executed upon thread termination, either
4284         aborted or finished normally. No more xsp hangs!
4285
4286 2004-03-17  Martin Baulig  <martin@ximian.com>
4287
4288         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4289         `int count_nested' and a `MonoType **nested'.
4290
4291         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4292         most of the functionality into a new static
4293         do_mono_reflection_bind_generic_parameters() and don't take a
4294         `MonoType *nested_in' argument any more.  Don't compute nested
4295         types here.
4296         (mono_reflection_generic_inst_get_nested_types): New public method
4297         to get nested types.
4298
4299         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4300         we're a nested class.
4301
4302         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4303         mono_reflection_generic_inst_get_nested_types() to compute the
4304         nested types.
4305
4306 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4307
4308         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4309         descriptive error message under windows.
4310         
4311 2004-03-17  Martin Baulig  <martin@ximian.com>
4312
4313         * class.c (dup_type): Added `const MonoType *original' argument;
4314         copy the attrs from the original type.
4315
4316 2004-03-17  Martin Baulig  <martin@ximian.com>
4317
4318         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4319         `m->generic_inst_cache' here.
4320
4321 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4322
4323         * exception.h exception.c: Add stack_overflow_exception.
4324
4325 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4326
4327         * threadpool.c:
4328         (overlapped_callback): call SetEvent *after* invoking the callback.
4329         No need to call CloseHandle.
4330
4331 2004-03-16  Martin Baulig  <martin@ximian.com>
4332
4333         * reflection.c (mono_image_get_fieldref_token): Take a
4334         `MonoReflectionField *' instead of a `MonoClassField *' and a
4335         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4336
4337 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4338
4339         * appdomain.c: don't add the culture to the filename we're looking for
4340         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4341
4342 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4343
4344         * locales.c: don't ignore symbols when doing case insensitive compares.
4345         Thanks Dick! Fixes bug #54046.
4346
4347         * threads.c: surround 'threads' usage with enter/leave in
4348         mono_thread_manage.
4349
4350 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4351
4352         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4353         implicitly marshalled as [Out]. Fixes #55450.
4354
4355         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4356         an exception.
4357
4358 2004-03-16  Martin Baulig  <martin@ximian.com>
4359
4360         * class.c (mono_class_from_generic_parameter): Use the actual
4361         parameter name. 
4362
4363 2004-03-16  Martin Baulig  <martin@ximian.com>
4364
4365         * reflection.c (type_get_signature_size): New static function.
4366         Compues the size of the type in a method signature.
4367         (method_get_signature_size): New static function; calls
4368         type_get_signature_size() to compute the actual size of the
4369         method's signature.
4370         (method_encode_signature): Use method_get_signature_size() to get
4371         the signature's size rather than using `nparams * 10'.
4372
4373 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4374
4375         * file-io.h: define here WapiOverlapped on windows. I don't want the
4376         regular OVERLAPPED one.
4377
4378         * file-io.c:
4379         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4380         Disabling AIO on windows.
4381
4382 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4383
4384         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4385         bug #55385.
4386
4387 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4388
4389         * appdomain.c: upgraded corlib version.
4390
4391         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4392         and BeginWrite. Allow opening files for asynchrnous operations.
4393
4394         * file-io.h: new struct that maps FileStreamAsyncResult.
4395         * icall.c: added new icalls.
4396         * process.[ch]: support setting child process environment variables
4397         and use the SHELL or COMSPEC when UseShellExecute is true.
4398
4399         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4400         callback for async. IO is here and also BindHandle.
4401
4402         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4403         from here.
4404
4405 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4406
4407         * reflection.c (create_custom_attr): Allow len == 0.
4408
4409         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4410         computation on big-endian machines.
4411
4412 2004-03-13  Martin Baulig  <martin@ximian.com>
4413
4414         * class.h (MonoGenericInst): Added `int count_ifaces'.
4415
4416         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4417         `ginst->count_ifaces' instead `klass->interface_count' since we
4418         may get called before the vtable is created.
4419
4420         * loader.c (mono_method_get_param_names): If we're a generic
4421         instance, return and don't initialize the class.
4422
4423         * reflection.c (mono_reflection_setup_generic_class): Don't call
4424         ensure_runtime_vtable().
4425         (mono_reflection_bind_generic_parameters): Set
4426         `ginst->count_ifaces'.
4427
4428 2004-03-11  Jackson Harper <jackson@ximian.com>
4429
4430         * icall.c:
4431         * unicode.c:
4432         * unicode.h: Remove unused System.Char icalls.
4433         
4434 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4435
4436         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4437         code when we P/Invoke the first library in Windows.Forms, instead
4438         of when we first open the assembly.
4439
4440         * assembly.c: Drop the lookup from here.
4441
4442 2004-03-10  Martin Baulig  <martin@ximian.com>
4443
4444         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4445         class for properties, fields and events.  Finally fixes #54945.
4446
4447 2004-03-10  Martin Baulig  <martin@ximian.com>
4448
4449         * metadata.c (mono_metadata_class_equal): New static function;
4450         checks whether two generic instances or two generic parameters are
4451         equal.
4452         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4453         compare classes.        
4454
4455 2004-03-10  Martin Baulig  <martin@ximian.com>
4456
4457         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4458
4459         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4460         argument and write it into the `reflection_info' field.
4461
4462         * icall.c
4463         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4464         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4465
4466 2004-03-09  Jackson Harper  <jackson@ximian.com>
4467
4468         * char-conversions.h: use 8 bits for numeric data its all we need
4469         * icall.c: numeric data is only 8 bits now.
4470
4471 2004-03-09  Martin Baulig  <martin@ximian.com>
4472
4473         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4474
4475         * class.c (init_properties, init_events): Initialize the new
4476         `parent' field.
4477
4478         * reflection.c (typebuilder_setup_properties): Likewise.
4479         (typebuilder_setup_events): Likewise.
4480
4481         * reflection.h (MonoEventInfo): Replaced `parent with
4482         `declaring_type' and `reflected_type'.
4483
4484         * icall.c (ves_icall_get_property_info): Distinguish between
4485         declaring and reflected type.
4486         (ves_icall_get_event_info): Likewise.
4487
4488 2004-03-09  Martin Baulig  <martin@ximian.com>
4489
4490         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4491         (ves_icall_Type_GetField): Correctly set field->klass.
4492
4493 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4494
4495         * loader.h: Fix warning.
4496
4497 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4498
4499         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4500         library routine if present.  Notice that it will still continue
4501         executing even if its missing, for those working on the Gtk#
4502         edition of Windows.Forms.
4503
4504         * assembly.c (do_mono_assembly_open): If loading the
4505         System.Windows.Forms call mono_loader_wini_init.
4506
4507 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4508
4509         * class.h: Added MonoRemoteClass struct.
4510         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4511         function for MonoStrings.
4512         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4513         Added internal call for getting the proxy type.
4514         * marshal.c: Get the type of transparent proxies from its remote_class.
4515         Added methods that generate the IL for type checks and casts:
4516         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4517         mono_marshal_get_proxy_cancast.
4518         * marshal.h: Declaration of the previous new methods.
4519         * object.c: Added new moethods for creating and updating MonoRemoteClass
4520         instances: mono_remote_class, mono_upgrade_remote_class, 
4521         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4522         * verify.c: FIx transparent_proxy_fields layout.
4523         * appdomain.c: Bump corlib version.
4524
4525 2004-03-04  Jackson Harper  <jackson@ximian.com>
4526
4527         * icall.c: Add icall to access char conversion tables.
4528         * char-conversions.h: Character conversion tables.
4529         * Makefile.am: Add char-conversions.h private header file.
4530         
4531 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4532
4533         * appdomain.c (unload_thread_main): Increase unloading timeout to
4534         10 sec as a temporary workaround for Nant problems.
4535
4536 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4537
4538         * gc.c: Add checks for GC_enable and GC_disable.
4539
4540         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4541         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4542         (bug #54988).
4543         
4544 2004-02-27  Martin Baulig  <martin@ximian.com>
4545
4546         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4547         `MonoReflectionType *' instead of a `MonoType *'.
4548
4549 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4550
4551         * gc.c (run_finalize): Avoid finalizing the object representing the
4552         finalizer thread.
4553         (finalizer_thread): Fix warning.
4554
4555 2004-02-25  Martin Baulig  <martin@ximian.com>
4556
4557         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4558         argument for nested types.
4559         (mono_class_create_generic): Added support for nested generictypes.
4560
4561         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4562         `GList *nested'.
4563
4564         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4565
4566         * reflection.c (method_encode_signature): Increase the minimum
4567         value of `size' from 10 to 11.
4568         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4569         and `MonoType **types' arguments instead of the `MonoArray
4570         *types'; added `MonoType *nested_in'.  Recursively instantiate
4571         nested classes. 
4572
4573 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4574
4575         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4576         stack_overflow_ex members which are used by exception handling.
4577
4578         * appdomain.c (mono_runtime_init): Initialize the new members.
4579
4580         * gc.c (mono_gc_enable): New helper function.
4581         * gc.c (mono_gc_disable): New helper function.
4582
4583 2004-02-23  Martin Baulig  <martin@ximian.com>
4584
4585         * icall.c: I must have been really stupid - make it actually work
4586         this time ;-)
4587
4588 2004-02-23  Martin Baulig  <martin@ximian.com>
4589
4590         * loader.c (method_from_memberref): Only inflate the method if
4591         it's in another klass.
4592
4593 2004-02-23  Martin Baulig  <martin@ximian.com>
4594
4595         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4596         (mono_class_init): If we're a generic instance and an interface,
4597         compute `class->interface_id'; also create `class->interfaces'
4598         here and inflate them.
4599
4600         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4601         `ginst->is_open'.
4602         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4603
4604         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4605
4606 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4607
4608         * reflection.c (method_encode_code): Improved the error message
4609         generated by the exception.
4610
4611 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4612
4613         * icall.c: Martin did not do what he said in the ChangeLog for
4614         2004-02-18, but put back the changes for properties and events.
4615         Commenting those changes out again and adding comment to bug #54518.
4616         
4617         * process.c: removed warning.
4618
4619 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4620
4621         * marshal.c (emit_struct_conv): Print an error message instead of
4622         asserting when a type does not have the StructLayout attribute.
4623
4624 2004-02-20  Martin Baulig  <martin@ximian.com>
4625
4626         * reflection.c (mono_type_get_object): Also use the cache for
4627         generic instances.
4628         (mono_reflection_bind_generic_parameters): Always compute
4629         `ginst->ifaces'.        
4630
4631 2004-02-20  Martin Baulig  <martin@ximian.com>
4632
4633         * class.h (MonoGenericMethod): Removed `klass'.
4634
4635         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4636         *klass' argument.
4637
4638 2004-02-20  Martin Baulig  <martin@ximian.com>
4639
4640         * reflection.c (method_encode_methodspec): Actually use the
4641         uninflated signature for the memberref.
4642
4643 2004-02-20  Martin Baulig  <martin@ximian.com>
4644
4645         * class.h (MonoGenericMethod): Removed `declaring'.
4646
4647         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4648         is NULL, compute it here.
4649
4650 2004-02-20  Martin Baulig  <martin@ximian.com>
4651
4652         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4653
4654         * metadata.c (mono_metadata_generic_inst_hash): New method.
4655         (mono_metadata_generic_inst_equal): New method.
4656
4657         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4658         `klass->image->generic_inst_cache' cache to avoid creating
4659         duplicate MonoGenericInst's.
4660
4661         * class.c (mono_class_inflate_generic_type): Use the cache.
4662
4663 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4664
4665         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4666
4667 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4668
4669         * icall.c: added Socket.WSAIoctl icall.
4670
4671         * socket-io.[ch]: implemented
4672         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4673
4674 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4675
4676         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4677
4678 2004-02-18  Urs C Muff  <umuff@quark.com>
4679
4680         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4681         this work on PPC and other big-endian architectures.
4682
4683         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4684         fields with an underscore to make sure they're only accessed by
4685         the read32() macro.
4686
4687 2004-02-18  Martin Baulig  <martin@ximian.com>
4688
4689         * icall.c: Put the klass->refclass changes back for methods and
4690         fields, but not for properties and events.  We're currently not
4691         distinguishing between DeclaringType and ReflectedType for
4692         properties and events, that's what caused the regressions.
4693
4694 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4695
4696         * object.c:
4697         (mono_async_result_new): the handle can be NULL.
4698
4699         * threadpool.c: Use an event instead of a semaphore, don't initialize
4700         it until needed. This saves quite a few semaphores from being created
4701         when using the threadpool.
4702
4703 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4704
4705         * object.c (mono_string_is_interned_lookup): Fix interning of long
4706         strings. Fixes #54473.
4707
4708         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4709
4710         * icall.c: Revert the klass->refclass changes since they introduce
4711         regressions (bug #54518).
4712
4713 2004-02-18  Martin Baulig  <martin@ximian.com>
4714
4715         * class.c (mono_class_init): If we're a generic instance and don't
4716         come from a TypeBuilder, inflate our members here.
4717         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4718         (mono_class_create_generic): New public method.
4719         (mono_class_initialize_generic): Removed.
4720         (get_instantiation_name): Renamed to
4721         _mono_class_get_instantiation_name() and made it public.
4722
4723 2004-02-18  Martin Baulig  <martin@ximian.com>
4724
4725         * class.c (mono_class_inflate_generic_type): Clear the new
4726         instance's `nginst->klass' when inflating a generic instance.
4727         (mono_class_is_subclass_of): Added (basic) support for generic
4728         instances.
4729
4730 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4731
4732         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4733         MonoMempool to hold compiled native code.
4734
4735 2004-02-17  Martin Baulig  <martin@ximian.com>
4736
4737         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4738         `properties'.
4739
4740         * reflection.c (mono_reflection_generic_inst_initialize): Added
4741         `MonoArray *properties' argument.
4742
4743         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4744
4745 2004-02-17  Martin Baulig  <martin@ximian.com>
4746
4747         * icall.c (ves_icall_Type_GetFields): Renamed to
4748         ves_icall_Type_GetFields_internal() and added a
4749         `MonoReflectionType *rtype' argument; pass it to
4750         mono_field_get_object() to set the field's "reflected" type.
4751         (ves_icall_Type_GetConstructors): Likewise.
4752         (ves_icall_Type_GetEvents): Likewise.
4753         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4754         argument; pass it to mono_method_get_object() to set the method's
4755         "reflected" type.       
4756
4757 2004-02-17  Martin Baulig  <martin@ximian.com>
4758
4759         * class.h (MonoDynamicGenericInst): New type.
4760         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4761
4762         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4763         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4764         (ves_icall_MonoGenericInst_GetFields): New interncall.
4765
4766         * class.c (mono_class_from_generic): Don't call
4767         mono_class_initialize_generic() if this is a dynamic instance;
4768         ie. it's being created from a TypeBuilder.
4769         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4770         `class->byval_arg.type'.
4771
4772         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4773         to `inflate_method' and made static.
4774         (mono_reflection_inflate_field): Removed.
4775         (mono_reflection_generic_inst_initialize): New public method.
4776
4777         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4778         `ctors' and `fields'; added `initialized'.
4779
4780 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4781
4782         * debug-helpers.c (mono_method_full_name): Fix output for empty
4783         namespaces.
4784
4785 2004-02-12  Martin Baulig  <martin@ximian.com>
4786
4787         * class.h (MonoClassField): Added `MonoType *generic_type'.
4788
4789         * reflection.c (mono_image_get_fieldref_token): Added support for
4790         instantiated generic types.
4791         (field_encode_inflated_field): Removed.
4792         (mono_image_get_inflated_field_token): Removed.
4793         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4794
4795         * reflection.h (MonoReflectionInflatedField): Removed.
4796
4797 2004-02-12  Martin Baulig  <martin@ximian.com>
4798
4799         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4800         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4801
4802         * reflection.c (mono_image_get_methodspec_token): Take a
4803         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4804         (mono_image_create_token): Check whether we have a
4805         `method->signature->gen_method' and call
4806         mono_image_get_methodspec_token() if appropriate.
4807         (inflated_method_get_object): Removed.
4808         (mono_reflection_bind_generic_method_parameters): Return a
4809         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4810         (mono_reflection_inflate_method_or_ctor): Likewise.
4811
4812         * reflection.h (MonoReflectionInflatedMethod): Removed.
4813
4814 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4815
4816         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4817         for custom valuetype marshalling.
4818
4819         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4820
4821 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4822
4823         * icall.c: fixed WSAGetLastError_internal name.
4824
4825 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4826
4827         * threads.c (mono_thread_attach): Allow this to be called multiple
4828         times for a thread.
4829         
4830         * threads.c (build_wait_tids): Do not wait for ourselves.
4831
4832         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4833         appdomain list is empty.
4834
4835         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4836         memory returned by mono_string_builder_to_utf16, since it points into
4837         managed memory. Thanks to Bernie Solomon for noticing this.
4838
4839         * icall.c: Add AppDomainSetup icalls.
4840
4841         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4842
4843         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4844         types.
4845
4846         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4847         custom attributes to the method_aux struct. Also fix array indexes etc.
4848
4849         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4850         
4851 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4852
4853         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4854         (both static and runtime) and reduce startup time.
4855
4856 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4857
4858         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4859         AsAny marshalling conversion instead of crashing.
4860
4861         * marshal.c: Fix warnings.
4862
4863 2004-02-09  Martin Baulig  <martin@ximian.com>
4864
4865         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4866
4867         * reflection.h (MonoReflectionInflatedMethod): Removed the
4868         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4869
4870         * reflection.c (method_encode_methodspec): Removed the `method'
4871         argument; we get it from `gmethod->declaring'.
4872         (inflated_method_get_object): Removed the `declaring' argument.
4873
4874 2004-02-09  Martin Baulig  <martin@ximian.com>
4875
4876         * class.h (MonoGenericMethod): New type.
4877         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4878         `generic_method'.
4879
4880         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4881         a `MonoGenericMethod *gen_method' one.
4882
4883         * class.c (mono_class_inflate_generic_type): Take an additional
4884         `MonoGenericMethod * argument.  This is only non-NULL if we're
4885         inflating types for a generic method.   
4886         (mono_class_inflate_generic_signature): Renamed to
4887         inflate_generic_signature() and made static; take a
4888         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4889         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4890         instead of a `MonoGenericInst *' one.
4891         (mono_class_inflate_generic_method): Likewise.
4892
4893         * reflection.c (encode_generic_method_sig): Take a
4894         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4895         (method_encode_methodspec): Likewise.
4896         (inflated_method_get_object): Likewise. 
4897
4898         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4899         field with a `MonoGenericMethod *gmethod' one.  
4900
4901 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4902
4903         * class.h (mono_class_has_parent): add parens to expansion
4904         so you can ! this.
4905
4906 2004-02-08  Martin Baulig  <martin@ximian.com>
4907
4908         * image.h (MonoImage): Removed `generics_cache'.
4909
4910         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4911         instead of a `MonoType *' argument; removed the `inflate_methods'
4912         argument.  Don't inflate methods here.
4913
4914         * loader.c (find_method): If it's a generic instance, call
4915         mono_class_init() on the `sclass->generic_inst->generic_type'.
4916
4917         * metadata.c (mono_type_size): Make this work on uninitialized
4918         generic instances; call it on the `ginst->generic_type's class.
4919
4920         * reflection.c (mono_reflection_bind_generic_parameters): Call
4921         mono_class_from_generic() to create the `ginst->klass'.
4922
4923 2004-02-08  Martin Baulig  <martin@ximian.com>
4924
4925         * class.h (MonoClass): Changed type of `generic_inst' from
4926         `MonoType *' to `MonoGenericInst *'.
4927
4928 2004-02-08  Martin Baulig  <martin@ximian.com>
4929
4930         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4931         mono_type_get_object(), this is now creating a `MonoGenericInst'
4932         for MONO_TYPE_GENERICINST.
4933         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4934         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4935
4936         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4937         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4938         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4939         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4940         and reflected type.
4941
4942         * reflection.h (MonoReflectionInflatedMethod): Removed
4943         `declaring_type' and `reflected_type'.
4944
4945 2004-02-08  Martin Baulig  <martin@ximian.com>
4946
4947         * class.h (MonoGenericInst): Added `MonoType *parent' and
4948         `MonoType **ifaces'.
4949
4950         * reflection.h (MonoReflectionGenericInst): Removed `klass',
4951         `parent' and `interfaces'.
4952
4953         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4954         `MonoType *' argument and return a `MonoType *'.
4955
4956         * icall.c
4957         (ves_icall_MonoGenericInst_GetParentType): New interncall.
4958         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
4959
4960 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4961
4962         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
4963         valuetype marshalling.
4964
4965 2004-02-06  Martin Baulig  <martin@ximian.com>
4966
4967         * class.c
4968         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
4969         (my_mono_class_from_generic_parameter): Likewise.
4970
4971 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4972
4973         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
4974         contents of the symbol files lazily.
4975
4976         * object.h (MonoThread): Add 'name' and 'name_len' fields.
4977
4978         * threads.h threads.c icall.c: New icalls for getting and setting the
4979         threads name.
4980
4981 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
4982
4983         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
4984         Raise an exception when the domain is not found.
4985
4986 2004-02-03  Martin Baulig  <martin@ximian.com>
4987
4988         * reflection.c (mono_image_get_methodspec_token): Use the
4989         uninflated signature; fixes gen-33.
4990
4991 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
4992
4993         * gc.c threads.c: Make the finalizer thread a normal managed thread so
4994         the finalizer code can use thread functionality.
4995
4996         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
4997         the finalizer thread.
4998
4999         * threads.c: Make some functions more robust.
5000
5001         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
5002
5003         * metadata.h: Add new marshalling conventions.
5004
5005         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
5006         stringbuilder marshalling. Fixes #53700.
5007
5008         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
5009
5010         * reflection.c (mono_image_get_type_info): Save declarative security
5011         info.
5012
5013         * reflection.c (mono_image_get_field_info): Handle uninitialized 
5014         unmanaged fields as well.
5015
5016         * appdomain.c: Bump corlib version.
5017
5018 2004-02-01  Martin Baulig  <martin@ximian.com>
5019
5020         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
5021         method type arguments.  
5022
5023 2004-01-30  Duncan Mak  <duncan@ximian.com>
5024
5025         * marshal.h: Add prototype for
5026         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
5027         and
5028         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
5029         fix the build.
5030
5031 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
5032
5033         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
5034         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
5035
5036 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5037
5038         * marshal.c (mono_marshal_get_native_wrapper): Add support for
5039         custom marshalling of valuetypes.
5040
5041         * marshal.c: Fix some warnings.
5042
5043 2004-01-29  Martin Baulig  <martin@ximian.com>
5044
5045         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
5046         for generic method parameters.
5047
5048         * reflection.c (method_encode_methodspec): Write the uninflated
5049         signature into the methodspec table.
5050         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
5051         is always the uninflated method.
5052         (reflection_methodbuilder_to_mono_method): Copy the generic
5053         parameters from the MethodBuilder into `header->gen_params'.
5054
5055 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5056
5057         * class.c (mono_class_from_generic_parameter): Fix warning.
5058
5059 2004-01-27  Martin Baulig  <martin@ximian.com>
5060
5061         * class.c (mono_class_from_generic_parameter): Don't create
5062         `klass->methods' here.  
5063
5064 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
5065
5066         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
5067         extension since it does not work with libraries named lib<FOO>.dll.so.
5068
5069 2004-01-25  Martin Baulig  <martin@ximian.com>
5070
5071         * class.c (mono_class_inflate_generic_type): Added support for
5072         MONO_TYPE_GENERICINST.
5073
5074         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
5075         inflate methods on open constructed types.      
5076
5077 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5078
5079         * object.c: fire ProcessExit event in the root AppDomain after running
5080         Main. Fixes bug #53299.
5081
5082 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
5083
5084         * socket-io.c: include the new socket-wrappers.h header.
5085         Use the wrappers instead of the unix socket functions to make the code
5086         more clear.
5087
5088 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
5089
5090         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
5091
5092         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5093         Fixes #22532.
5094
5095 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
5096
5097         * reflection.c (mono_image_create_pefile): Handle the case when the
5098         entry point is not a MethodBuilder.
5099
5100         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5101         field to ReflectionMethod since it is not allways a builder.
5102
5103         * reflection.c (type_get_fully_qualified_name): New helper function to
5104         return the fully qualified name of a type.
5105
5106         * reflection.c (encode_marshal_blob): Always emit the fully qualified
5107         type name for custom marshallers.
5108
5109         * reflection.c (mono_marshal_spec_from_builder): Ditto.
5110
5111         * class.c (mono_class_setup_vtable): If a parent class already 
5112         implements an interface, use the implementing methods from that class.
5113         Fixes #53148.
5114
5115 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5116
5117         * threadpool.c: just return instead of ExitThread to allow for thread
5118         clean up earlier.
5119
5120 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
5121
5122         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
5123         when closing resource modules.
5124
5125         * reflection.c (mono_image_create_pefile): Handle the case when the
5126         entry point is not a MethodBuilder.
5127
5128         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5129         field to ReflectionMethod since it is not allways a builder.
5130
5131 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5132
5133         * marshal.c (mono_marshal_get_managed_wrapper): 
5134         mono_marshal_alloc takes native int so CONV_I
5135         the arg for 64bits.
5136
5137 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
5138
5139         * reflection.c (fixup_cattrs): New function to fixup the methoddef
5140         tokens in the cattr table. Fixes #53108.
5141
5142 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5143
5144         * loader.c: don't trim ".dll" before looking up in the config file.
5145         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5146
5147 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5148
5149         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
5150         Return the module which contains the resource as well.
5151         (ves_icall_System_Reflection_Module_Close): New icall.
5152
5153         * appdomain.c: Bump corlib version number.
5154
5155         * image.c (mono_image_addref): New public function.
5156
5157         * assembly.c: Call mono_image_addref.
5158
5159         * reflection.c (mono_module_get_object): Increase reference count of 
5160         the image.
5161
5162         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5163         Fixes #22532.
5164
5165         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5166         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5167         proper exceptions on DllImport problems.
5168
5169 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5170
5171         * class.c, metadata.c: eliminate CSIZE macro.
5172
5173 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5174
5175         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5176         * object.h: Added async_callback field in MonoAsyncResult.
5177         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5178         * verify.c: Added async_callback in MonoAsyncResult layout.
5179
5180 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5181
5182         * reflection.c (mono_reflection_get_custom_attrs): Add support
5183         for Modules.
5184
5185 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5186
5187         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5188         marshalling.
5189         (mono_marshal_method_from_wrapper): Add null pointer check.
5190
5191 2004-01-16  Martin Baulig  <martin@ximian.com>
5192
5193         * debug-mono-symfile.h: Set version number to 36 and reflect
5194         latest symbol writer changes.
5195
5196 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5197
5198         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5199         multi-dimensional arrays.
5200         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5201         (mono_class_from_mono_type): Use bounded_array_class_get.
5202         
5203         * class.c (mono_bounded_array_class_get): New function which takes
5204         a 'bounded' bool argument to distinguish vectors from one dimensional
5205         arrays.
5206
5207         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5208         bounded_array_class_get if the array has bounds.
5209
5210         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5211         Search modules loaded using AssemblyBuilder:AddModule as well.
5212
5213 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5214
5215         * appdomain.c: increased corlib version.
5216         * filewatcher.c: removed g_print.
5217         * icall.c:
5218         (get_property_info): only allocate what is actually requested.
5219         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5220
5221 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5222
5223         * Makefile.am: added filewatcher.[ch]
5224         * filewatcher.[ch]: FileSystemWatcher runtime support.
5225         * icall.c: added new FSW icalls.
5226
5227 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5228
5229         * string-icalls.c: fix stringbuilder regression as suggested by
5230         Iain McCoy <iain@mccoy.id.au>.
5231
5232 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5233
5234         * process.c (process_read_stringtable_block): Recognize '007f' as
5235         a language neutral stringtable block.
5236
5237 2004-01-12  Patrik Torstensson
5238
5239         * object.h (MonoStringBuilder) : Changed layout to support our
5240         new stringbuilder class.
5241         * marshal.c: Change marshalling to support the new layout of 
5242         string builder.
5243         * appdomain.c: increased version number because new layout of
5244         string builder.
5245
5246 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5247
5248         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5249         assembly name as an string instead of an AssemblyName, since it is
5250         easier to extract info from it.
5251
5252         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5253         the culture subdirectories too. Fixes #52231.
5254
5255 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5256
5257         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5258         It takes 2 new parameters with an optional name for the method to look
5259         for and case ignoring info.
5260
5261         * threadpool.c: removed unused variable.
5262
5263 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5264
5265         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5266         It takes 2 new parameters with an optional name for the property to look
5267         for and case ignoring info.
5268         Fixes bug #52753.
5269
5270 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5271
5272         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5273         Fix #52451.
5274
5275 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5276
5277         * appdomain.c:
5278         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5279         Fixes bug #52630.
5280
5281 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5282
5283         * reflection.c: Add support for more than one unmanaged resource.
5284
5285         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5286         in field->def_value, as done in all other cases.
5287
5288         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5289         TypeBuilders.
5290
5291         * reflection.c (mono_reflection_create_runtime_class): Remove 
5292         errorneous assignment to klass->element_class, since it is already
5293         done in mono_reflection_setup_internal_class.
5294
5295 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5296
5297         * gc.c: added missing LeaveCriticalSection.
5298         * icall.c: indented a couple of lines.
5299         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5300         if we call EndInvoke inside a callback. Fixes bug #52601.
5301
5302 2004-01-07  Martin Baulig  <martin@ximian.com>
5303
5304         * mono-debug-debugger.h
5305         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5306
5307 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5308
5309         * appdomain.c: Use messages in NotImplementedException.
5310
5311         * exception.c (mono_get_exception_not_implemented): Now this takes
5312         a message argument.
5313
5314         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5315         exception instead of g_asserting an aborting when something is not
5316         implemented.
5317
5318         Add some inline docs.
5319
5320 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5321
5322         * reflection.h: Update after changes to object layout.
5323
5324         * reflection.c: Implement saving of unmanaged aka win32 resources.
5325
5326         * appdomain.c: Bump version number.
5327
5328         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5329         Handle missing domains gracefully.
5330
5331 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5332
5333         * file-io.c : On Windows, there are much more invalid_path_chars.
5334
5335 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5336
5337         * class.h, object.c: prepare for GetType () speedup.
5338
5339 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5340
5341         * profiler.c: workaround for --profile null reference exception on
5342           cygwin. Patch by Patrik Torstensson.
5343
5344 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5345
5346         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5347         make work for unaligned access.
5348
5349 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5350
5351         * class.c: small cleanup (class->fields [i] -> field).
5352         * image.c: check address of metadata is valid.
5353
5354 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5355
5356         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5357         search the list of loaded assemblies.
5358
5359         * reflection.c (mono_reflection_type_from_name): Use 
5360         mono_assembly_loaded instead of mono_image_loaded.
5361
5362         * reflection.c: Fix warnings.
5363
5364 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5365
5366         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5367         is dynamic. This is needed since an assembly can contain both dynamic and
5368         non-dynamic images.
5369
5370         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5371         assembly->dynamic.
5372
5373         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5374
5375         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5376         to store modules loaded using AddModule.
5377
5378         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5379         on Modules.
5380
5381         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5382
5383         * reflection.c (mono_image_fill_export_table_from_module): New function to
5384         fill out the EXPORTEDTYPES table from a module.
5385
5386         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5387         into a separate function. Also handle loaded non-dynamic modules.
5388
5389         * reflection.c (mono_image_basic_init): Fix memory allocation.
5390
5391         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5392
5393         * assembly.c (mono_assembly_load_references): Make this public.
5394
5395 2003-12-19  Martin Baulig  <martin@ximian.com>
5396
5397         * class.c (mono_class_initialize_generic): Made this static, take
5398         a `MonoGenericInst *' instead of a `MonoClass *'.
5399         (mono_class_from_generic): Call mono_class_initialize_generic()
5400         unless we're already initialized or being called from
5401         do_mono_metadata_parse_generic_inst().
5402
5403         * class.h (MonoGenericInst): Added `initialized' and
5404         `init_pending' flags.
5405
5406         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5407         `mono_class_init (gklass)' or mono_class_initialize_generic()
5408         here; set `generic_inst->init_pending' while parsing the
5409         `type_argv'.
5410
5411 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5412
5413         * locales.c: include string.h for memxxx prototypes
5414
5415 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5416
5417         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5418         constructor when accessing literal fields.
5419
5420 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5421
5422         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5423
5424         * reflection.c (assembly_add_resource_manifest): New function to fill
5425         the MANIFESTRESOURCE table.
5426
5427         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5428
5429         * reflection.h: Update to changes in class layout.
5430
5431         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5432         Reenable call to mono_runtime_is_shutting_down ().
5433
5434         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5435         determine if the runtime is shutting down.
5436
5437 2003-12-16  Jackson Harper <jackson@ximian.com>
5438
5439         * icall.c: comment out call to mono_runtime_is_shutting_down to
5440         fix build.
5441         
5442 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5443
5444         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5445         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5446
5447 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5448
5449         * reflection.c: move definition of swap_with_size
5450         to before its first call
5451
5452 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5453
5454         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5455
5456         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5457         icall.
5458
5459         * object.c: Fix warnings.
5460
5461         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5462         members if FlattenHierarchy is set.
5463
5464         * reflection.c (mono_image_add_decl_security): New function to emit
5465         declarative security.
5466
5467         * reflection.h reflection.c: Add support for declarative security.
5468
5469         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5470         
5471 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5472
5473         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5474         
5475         * appdomain.c verify.c: Moved corlib version checking into its own
5476         function in appdomain.c since it needs to create vtables etc.
5477
5478 2003-12-13  Patrik Torstensson <p@rxc.se>
5479
5480         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5481         instead of unwrapped server.
5482
5483 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5484
5485         * verify.c (check_corlib): Fix field index.
5486
5487 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5488
5489         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5490         GetGacPath icall.
5491
5492 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5493
5494         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5495         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5496         cope with sizeof(size_t) != sizeof(guint32).
5497
5498 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5499
5500         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5501         in case of failure.
5502
5503 2003-12-10  Mark Crichton <crichton@gimp.org>
5504
5505         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5506         in managed code.
5507
5508         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5509
5510 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5511
5512         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5513         marked as deleted.
5514
5515 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5516
5517         * verify.c (check_corlib): Handle the case when the version field is 
5518         initialized by a static constructor.
5519
5520 2003-12-08  Patrik Torstensson  <p@rxc.se>
5521
5522     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5523
5524 2003-12-08  Martin Baulig  <martin@ximian.com>
5525
5526         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5527         a MonoReflectionGenericParameter, also take the parameter index
5528         and name as arguments.
5529         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5530         (ves_icall_MonoGenericParam_initialize): New interncall.
5531         (ves_icall_Type_make_byref_type): New interncall.
5532
5533         * reflection.h (MonoReflectionGenericParam): Derive from
5534         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5535         `index' fields.
5536
5537         * reflection.c (mono_reflection_define_generic_parameter): Create
5538         and return a new MonoReflectionGenericParam; don't initialize the
5539         constraints here.
5540         (mono_reflection_initialize_generic_parameter): New public method;
5541         initializes the constraints and creates the `param->pklass'.
5542
5543 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5544
5545         * reflection.h reflection.c: Use the new fields 'num_types', 
5546         'num_fields' and 'num_methods' to track the number of types etc.
5547
5548         * verify.c (check_corlib): Check corlib version number.
5549
5550 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5551
5552         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5553         function works on all methods.
5554
5555 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5556
5557         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5558         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5559         the custom_type_info flag of the transparent proxy.
5560         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5561         objects that supports IRemotingTypeInfo.
5562         * object.h: Added custom_type_info field in transparent proxy.
5563
5564 2003-12-06  Martin Baulig  <martin@ximian.com>
5565
5566         * class.c (mono_class_create_from_generic): Removed.
5567         (mono_class_from_generic): Check `ginst->klass' before doing
5568         anything else.  This is important to fully support "recursive"
5569         generic types.
5570
5571         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5572         empty `generic_inst->klass' before doing anything else.
5573
5574 2003-12-06  Dick Porter  <dick@ximian.com>
5575
5576         * verify.c: 
5577         * object.h:
5578         * icall.c:
5579         * locales.c: Use C structs to access class fields.  Don't do a
5580         conversion between MonoString and UChar because both are
5581         platform-endian UTF-16.  Compare now takes startindex and count
5582         parameters.  Add a char overload for IndexOf.  Speed up the
5583         invariant string IndexOf.
5584
5585 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5586
5587         * Makefile.am (monosn_LDADD): Fix parallel build.
5588
5589 2003-12-04  Martin Baulig  <martin@ximian.com>
5590
5591         * icall.c
5592         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5593         (ves_icall_Type_make_array_type): New interncall.       
5594
5595 2003-12-04  Martin Baulig  <martin@ximian.com>
5596
5597         * locales.c: also change it in the !HAVE_ICU case.
5598
5599 2003-12-04  Dick Porter  <dick@ximian.com>
5600
5601         * icall.c:
5602         * locales.c: construct_compareinfo is now in CompareInfo, not
5603         CultureInfo.
5604
5605 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5606
5607         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5608         image->files array.
5609
5610         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5611         table as well.
5612
5613         * assembly.c (mono_assembly_load_references): Only load references
5614         once.
5615
5616         * class.c (mono_class_from_name): Avoid linear search of the 
5617         EXPORTEDTYPE table.
5618
5619         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5620
5621 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5622
5623         * image.h (MonoImage): Add 'field_cache' field.
5624
5625         * loader.c (mono_field_from_token): Cache field lookups.
5626         
5627         * reflection.c (mono_module_get_object): Fix name property.
5628
5629         * icall.c (ves_icall_get_enum_info): Update after changes to 
5630         mono_metadata_get_constant_index ().
5631
5632         * icall.c: Get rid of get_type_info icall, use a separate icall for
5633         each type property to avoid needless memory allocations. Fixes #51514.
5634
5635         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5636         to avoid needless binary searches.
5637
5638         * class.c (class_compute_field_layout): Move the initialization of
5639         field->def_value to mono_class_vtable ().
5640
5641         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5642         non-corlib types.
5643
5644         * object.c (mono_object_allocate): Make it inline.
5645
5646         * object.c (mono_object_allocate_spec): Make it inline.
5647         
5648 2003-12-02  Dick Porter  <dick@ximian.com>
5649
5650         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5651         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5652
5653 2003-12-01  Dick Porter  <dick@ximian.com>
5654
5655         * threads.c: Fix signature and call in CreateMutex and
5656         CreateEvent.
5657
5658 2003-12-01  Dick Porter  <dick@ximian.com>
5659
5660         * icall.c: 
5661         * locales.c: Implement string compares and searching
5662
5663         * object.h: Add extra Thread field
5664
5665 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5666
5667         * reflection.c (fixup_method): Add support for MonoCMethod.
5668
5669 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5670
5671         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5672
5673         * reflection.c (assembly_name_to_aname): Allow extra characters in
5674         assembly names. Fixes #51468.
5675
5676 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5677
5678         * exception.c (mono_exception_from_name_domain): New helper function.
5679
5680         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5681         exception object in the correct domain.
5682
5683         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5684         formatting + make a copy a the input data.
5685
5686         * loader.c (mono_get_method_from_token): Methods which contain
5687         native code do not have entries in the ImplMap.
5688
5689         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5690         Thanks to Gonzalo for spotting this.
5691         
5692         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5693         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5694
5695         * assembly.h (mono_assembly_load_from): Split the second part of 
5696         assembly loading into a new public function.
5697
5698         * exception.h (mono_get_exception_bad_image_format): New function.
5699
5700 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5701
5702         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5703         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5704         
5705         * icall.c: Add new icall for creating dynamic methods.
5706
5707         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5708
5709         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5710
5711         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5712         create a dynamic method.
5713
5714         * reflection.c (resolve_object): New helper function.
5715
5716         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5717         which manipulate it so they can also work on dynamic methods.
5718
5719         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5720         creating the MonoReflectionMethodAux structure if it is not needed.
5721         
5722         * reflection.h verify.c: Update after changes to object layout.
5723
5724         * reflection.c (method_builder_encode_signature): Fix compilation on
5725         gcc 2.95.x.
5726
5727 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5728
5729         * appdomain.h: Added support for context static fields. Added static_data
5730           field to MonoAppContext and renamed thread_static_fields to a more
5731           generic special_static_fields in MonoAppDomain, since it can now contain
5732           context static fields.
5733         * domain.c: Updated hashtable name.
5734         * object.c: Replaced field_is_thread_static() for a more generic
5735           field_is_special_static() which also checks for context static attribute.
5736           In mono_class_vtable(), added support for static context fields.
5737         * threads.c: Changed methods that manage thread static fields to more
5738           generic methods so they can be reused both for thread and context static
5739           data.
5740         * threads.h: Declared some new methods.
5741
5742 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5743
5744         * reflection.h: Update after changes to the managed types.
5745
5746         * reflection.c (encode_custom_modifiers): New helper function.
5747
5748         * reflection.c (method_encode_signature): Emit custom modifiers.
5749
5750         * reflection.c (field_encode_signature): Emit custom modifiers.
5751
5752 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5753
5754         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5755
5756         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5757         implementation.
5758
5759         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5760         icall.
5761
5762         * object.c (mono_field_get_value_object): New function.
5763
5764         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5765         specific.
5766
5767 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5768
5769         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5770         return a preallocated out-of-memory exception instance.
5771
5772         * object.c (out_of_memory): Use the new function.
5773
5774         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5775         flag is before the custom modifiers. Fixes #49802.
5776
5777 2003-11-16  Martin Baulig  <martin@ximian.com>
5778
5779         * class.c (mono_class_is_open_constructed_type): Implemented the
5780         MONO_TYPE_GENERICINST case.
5781
5782 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5783
5784         * assembly.c (mono_assembly_fill_assembly_name): New function to
5785         fill out the MonoAssemblyName structure.
5786         (mono_assembly_open): Use the new function.
5787
5788         * icall.c (fill_reflection_assembly_name): New helper function.
5789
5790         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5791         new function.
5792
5793         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5794
5795 2003-11-15  Martin Baulig  <martin@ximian.com>
5796
5797         * class.c (mono_class_is_open_constructed_type): New public
5798         function; checks whether a type is an open constructed type,
5799         ie. whether it still contains type parameters.
5800         (mono_class_inflate_generic_type): If we're a type parameter and
5801         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5802         type.
5803
5804         * class.h (MonoGenericInst): Added `guint32 is_open'.
5805
5806         * loader.c (method_from_methodspec): Check whether we're an open
5807         or closed constructed type and set `ginst->is_open'.
5808
5809         * reflection.c (mono_reflection_bind_generic_parameters): Check
5810         whether we're an open or closed constructed type and set
5811         `ginst->is_open'.
5812         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5813         from open constructed types.
5814
5815 2003-11-15  Martin Baulig  <martin@ximian.com>
5816
5817         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5818         a generic instance (instead of a generic type declaration) with
5819         unbound generic parameters, bind them to our actual types.
5820
5821 2003-11-14  Martin Baulig  <martin@ximian.com>
5822
5823         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5824
5825         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5826         an interface type, populate `res->interfaces' with instantiated
5827         versions of all the interfaces we inherit.
5828
5829 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5830
5831         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5832         when MONO_PATH is set but doesn't contain the install dir.
5833
5834 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5835
5836         * icall.c:
5837         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5838         it's also implemented in base classes. Fixes bug #50927.
5839
5840 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5841
5842         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5843         if this method is called from a finalizer. Fixes #50913.
5844
5845 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5846
5847         * threads.c: Implement VolatileRead/VolatileWrite
5848
5849         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5850
5851 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5852
5853         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5854         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5855         2.95.3.
5856
5857         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5858         from Peter Ross (pro@missioncriticalit.com).
5859         
5860 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5861
5862         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5863
5864 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5865
5866         * assembly.c (mono_assembly_load_references): Disable check because it
5867         triggers on older corlibs which lots of people have.
5868
5869 2003-11-12  Jackson Harper  <jackson@ximian.com>
5870
5871         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5872         load corlib.dll if mscorlib.dll is not found.
5873         * assembly.h: Remove corlib name define.
5874         * class.c:
5875         * domain.c:
5876         * image.c: Change corlib name to mscorlib.
5877         
5878 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5879
5880         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5881
5882 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5883
5884         * appdomain.h: Added loader_optimization here to sync with the C#
5885         code, and add disallow_binding_redirects field.
5886
5887 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5888
5889         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5890
5891         * reflection.c (mono_image_build_metadata): Fix crash on modules
5892         with no types.
5893
5894         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5895
5896         * icall.c (ves_icall_get_method_info): Return callingConvention as
5897         well.
5898
5899         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5900         namespaces from the EXPORTEDTYPE table as well.
5901
5902         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5903         from all modules inside the assembly.
5904         
5905 2003-11-11  Martin Baulig  <martin@ximian.com>
5906
5907         * reflection.c (mono_reflection_bind_generic_parameters): Make
5908         this work for interfaces.
5909
5910 2003-11-11  Martin Baulig  <martin@ximian.com>
5911
5912         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5913
5914 2003-11-11  Martin Baulig  <martin@ximian.com>
5915
5916         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5917         "MonoInflatedMethod" and "MonoInflatedCtor".
5918
5919 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5920
5921         * reflection.c (resolution_scope_from_image): Use the assembly table
5922         from the manifest module, since other modules don't have it.
5923
5924         * debug-helpers.c (mono_type_full_name): New helper function.
5925
5926         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5927
5928         * image.c (mono_image_load_file_for_image): New public function which
5929         is a replacement for the load_file_for_image in class.c.
5930
5931         * assembly.c (mono_assembly_load_module): A wrapper for the function
5932         above which does assembly association and reference loading too.
5933
5934         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5935
5936 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5937
5938         * appdomain.c: not all of the attributes for the full assembly name
5939         are required and the order doesn't matter. Fixes bug #50787.
5940
5941 2003-11-10  Dick Porter  <dick@ximian.com>
5942
5943         * locales.c: Use platform-endian UTF16
5944
5945 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5946
5947         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5948         
5949 2003-11-10  Martin Baulig  <martin@ximian.com>
5950
5951         * metadata.c
5952         (mono_metadata_load_generic_params): Make this actually work.
5953
5954         * reflection.c (mono_reflection_bind_generic_parameters): If our
5955         parent is a generic instance, pass all the `types' to it, no
5956         matter whether it has the same number of type parameters or not.
5957
5958 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5959
5960         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5961
5962         * assembly.c (mono_assembly_load_references): Move the image<->assembly
5963         assignment code to this function so it gets called recursively for all
5964         modules.
5965
5966         * image.c (load_modules): Remove the assembly assignment since it is
5967         now done by mono_assembly_load_references.
5968         
5969         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5970         Add 'module' argument.
5971         (mono_module_get_types): New helper function.
5972         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
5973
5974 2003-11-08  Martin Baulig  <martin@ximian.com>
5975
5976         * class.c (mono_class_inflate_generic_method): Interface method
5977         don't have a header.
5978
5979         * reflection.c (mono_image_get_methodspec_token): Take an
5980         additional `MonoGenericInst *' argument instead of reading it from
5981         the header; this is necessary to support interfaces.
5982         (mono_image_create_token): Pass the `MonoGenericInst *' from the
5983         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
5984         (inflated_method_get_object): Take an additional `MonoGenericInst *'
5985         argument.
5986
5987         * reflection.h (MonoReflectionInflatedMethod): Added
5988         `MonoGenericInst *ginst'.
5989
5990 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
5991
5992         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
5993
5994 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
5995
5996         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
5997
5998 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
5999
6000         * reflection.c 
6001         (reflection_methodbuilder_from_method_builder):
6002         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
6003         initialize a ReflectionMethodBuilder structure.
6004         (mono_image_get_methodbuilder_token):
6005         (mono_image_get_ctorbuilder_token): New functions to emit memberref
6006         tokens which point to types in another module inside the same assembly.
6007
6008         * reflection.c: Use the new helper functions.
6009         
6010         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
6011
6012         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
6013         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
6014
6015         * reflection.c (resolution_scope_from_image): Emit a moduleref if
6016         neccesary.
6017
6018         * reflection.c (mono_image_build_metadata): Emit metadata only for the
6019         current module. Emit the manifest only for the main module.
6020
6021         * reflection.c (mono_image_create_token): Add assertion when a 
6022         memberref needs to be created.
6023
6024         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
6025
6026         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
6027         larger buffer for the custom attribute blob. Fixes #50637.
6028         
6029 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6030
6031         * threadpool.c: notify listener on async processing handles after
6032         invoking the async callback. Thanks to Zoltan.
6033
6034 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6035
6036         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
6037         avoid code duplication.
6038
6039         * reflection.h (MonoDynamicImage): New type which is currently unused,
6040         but will be used through the ref.emit code in place of 
6041         MonoDynamicAssembly.
6042
6043         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6044         object layout.
6045
6046         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
6047         a MonoDynamicImage instead of just a MonoImage.
6048         
6049         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
6050         icalls to ModuleBuilder but keep their semantics, so they will work
6051         with moduleb->assemblyb. This will change later.
6052         
6053 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6054
6055         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6056         object layout.
6057
6058         * reflection.c (mono_image_build_metadata): Avoid creation of a default
6059         main module, since it is now done by the managed code.
6060
6061 2003-11-03  Martin Baulig  <martin@ximian.com>
6062
6063         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
6064         `ginst->klass' here.
6065         (method_encode_methodspec): Don't use the `ginst->generic_method's
6066         klass if it's a generic instance, use `ginst->klass' in this case.
6067
6068 2003-11-03  Martin Baulig  <martin@ximian.com>
6069
6070         * reflection.c (mono_image_get_generic_method_param_info):
6071         Removed, use mono_image_get_generic_param_info() instead.
6072         (mono_image_get_type_info): Write the GenericParam table before
6073         the Method table.  This is neccessary because in the GenericParam
6074         table, type parameters of the class (ie. '!0' etc.) must come
6075         before the ones from its generic methods (ie. '!!0' etc).
6076
6077 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6078
6079         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
6080
6081 2003-11-02  Martin Baulig  <martin@ximian.com>
6082
6083         * reflection.c (create_generic_typespec): Take a
6084         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
6085         the generic parameters from it.
6086
6087 2003-11-02  Martin Baulig  <martin@ximian.com>
6088
6089         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
6090         instead of a `MonoClassField *' since we just need the type.
6091         (create_generic_typespec): New static function.  Creates a
6092         TypeSpec token for a generic type declaration.
6093         (mono_image_get_generic_field_token): New static function.
6094         (mono_image_create_token): If we're a FieldBuilder in a generic
6095         type declaration, call mono_image_get_generic_field_token() to get
6096         the token.
6097
6098 2003-11-02  Martin Baulig  <martin@ximian.com>
6099
6100         * reflection.h
6101         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
6102         `MonoReflectionGenericInst *declaring_type' and
6103         `MonoReflectionGenericInst *reflected_type' fields.
6104
6105         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
6106         `MonoReflectionGenericInst *declaring_type' and a
6107         `MonoReflectionGenericInst *reflected_type' argument instead of a
6108         single `MonoReflectionGenericInst *type' one.  Set
6109         `res->declaring_type' and `res->reflected_type' from them.
6110         (mono_reflection_inflate_field): Likewise.      
6111
6112 2003-11-02  Martin Baulig  <martin@ximian.com>
6113
6114         * class.c (mono_class_setup_vtable): Don't store generic methods
6115         in the vtable.  
6116
6117 2003-11-02  Martin Baulig  <martin@ximian.com>
6118
6119         * reflection.h (MonoReflectionGenericInst): Added
6120         `MonoReflectionType *declaring_type'.
6121
6122         * reflection.c (mono_reflection_bind_generic_parameters): Use
6123         `if (tb->parent)' instead of `klass->parent'.
6124
6125 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
6126
6127         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
6128         with an empty ASSEMBLY table.
6129
6130         * reflection.c (mono_image_build_metadata): Avoid using the same loop
6131         variable in the inner and outer loops.
6132
6133 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
6134
6135         * metadata.h (mono_metadata_make_token): Put parentheses around macro
6136         argument.
6137
6138         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
6139         
6140         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
6141         icalls. Instead, do everything in managed code. This is needed since
6142         it is hard to restore the original domain etc. in unmanaged code in the
6143         presence of undeniable exceptions.
6144
6145         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
6146         New icalls to push and pop appdomain refs.
6147
6148 2003-10-31  Martin Baulig  <martin@ximian.com>
6149
6150         * class.c (inflate_generic_type): Renamed to
6151         mono_class_inflate_generic_type() and made it public.
6152
6153         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6154         New interncall.
6155
6156         * loader.c (mono_field_from_memberref): Also set the retklass for
6157         typespecs.
6158
6159         * fielder.c (mono_image_get_inflated_field_token): New static
6160         method; creates a metadata token for an inflated field.
6161         (mono_image_create_token, fixup_method): Added support for
6162         "MonoInflatedField".
6163         (fieldbuilder_to_mono_class_field): New static function.
6164         (mono_reflection_inflate_field): New public function.
6165
6166         * reflection.h
6167         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6168         (MonoReflectionInflatedField): New typedef.     
6169
6170 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6171
6172         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6173         for Solaris and other platforms without s6_addr16
6174
6175 2003-10-30  Martin Baulig  <martin@ximian.com>
6176
6177         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6178         argument instead of two.
6179         (mono_class_inflate_generic_signature): Likewise.
6180         (inflate_generic_header): Likewise.
6181         (mono_class_inflate_generic_method): Likewise.  In addition, if
6182         `ginst->klass' is set, it becomes the new `method->klass'.
6183
6184         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6185         field.
6186
6187         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6188         first byte. [FIXME]
6189         (method_encode_methodspec): If we have generic parameters, create
6190         a MethodSpec instead of a MethodRef.
6191         (fixup_method): Added support for "MonoInflatedMethod" and
6192         "MonoInflatedCtor".
6193         (mono_image_create_token): Added support for "MonoInflatedMethod"
6194         and "MonoInflatedCtor".
6195         (inflated_method_get_object): New static function; returns a
6196         managed "System.Reflection.MonoInflatedMethod" object.
6197         (mono_reflection_bind_generic_method_parameters): Return a
6198         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6199         (mono_reflection_inflate_method_or_ctor): Likewise.
6200         (mono_image_get_generic_method_param_info): Initialize unused
6201         fields to zero.
6202         (mono_image_get_generic_param_info): Likewise.
6203
6204         * reflection.h (MonoReflectionInflatedMethod): New public
6205         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6206         "S.R.MonoInflatedCtor" classes.
6207
6208         * loader.c (method_from_memberref): If we're a TypeSpec and it
6209         resolves to a generic instance, inflate the method.
6210
6211 2003-10-28  Dick Porter  <dick@ximian.com>
6212
6213         * object.c (mono_runtime_run_main): Convert command-line arguments
6214         into utf8, falling back to the user's locale encoding to do so.
6215
6216 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6217
6218         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6219         at this time.
6220
6221         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6222
6223         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6224         up icalls at method definition time. Partially fixes #33569.
6225
6226 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6227
6228         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6229         marshalling of arrays. Fixes #50116.
6230
6231         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6232
6233         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6234         points to a vtable in the dying appdomain.
6235
6236         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6237         listeners into unmanaged code inside the lock.
6238
6239         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6240         domains and add some comments.
6241
6242 2003-10-25  Martin Baulig  <martin@ximian.com>
6243
6244         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6245
6246         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6247
6248         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6249         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6250         currently parsing.  Create the generic class and store it in
6251         `generic_inst->klass' before parsing the type arguments.  This is
6252         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6253         for an example.
6254         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6255         to support recursive typespec entries.
6256
6257         * class.c (mono_class_setup_parent): If our parent is a generic
6258         instance, we may get called before it has its name set.
6259         (mono_class_from_generic): Splitted into
6260         mono_class_create_from_generic() and mono_class_initialize_generic().
6261
6262 2003-10-25  Martin Baulig  <martin@ximian.com>
6263
6264         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6265         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6266         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6267         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6268
6269         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6270         (create_typespec): Likewise.
6271         (mono_reflection_bind_generic_parameters): Return a
6272         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6273         (mono_reflection_inflate_method_or_ctor): New public function.
6274
6275         * reflection.h (MonoReflectionGenericInst): New typedef.        
6276
6277 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6278
6279         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6280         inside the domain lock. Fixes #49993.
6281         
6282         * object.c (mono_class_vtable): When typed allocation is used, 
6283         allocate vtables in the GC heap instead of in the mempool, since the
6284         vtables contain GC descriptors which are used by the collector even
6285         after the domain owning the mempool is unloaded.
6286
6287         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6288
6289         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6290         reflect what it does. Also invalidate mempools instead of freeing
6291         them if a define is set.
6292
6293         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6294         of the appdomain.
6295         
6296         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6297         hold the finalizable objects in this domain.
6298
6299         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6300         appdomain.
6301
6302         * appdomain.c (mono_domain_set): New function to set the current
6303         appdomain, but only if it is not being unloaded.
6304
6305         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6306         appdomain which is being unloaded.
6307         
6308         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6309         unloading of the root appdomain.
6310
6311         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6312         icall to execute a method in another appdomain. Intended as a 
6313         replacement for InternalSetDomain, which can confuse the code 
6314         generation in the JIT.
6315
6316         * appdomain.c (mono_domain_is_unloading): New function to determine
6317         whenever an appdomain is unloading.
6318
6319         * appdomain.c (mono_domain_unload): New function to correctly unload
6320         an appdomain.
6321
6322         * assembly.c (mono_assembly_load_references): Check that an assembly
6323         does not references itself.
6324
6325         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6326         domain manually, it asks the finalizer thread to do it, then waits for
6327         the result. Also added a timeout.
6328
6329         * icall.c: Register the new icalls.
6330
6331         * threads.h threads.c: Export the mono_gc_stop_world and 
6332         mono_gc_start_world functions.
6333         
6334         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6335         function to fill out the mempool with 0x2a.
6336
6337 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6338
6339         * reflection.h (MonoReflectionMethodAux): New structure to store
6340         information which is rarely used, thus is not in the MonoMethod
6341         structure.
6342
6343         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6344         store the aux info.
6345
6346         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6347         and marshalling info into the aux structure.
6348
6349         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6350         from the aux structure.
6351
6352         * loader.c (mono_method_get_param_names): Retrieve the param names from
6353         the aux structure.
6354         
6355 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6356
6357         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6358         warning.
6359
6360 2003-10-21  Dick Porter  <dick@ximian.com>
6361
6362         * socket-io.c
6363         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6364         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6365
6366 2003-10-21  Martin Baulig  <martin@ximian.com>
6367
6368         * reflection.c (mono_reflection_bind_generic_parameters):
6369         `klass->parent' is NULL for interfaces.
6370
6371 2003-10-21  Martin Baulig  <martin@ximian.com>
6372
6373         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6374
6375 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6376
6377         * exception.c (mono_exception_from_name_msg): New helper function for
6378         creating exceptions and initializing their message field.
6379
6380         * exception.c: Simplify functions using the new helper.
6381
6382         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6383         New function.
6384
6385         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6386         mono_raise_exception, since otherwise gcc doesn't generate the function
6387         epilog for raise_exception, confusing the stack unwinding in the JIT.
6388         Fixes #45043.
6389
6390         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6391         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6392         Fixes #49499.
6393
6394 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6395
6396         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6397         utf8.
6398
6399 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6400
6401         * icall.c: Removed GetUninitializedObject method because
6402           AllocateUninitializedClassInstance does the same.
6403
6404 2003-10-18  Martin Baulig  <martin@ximian.com>
6405
6406         * class.c (inflate_generic_signature): Renamed to
6407         mono_class_inflate_generic_signature() and made it public.
6408         (my_mono_class_from_generic_parameter): New static function; if we
6409         don't already have the generic parameter's MonoClass, create a
6410         very simple one which is just used internally in the runtime and
6411         not passed back to managed code.
6412
6413         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6414
6415         * metadata.h (MonoMethodSignature): Moved the
6416         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6417         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6418
6419         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6420         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6421         interncall on the MonoMethod class, not on MethodInfo.
6422         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6423         calling mono_reflection_bind_generic_method_parameters() directly.
6424
6425         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6426         return the already computed `method->signature'.
6427         (method_from_methodspec): New static function to load a method
6428         from a MethodSpec entry.
6429         (mono_get_method_from_token): Call the new method_from_methodspec()
6430         for MethodSpec tokens.  
6431         (mono_get_method_from_token): If we're a generic method, load the
6432         type parameters.
6433
6434         * reflection.c (mono_image_get_memberref_token): Allow
6435         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6436         table.
6437         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6438         (mono_image_create_token): First check whether it's a generic
6439         method (so we'd need to create a MethodSpec), then do the other
6440         two alternatives.
6441         (mono_reflection_bind_generic_method_parameters): Return a
6442         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6443         called directly from the interncall.
6444
6445 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6446
6447         * reflection.c (load_public_key): Move loading of the public key
6448         into managed code.
6449
6450         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6451
6452         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6453         fields.
6454
6455         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6456         culture, hash_alg and public_key. Fixes #49555.
6457
6458 2003-10-17  Martin Baulig  <martin@ximian.com>
6459
6460         * class.h (MonoGenericInst): Moved this declaration here and added
6461         `MonoMethod *generic_method'.
6462
6463         * icall.c
6464         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6465         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6466
6467         * metadata.c (mono_metadata_type_equal): Two types of
6468         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6469         index; ie. don't compare the address of the `MonoGenericParam'
6470         structure.
6471         (mono_metadata_load_generic_params): Removed the `MonoMethod
6472         *method' argument.
6473
6474         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6475         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6476
6477         * reflection.c (method_encode_signature): Encode the number of
6478         generic parameters.
6479         (encode_generic_method_sig): New static function.
6480         (method_encode_methodspec): New static function; creates an entry
6481         in the MethodSpec table for a generic method.
6482         (mono_image_get_methodspec_token): New static function.
6483         (mono_image_create_token): Call mono_image_get_methodspec_token()
6484         for generic methods.
6485         (mono_reflection_bind_generic_method_parameters): New public
6486         function.  Instantiates a generic method.
6487
6488 2003-10-16  Martin Baulig  <martin@ximian.com>
6489
6490         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6491         *gen_params' here from MonoMethodHeader.
6492
6493         * metadata.c (mono_metadata_parse_method_signature): If we have
6494         generic parameters, initialize `method->gen_params' and then set
6495         the correct `type->data.generic_param' in all the parameters.
6496
6497 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6498
6499         * threads.c (mono_threads_get_default_stacksize): New function to 
6500         return the default stacksize.
6501
6502         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6503         termination of the finalizer thread, since the previous method had
6504         race conditions. Fixes #49628.
6505
6506         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6507         as for the other managed threads.
6508
6509 2003-10-16  Martin Baulig  <martin@ximian.com>
6510
6511         * class.c (inflate_generic_signature): Copy `generic_param_count'
6512         and `gen_params'.
6513
6514         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6515         New interncall.
6516
6517         * metadata.c (mono_metadata_parse_method_signature): Actually set
6518         the `method->generic_param_count' here.
6519         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6520
6521 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6522
6523         * object.h: Add a new field to TypedRef to simplify the implementation
6524         of the REFANY opcodes in the JIT.
6525
6526         * icall.c: Make use of the new field.
6527
6528         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6529         dynamically.
6530
6531 2003-10-15  Martin Baulig  <martin@ximian.com>
6532
6533         * class.c (mono_class_from_gen_param): Renamed to
6534         mono_class_from_generic_parameter() and moved most of the
6535         functionality from mono_reflection_define_generic_parameter()
6536         here; ie. we create a "real" class here.
6537         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6538         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6539         previously been called.
6540
6541         * class.h (MonoGenericParam): Moved the declaration of this struct
6542         here from metadata.h and added `MonoMethod *method'.
6543
6544         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6545         interncall.
6546
6547         * loader.c (mono_get_method_from_token): If we have any generic
6548         parameters, call mono_metadata_load_generic_params() to read them
6549         from the MONO_TABLE_GENERICPAR.
6550
6551         * metadata.c (mono_metadata_load_generic_params): Added
6552         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6553
6554         * metadata.h (MonoMethodSignature): Replaced
6555         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6556         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6557
6558         * reflection.c (mono_reflection_define_generic_parameter): Moved
6559         most of the functionality into the new
6560         mono_class_from_generic_parameter(); set the `method' field if
6561         we're a method parameter.       
6562
6563 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6564
6565         * marshal.c (emit_struct_conv): if native size is 0
6566         emit no code.
6567
6568 2003-10-14  Martin Baulig  <martin@ximian.com>
6569
6570         * icall.c: The generics API has changed in the spec since it was
6571         added to System.Type; these modifications make it match the spec
6572         again.
6573         (ves_icall_Type_GetGenericParameters): Renamed to
6574         `ves_icall_Type_GetGenericArguments'.
6575         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6576         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6577         `ves_icall_MonoType_get_HasGenericArguments'.
6578         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6579         `ves_icall_MonoType_get_IsGenericParameter'.
6580         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6581         this is no interncall anymore.
6582         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6583         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6584
6585 2003-10-14  Martin Baulig  <martin@ximian.com>
6586
6587         * reflection.c (mono_reflection_bind_generic_parameters): Also
6588         inflate generic methods if we're reading the class from IL.
6589
6590 2003-10-13  Martin Baulig  <martin@ximian.com>
6591
6592         * reflection.c (mono_reflection_define_generic_parameter): This
6593         method isn't called directly from the icall anymore; take a
6594         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6595         method generic parameters.
6596         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6597         (method_builder_encode_signature): Encode generic parameters.
6598         (mono_image_get_method_info): Write generic params to the
6599         MONO_TABLE_GENERICPARAM table.
6600
6601         * reflection.h (MonoReflectionMethodBuilder): Added
6602         `MonoArray *generic_params'.
6603
6604         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6605
6606         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6607         wrapper for mono_reflection_define_generic_parameter().
6608         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6609
6610 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6611
6612         * marshal.h: Add missing function to fix build.
6613
6614         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6615         the SetLastError pinvoke attribute.
6616
6617         * marshal.c (mono_marshal_set_last_error): New helper function called
6618         by the generated code.
6619         
6620         * marshal.c (mono_mb_emit_branch): New helper function.
6621
6622         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6623
6624         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6625         classes as parameters and return values of delegates. Fixes #29256. 
6626
6627 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6628
6629         * locales.c: use gint32 in non HAVE_ICU case
6630
6631 2003-10-11  Martin Baulig  <martin@ximian.com>
6632
6633         * mono-debug.c (mono_debug_add_method): Added a workaround for
6634         bug #48591.
6635
6636 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6637
6638         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6639         delegates passed to native code must use the STDCALL calling 
6640         convention. Fixes #35987.
6641
6642 2003-10-10  Martin Baulig  <martin@ximian.com>
6643
6644         * class.c (inflate_generic_type): If we're inflating for a generic
6645         type instance (and not for a generic method), return
6646         MONO_TYPE_MVAR unchanged.
6647
6648 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6649
6650         * string-icalls.c: Join ignores null strings in the source array.
6651         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6652         * threads.c: GetAvailableTheads is slightly more accurate.
6653
6654 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6655
6656         * threads.h threads.c : add mono_threads_set_default_stacksize
6657         and pass default to CreateThread calls.
6658
6659 2003-10-09  Dick Porter  <dick@ximian.com>
6660
6661         * icall.c:
6662         * locales.h:
6663         * locales.c: Internal calls for constructing CultureInfo and
6664         related objects from libicu (if its available.)
6665
6666 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6667
6668         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6669
6670 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6671
6672         * threadpool.c: added an argument to async_invoke_thread that is the
6673         item to process, pass the MonoAsyncResult to the thread start function
6674         when creating a new thread. This way we don't need to acquire any lock
6675         when we're creating a new thread. Readded a semaphore for faster
6676         response times (instead of that Sleep i added).
6677
6678 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6679
6680         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6681         get daylight change dates better on Windows, fix handling
6682         of platforms without tm_gmtoff.
6683
6684 2003-10-06  Martin Baulig  <martin@ximian.com>
6685
6686         * class.c (inflate_generic_method): Renamed to
6687         mono_class_inflate_generic_method() and made public.
6688         (mono_class_init): Don't inflate the generic methods here.
6689         (mono_class_from_generic): Added `gboolean inflate_methods'
6690         argument.  Inflate the methods here.
6691
6692         * loader.c (mono_method_get_param_names): Ignore instances of
6693         generic types for the moment.
6694
6695         * reflection.c (fixup_method): Added support for inflated methods.
6696         (mono_image_create_token): Use mono_image_get_methodref_token()
6697         for inflated methods.
6698         (mono_custom_attrs_from_param): Ignore instances of generic types
6699         for the moment.
6700         (mono_reflection_bind_generic_parameters): New public function.
6701         Moved all the functionality from
6702         ves_icall_Type_BindGenericParameters() here and added support for
6703         dynamic types.
6704         (mono_reflection_define_generic_parameter): Initialize
6705         `klass->methods' here.
6706
6707         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6708         functionality into mono_reflection_define_generic_parameter().
6709         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6710         TypeBuilder, return that TypeBuilder.
6711
6712 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6713
6714         * appdomain.c: removed mono_delegate_semaphore.
6715
6716         * threadpool.c:
6717         (mono_thread_pool_add): moved hash table creation inside and the thread 
6718         creation outside of the critical region.
6719         (mono_thread_pool_finish): removed obsolete code.
6720         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6721         continue or exit the thread depending on the queue.
6722
6723 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6724
6725         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6726         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6727         handle more bool marshalling options
6728
6729 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6730
6731         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6732         arrays of structs. Also add a more descriptive error message when
6733         a structure member is marshalled as LPArray.
6734
6735 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6736
6737         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6738         marshalling arrays of complex types. Fixes #29098. Also remove an
6739         usused and incomplete function.
6740
6741 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6742
6743         * gc.c: report heap_size - free_bytes as total memory allocated
6744         (bug#49362).
6745
6746 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6747
6748         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6749         fix timezone handling problems on Windows.
6750         
6751         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6752         asserts when the year is outside the range handled by ms the functions.
6753
6754         * class.c (setup_interface_offsets): If the class is an interface,
6755         fill out its interface_offsets slot.
6756
6757 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6758
6759         * threadpool.c: mark threadpool threads as background.
6760
6761 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6762
6763         * decimal.c - define DECINLINE to nothing if not using GCC
6764
6765 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6766
6767         * assembly.c: More refcount fixes.
6768
6769 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6770
6771         * string-icalls.c: if we're not trimming, return the same string.
6772         When not splitting, don't create a new string.
6773
6774 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6775
6776         * image.c:
6777         (mono_image_open): increment the ref_count inside the critical section.
6778
6779 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6780
6781         * image.c (mono_image_open): Fix reference counting bug.
6782
6783 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6784
6785         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6786         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6787         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6788         mono_lookup_pinvoke_call throws.        
6789
6790 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6791
6792         * reflection.c (mono_reflection_parse_type): Fix #49114.
6793
6794         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6795         temporary workaround for cygwin header problem.
6796
6797         * object.c (mono_object_isinst): Synchronize this with the code
6798         generated by the JIT for casts.
6799
6800 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6801
6802         * reflection.c (encode_type): Fix #38332.
6803
6804 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6805
6806         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6807         the original method from the wrapper method.
6808
6809 2003-09-25  Martin Baulig  <martin@ximian.com>
6810
6811         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6812         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6813         (ves_icall_Type_get_IsGenericInstance): New interncall.
6814
6815 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6816
6817         * object.c: fix cast warning in big endian code.
6818
6819 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6820
6821         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6822         
6823 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6824
6825         * assembly.c: don't call check_env from mono_assembly_load. It's
6826         already done once in mono_assemblies_init and may cause headaches when
6827         multiple threads are loading assemblies.
6828
6829 2003-09-19  Martin Baulig  <martin@ximian.com>
6830
6831         * reflection.c (mono_reflection_define_generic_parameter): Don't
6832         allocate `klass->methods', set `klass->flags' to
6833         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6834
6835 2003-09-18  Martin Baulig  <martin@ximian.com>
6836
6837         * class.c (mono_class_init): Don't create `class->methods' if it's
6838         already initialized.
6839
6840         * metadata.c (mono_metadata_load_generic_params): Make this
6841         actually work.
6842
6843         * reflection.c (mono_reflection_define_generic_parameter): Set
6844         parent class and interfaces from the constraints.
6845
6846         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6847         to keep this struct in sync with the declaration in TypeBuilder.cs.
6848
6849 2003-09-17  Martin Baulig  <martin@ximian.com>
6850
6851         * metadata.h (MonoType): Replaced the data's `int type_param'
6852         field with `MonoGenericParam *generic_param'.
6853         (MonoGenericParam): Added `MonoClass *klass'.
6854
6855         * class.c (mono_class_from_gen_param): Removed the
6856         `MonoImage *image' and `int type_num' arguments.
6857
6858         * metadata.c (mono_metadata_parse_generic_param): New static
6859         method; creates a MonoGenericParam which just contains the index.
6860         (do_mono_metadata_parse_type): Call
6861         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6862         MONO_TYPE_MVAR.
6863
6864         * reflection.c (mono_image_typedef_or_ref): Generic type
6865         parameters may be in the same assembly, but never use a typedef
6866         for them.
6867         (mono_reflection_define_generic_parameter): We're now creating a
6868         "real" class for the type parameter; it's now safe to call
6869         mono_class_from_mono_type() on the class'es type, it'll do the
6870         right thing.
6871
6872 2003-09-16  Martin Baulig  <martin@ximian.com>
6873
6874         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6875         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6876         the `symfile' data structure must be fully initialized before it
6877         gets added to the table.
6878
6879 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6880
6881         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6882
6883         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6884         class init trampolines.
6885
6886 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6887
6888         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6889         to the built-in profiler to turn off time and allocation profiling
6890         respectively.
6891
6892 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6893
6894         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6895         g_direct_equal.
6896
6897         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6898         in human readable form.
6899
6900 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6901
6902         * reflection.c icall.c: Fixed warnings.
6903
6904         * image.c (load_class_names): Use a temporary hash table to hold the
6905         namespaces in order to avoid doing many string comparisons.
6906
6907         * image.h: Fix typo.
6908
6909         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6910         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6911         since the NULL case is short-circuited inside g_hash_table_lookup, 
6912         leading to better performance.  
6913
6914         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6915         obtain the first custom attribute for a given index. Depends on the
6916         CustomAttribute table being sorted by the parent field.
6917
6918         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6919         for better performance.
6920
6921 2003-09-07  Martin Baulig  <martin@ximian.com>
6922
6923         * class.c (mono_class_init): If we're a generic instance, inflate
6924         all our methods instead of loading them from the image.
6925         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6926
6927 2003-09-07  Martin Baulig  <martin@ximian.com>
6928
6929         * mono-debug-debugger.c: Added support for constructors.
6930
6931 2003-09-06  Martin Baulig  <martin@ximian.com>
6932
6933         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6934         New interncall.
6935
6936         * reflection.c (mono_reflection_setup_generic_class): Call
6937         ensure_runtime_vtable() to create the vtable.
6938
6939 2003-09-05  Martin Baulig  <martin@ximian.com>
6940
6941         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6942         MONO_TYPE_MVAR.
6943
6944 2003-09-04  Martin Baulig  <martin@ximian.com>
6945
6946         * reflection.c (mono_reflection_define_generic_parameter): Generic
6947         parameters start with zero.
6948
6949 2003-09-04  Martin Baulig  <martin@ximian.com>
6950
6951         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6952
6953         * reflection.h (MonoReflectionGenericParam): New typedef.
6954         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
6955         the generic parameters from the managed TypeBuilder.
6956
6957         * reflection.c (mono_reflection_define_generic_parameter): New function.
6958         (mono_reflection_create_runtime_class): Encode generic parameters.
6959         (mono_reflection_setup_generic_class): New function; this is
6960         called after adding adding all generic params to the TypeBuilder.
6961         (encode_type): Added MONO_TYPE_VAR.
6962
6963 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
6964
6965         * class.h class.c (mono_class_needs_cctor_run): Moved this method
6966         here from the JIT.
6967
6968         * assembly.h assembly.c: Moved the AOT loading code into an assembly
6969         load hook.
6970
6971 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
6972
6973         * reflection.h reflection.c class.h class.c: Delete duplicate 
6974         definition of mono_type_get_name () from reflection.c and export the
6975         one in class.c.
6976
6977         * class.c: Class loading fixes from Bernie Solomon 
6978         (bernard@ugsolutions.com).
6979
6980         * reflection.c: Endianness fixes from Bernie Solomon 
6981         (bernard@ugsolutions.com).
6982         
6983 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
6984
6985         * assembly.h assembly.c: Define a file format version for AOT
6986         libraries.
6987         
6988         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
6989
6990         * appdomain.h (MonoJitInfo): New field to determine whenever the
6991         code is domain neutral.
6992         
6993 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
6994
6995         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
6996
6997 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
6998
6999         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
7000         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
7001         Avoid caching the result since strings must be domain specific. Fixes
7002         #48050.
7003
7004 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
7005
7006         * marshal.c (mono_marshal_init): Make this callable multiple times
7007         since it is hard to find a correct place to call it.
7008
7009         * object.c (mono_runtime_class_init): Execute static constructors in
7010         the correct appdomain.
7011
7012         * image.c (build_guid_table): Handle the case when multiple images have
7013         the same GUID.
7014
7015 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7016
7017         * icall.c: added a couple of icalls for System.Web.
7018
7019 2003-08-28  Martin Baulig  <martin@ximian.com>
7020
7021         * icall.c (ves_icall_Type_BindGenericParameters): Use
7022         `klass->generic_inst' instead of `&klass->byval_arg' in the
7023         mono_type_get_object() call.  The returned type must be
7024         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
7025
7026 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
7027
7028         * NOTES: New file.
7029
7030         * object.c (mono_class_proxy_vtable): Make it thread safe.
7031
7032         * pedump.c: Fix warning.
7033
7034         * object.c appdomain.h: Get rid of metadata_section. 
7035         It is no longer needed and it was causing deadlocks with domain->lock.
7036
7037         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
7038
7039 2003-08-26  Martin Baulig  <martin@ximian.com>
7040
7041         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
7042
7043 2003-08-26  Martin Baulig  <martin@ximian.com>
7044
7045         * pedump.c (main): Call mono_metadata_init(),
7046         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
7047         and mono_loader_init().
7048
7049 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
7050
7051         * loader.h: Add missing include to fix build.
7052
7053         * image.h: mono_image_load_references is no more.
7054
7055         * assembly.c: Reworked assembly loading to make it really thread safe.
7056         After these changes, the assembly returned by mono_assembly_open is
7057         fully initialized, i.e. all its references assemblies are loaded.
7058
7059         * assembly.c (mono_image_load_references): Renamed to 
7060         mono_assembly_load_references, and made private, since clients no
7061         longer need to call it.
7062
7063         * class.c: Removed calls to mono_assembly_load_references, since it was
7064         a source of deadlocks.
7065
7066         * loader.h loader.c class.h class.c: Protect data structures using a 
7067         new lock, the loader lock.
7068
7069         * class.c (mono_class_setup_vtable): Create temporary hash tables and
7070         GPtrArrays only when needed.
7071
7072         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
7073         into empty structures by mcs. Fixes pinvoke7.cs.
7074         
7075         * domain.c (mono_init): Call a new initialization function.
7076
7077         * appdomain.c (mono_runtime_init): Call the new initializer function
7078         of the marshal module.
7079
7080         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
7081         inserted into empty structures by mcs. Fixes pinvoke7.cs.
7082
7083         * marshal.h marshal.c: Added locks around the wrapper caches to make
7084         this module thread safe.
7085
7086         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
7087         this argument. Fixes pinvoke1.exe.
7088
7089 2003-08-25  Lluis Sanchez <lluis@ximian.com>
7090
7091         * object.h: Added call_type field to MonoMethodMessage and the corresponding
7092         enumeration of values. Removed fields to store remote call output values in
7093         MonoAsyncResult. Not needed any more.
7094         * object.c: Initialize call_type and async_result fields in mono_message_init.
7095         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
7096         dispatching the message.
7097         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
7098         async call to finish. To do it use a message with EndInvoke call type.
7099
7100 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
7101
7102         * loader.h loader.c (mono_method_hash_marhal_info): New function which
7103         determines whenever a method has marshalling info.
7104
7105 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7106
7107         * assembly.c: fix the build on windows.
7108
7109 2003-08-22 Lluis Sanchez <lluis@ximian.com>
7110
7111         * object.cs: Fixed bug #47785.
7112
7113 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
7114
7115         * string-icalls.c (StringReplace): If their are no occurances of
7116         the old string found return a reference to the supplied
7117         string. This saves some memory and matches MS behavoir.
7118         
7119 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7120
7121         * socket-io.c: fixed compilation for systems that define AF_INET6
7122         and don't define SOL_IP/SOL_IPV6.
7123
7124 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
7125
7126         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
7127         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
7128
7129         * rawbuffer.c rawbuffer.h: Make this module thread safe.
7130
7131         * domain.c: Make this module thread safe.
7132
7133         * domain.c (mono_init): Call new initialization function.
7134
7135         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
7136         reference types too. Fixes #38812.
7137
7138         * image.c (mono_image_init): Fixed warnings.
7139
7140         * class.c (mono_class_from_typeref): Handle assembly load failure
7141         correctly.
7142
7143         * appdomain.c (add_assemblies_to_domain): Handle the case when
7144         the references of an assembly are not yet loaded.
7145
7146         * metadata.c image.c assembly.c: Moved initialization of global
7147         variables to a separate function called at startup since lazy 
7148         initialization of these variables is not thread safe.
7149         
7150         * image.c assembly.c: Made this module thread safe by adding locks in 
7151         the appropriate places.
7152
7153         * domain.c (mono_init): Call the new initialization functions of the
7154         three modules.
7155
7156 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
7157
7158         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7159           make a direct call. It is proxy's work to make the call asynchronous.
7160           mono_delegate_end_invoke(): If the targe is a proxy, just collect
7161           the return values.
7162         * object.cs: mono_method_call_message_new(): read AsyncResult and
7163           state object from parameters list, if this info is requested.
7164         * object.h: Added fields to store remote call output values in
7165           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7166
7167 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7168
7169         * object.h: add needed fields to MonoThread.
7170         * threads.c, threads.h: allow registering a function to cleanup data
7171         allocated per thread by the JIT.
7172
7173 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7174
7175         * loader.h: portability fix by Bernie Solomon
7176         * <bernard@ugsolutions.com>.
7177
7178 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7179
7180         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7181         return a MonoArray. This simplifies the code and also ensures that
7182         the cache allways contains an object reference as a value.
7183
7184         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7185         function.
7186
7187 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7188
7189         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7190         fixes a problem with byte ordering when getting the address family for
7191         a socket.
7192
7193 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7194
7195         * .cvsignore: Added monosn.
7196
7197         * reflection.h reflection.c loader.c: Added support for parameter
7198         marshalling to dynamically created types. Fixes #47295.
7199
7200 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7201
7202         * rand.c: remove useless warnings.
7203
7204 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7205
7206         * class.c: implemented ldtoken for methods and fieldrefs.
7207
7208 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7209
7210         * threadpool.c: when mono_async_invoke was called, no one took care of
7211         monitoring the queue. So if the method invoked took some time and we
7212         got new async invoke requests after 500 ms (the thread created waited
7213         that long in WaitForSingleObject), the new async invoke was not called
7214         until the previous one finished.
7215
7216         This is fixed now. Thanks to Totte for helping with it.
7217
7218 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7219
7220         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7221
7222 2003-08-11  Martin Baulig  <martin@ximian.com>
7223
7224         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7225
7226 2003-08-06  Martin Baulig  <martin@ximian.com>
7227
7228         * mono-debug-debugger.c: Added support for static fields,
7229         properties and methods.
7230
7231 2003-08-06  Martin Baulig  <martin@ximian.com>
7232
7233         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7234         make this work for applications with multiple application domains.
7235
7236 2003-08-04  Martin Baulig  <martin@ximian.com>
7237
7238         * mono-debug-debugger.c: Completely reworked the type support; the
7239         most important thing is that we're now just using one single
7240         `MonoType' instance per type.
7241
7242 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7243
7244         * mono-endian.h, mono-endian.c, icall.c: Added icall
7245         ves_icall_System_Double_AssertEndianity to assert double word endianity
7246         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7247
7248 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7249
7250         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7251         support, icalls and fixes.
7252
7253 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7254
7255         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7256         classes that are a punctuation character in .NET is not the same a
7257         g_unichar_ispunct.
7258
7259 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7260
7261         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7262
7263 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7264
7265         * icall.c: Add new MemCopy internalcall.
7266         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7267         Simplified code; It is not necessary to handle all the cases here,
7268         as the C# code takes care of it.  Only handle the case of the name
7269         resource embedded into the assembly.
7270
7271         Changed signature to return the data pointer and the size of the
7272         data. 
7273
7274 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7275
7276         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7277         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7278
7279 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7280
7281         * socket-io.c: ignore EINTR error in select.
7282
7283 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7284
7285         * class.h, class.c: removed unused subclasses field in MonoClass.
7286
7287 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7288
7289         * icall.c: improve fix of get_base_definition(). If the parent class
7290           doesn't have the mehod, look at the parent of the parent.
7291         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7292           to check if a parameter is an in or out parameter
7293           (PARAM_ATTRIBUTE_IN is not set by default).
7294           mono_method_return_message_restore(): Use mono_class_value_size to
7295           get the size of a value type. mono_type_stack_size (parameterType)
7296           does not return the correct value if parameterType is byRef.
7297           mono_load_remote_field(), mono_load_remote_field_new(),
7298           mono_store_remote_field(), mono_store_remote_field_new():
7299           raise exception if the remote call returns an exception.
7300
7301 2003-07-28  Martin Baulig  <martin@ximian.com>
7302
7303         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7304         method.  This is a wrapper around mono_runtime_invoke() which
7305         boxes the instance object if neccessary.
7306
7307 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7308
7309         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7310         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7311
7312 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7313
7314         * icall.c: disable mcs bug workaround.
7315
7316 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7317
7318         * object.c (mono_runtime_class_init): Take the metadata_section
7319         mutex before obtaining the domain mutex.
7320
7321         * appdomain.h: Added definition of metadata_section mutex here. 
7322
7323         * object.c: define metadata_mutex here.
7324
7325 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7326
7327         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7328         fixed.
7329
7330 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7331
7332         * reflection.c: Fix bug #46669
7333
7334 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7335
7336         * exception.c:
7337         * exception.h:
7338         * icall.c:
7339         * object.h: fill in the type name for TypeLoadException.
7340
7341 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7342
7343         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7344         relationship between TypeBuilders while compiling corlib) and bug
7345         45993 (Array types returned from the runtime while compiling
7346         corlib were from the loaded corlib).
7347
7348 2003-07-22  Martin Baulig  <martin@ximian.com>
7349
7350         * mono-debug-debugger.c: Reworked the type support a bit more;
7351         distinguish between types and classes.
7352
7353 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7354
7355         * icall.c: add IsArrayImpl icall.
7356
7357 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7358
7359         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7360         initializing real_size only once. Also fix bug #46602.
7361
7362 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7363
7364         * object.c: Renamed mono_metadata_section to metadata_section.
7365
7366 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7367
7368         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7369           empty array if the type is an array. Fixed.
7370           ves_icall_MonoMethod_get_base_definition: if the base method
7371           is abstract, get the MethodInfo from the list of methods of
7372           the class.
7373         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7374           and it was 1-based. Fixed in mono_param_get_objects.
7375
7376 2003-07-20  Martin Baulig  <martin@ximian.com>
7377
7378         * mono-debug.h: Set version number to 31.
7379         (mono_debug_init): Added `MonoDomain *' argument.
7380
7381         * mono-debug-debugger.c: Reworked the type support; explicitly
7382         tell the debugger about builtin types; pass the `klass' address to
7383         the debugger.
7384
7385 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7386
7387         * image.c: Allow new metadata tables to be loaded without a
7388         warning. Also update the warning message to give the new constant value.
7389                 
7390 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7391
7392         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7393         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7394         array type representation changes.
7395
7396 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7397
7398         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7399         on Environment.Exit () call.
7400
7401 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7402
7403         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7404         requires a matching corlib.
7405
7406 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7407
7408         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7409           Committed again without the CRs.
7410         
7411 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7412
7413         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7414           getting it from the "this" socket instance. Did not work
7415           if the socket is a subclass of Socket.
7416           Also fixed bug #35371.
7417
7418 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7419
7420         * metadata.c: fixed size for TypedByRef.
7421         * loader.c: when searching for a method, consider the vararg amrker.
7422         * unicode.c, decimal.c: constify some arrays.
7423
7424 2003-07-15  Dick Porter  <dick@ximian.com>
7425
7426         * socket-io.c: Fixed compilation for gcc < 3.2.
7427
7428         Fixed compilation for machines that don't have AF_INET6 (thanks to
7429         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7430
7431         Fixed compile warnings.
7432         
7433         Fixed formatting and line endings.
7434
7435 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7436
7437         * socket-io.h:
7438         * socket-io.c: Added IPv6 support.
7439
7440 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7441
7442         * class.c (mono_class_is_assignable_from): New function to implement
7443         the is_assignable_from logic. Used by mono_object_isinst, 
7444         Type::IsAssignableFrom () and the interpreter.
7445
7446         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7447         Object, even interfaces.
7448         
7449         * object.c (mono_object_isinst): Implement in terms of 
7450         is_assignable_from.
7451
7452         * icall.c (ves_icall_type_is_assignable_from): New icall.
7453
7454 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7455
7456         * domain.c (foreach_domain): fix compiler warning.
7457
7458 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7459
7460         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7461         not available on all plattforms
7462
7463 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7464
7465         * image.h image.c: Store the metadata version string in MonoImage.
7466         * icall.c: New icall to retrieve the image version.
7467         * reflection.c (create_dynamic_image): Fill in the image version field
7468         * reflection.c (build_compressed_metadata): Use the image version
7469         from the image structure.
7470
7471 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7472
7473         * appdomain.c: modified comment.
7474         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7475         That will be its last iteration when mono_gc_cleanup is called from
7476         mono_runtime_cleanup and before the domain is unloaded.
7477
7478         Fixes bug #45962.
7479
7480 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7481
7482         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7483         attributes.
7484
7485 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7486
7487         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7488         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7489         Bernie Solomon <bernard@ugsolutions.com>.
7490
7491 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7492
7493         * object.c, object.h: provide mono_object_new_fast() for faster
7494         allocation in some special cases.
7495
7496 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7497
7498         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7499         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7500
7501 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7502
7503         * threadpool.c: fix leaks.
7504
7505 2003-07-01  Dick Porter  <dick@ximian.com>
7506
7507         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7508         using MonoGHashTables.  Fixes threadpool bug posted to list.
7509
7510 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7511
7512         * image.h, image.c: added support to load an assembly from a byte array.
7513         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7514         assembly bundle support.
7515
7516 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7517
7518         * threadpool.c (mono_thread_pool_add): keep a reference to the
7519         AsyncResult to prevent GC
7520
7521 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7522
7523         * class.c: leak fix.
7524
7525 2003-06-25  Dick Porter  <dick@ximian.com>
7526
7527         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7528         for the async object, the WaitHandle object will close the handle.
7529         Fixes bug 45321.
7530
7531 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7532
7533         * class.c: in mono_array_class_get (), lookup from the hash with the
7534         same type we insert: this works around a bug in
7535         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7536         lluis. The real fix will have to wait for after the release.
7537
7538 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7539
7540         * icall.c: fix memory leak when getting type members.
7541
7542 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7543
7544         * reflection.c: added more pubtoken special cases.
7545
7546 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7547
7548         * class.c: handle field offset correctly when class size
7549         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7550
7551 2003-06-20  Martin Baulig  <martin@ximian.com>
7552
7553         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7554         *image' field.
7555
7556 2003-06-20  Martin Baulig  <martin@ximian.com>
7557
7558         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7559
7560 2003-06-20  Martin Baulig  <martin@ximian.com>
7561
7562         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7563         just distinguish between variables in registers and variables at
7564         an offset relative to a register.
7565
7566 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7567
7568         * icall.c: #ifdef out latest changes until mcs is fixed.
7569
7570 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7571
7572         * icall.c: return members in metadata order.
7573
7574 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7575
7576         * icall.c: avoid infinite loop in GetTimeZoneData.
7577
7578 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7579
7580         * icall.c: added Marshal.Prelink/All icalls.
7581
7582 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7583
7584         * object.c, object.h: fix warnings and do some overflow checking
7585         when creating arrays.
7586
7587 2003-06-17  Dick Porter  <dick@ximian.com>
7588
7589         * file-io.h:
7590         * file-io.c: File attributes need to be tweaked slightly when
7591         passed from the managed to the w32 world.
7592
7593 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7594         * profiler.h profiler-private.h profiler.c: Rework last patch
7595         based on suggestion by Paolo.
7596         
7597 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7598
7599         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7600         instruction level coverage data collection.
7601         * profiler.h profiler.c (: Added new callback function which can be
7602         used by the profiler to limit which functions should have coverage
7603         instrumentation.
7604         * profiler.c (mono_profiler_load): Call g_module_build_path to
7605         generate the file name of the profiler library.
7606
7607 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7608
7609         * profiler.c, profiler.h, profiler-private.h: added basic block 
7610         coverage profiling API.
7611
7612 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7613
7614         * reflection.c (mono_reflection_create_runtime_class): Add support
7615         for events in dynamically generated code.
7616
7617         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7618         not allocated.
7619
7620 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7621
7622         * icall.c: when getting timezone info, return reasonable values if we
7623         can't get the actual data.
7624
7625 2003-06-14  Dick Porter  <dick@ximian.com>
7626
7627         * threads.c (start_wrapper): Remove the reference to the thread
7628         object in the TLS data, so the thread object can be finalized.
7629         This won't be reached if the thread threw an uncaught exception,
7630         so those thread handles will stay referenced :-( (This is due to
7631         missing support for scanning thread-specific data in the Boehm GC
7632         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7633
7634 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7635
7636         * reflection.c: ensure streams and tables are first allocated with
7637         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7638
7639 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7640
7641         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7642
7643 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7644
7645         * reflection.c (mono_reflection_create_runtime_class): Add support for
7646         properties to dynamically created classes.
7647         * reflection.c: Fix a few places where non-MonoObjects were inserted
7648         into the tokens hashtable.
7649
7650 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7651
7652         * object.c: some support to handle out of memory exceptions.
7653
7654 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7655
7656         * marshal.c (mono_marshal_get_native_wrapper): support reference
7657         return types
7658
7659 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7660
7661         * object.h, object.c: more portability stuff from Bernie Solomon.
7662         Unexport mono_object_allocate(). Added mono_object_unbox ().
7663         Set exitcode when an unhandled exception is thrown.
7664
7665 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7666
7667         * marshal.c (mono_marshal_get_native_wrapper): use custom
7668         marshaler for return types.
7669
7670 2003-06-10  Dick Porter  <dick@ximian.com>
7671
7672         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7673         ip_mreq is available
7674
7675 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7676
7677         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7678         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7679         by Bernie Solomon <bernard@ugsolutions.com>.
7680
7681 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7682
7683         * gc.c (mono_gc_init): Avoid error message on shutdown when
7684         GC_DONT_GC=1 is used.
7685
7686         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7687         New icall to return the GUID of a module.
7688
7689 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7690
7691         * class.c: ensure instance size always includes the parent's size
7692         even whem class size is set explicitly (fixes bug#44294).
7693
7694 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7695
7696         * profiler.h, profiler.c: made the simple profiler thread-safe,
7697         get more accurate timing info. Allow the loading of an
7698         externally-developed profiler module.
7699
7700 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7701
7702         * marshal.c (mono_marshal_get_native_wrapper): improved
7703         class/byref arguments.
7704         (mono_marshal_get_native_wrapper): better string marshaling support.
7705
7706 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7707
7708         * class.c: ensure .pack and .size are handled correctly and
7709         simplified layout of static fields.
7710
7711 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7712
7713         * appdomain.c
7714         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7715
7716         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7717         current directory (fix bug 44008)
7718
7719 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7720
7721         * marshal.c (mono_marshal_get_native_wrapper): started support for
7722         custom marshalers.
7723         (mono_delegate_to_ftnptr): consider marshalling specifications
7724
7725 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7726
7727         * reflection.c, reflection.h: emit custom marshal info.
7728
7729 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7730
7731         * object.c: free the GError.
7732         * icall.c: added CloseEvent_internal.
7733         * threads.[ch]:
7734         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7735         call.
7736
7737 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7738
7739         * loader.c (mono_method_get_signature): Add support for dynamic
7740         assemblies.
7741
7742 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7743
7744         * reflection.c: fixed bug #43905.
7745
7746 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7747
7748         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7749         handling TypedReference and ArgIterator.
7750         * loader.c, loader.h: added function to get signature at call site.
7751
7752 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7753
7754         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7755         data readonly. Buglets and warning fixes. Some MethodSpec support.
7756
7757 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7758
7759         * class.h, class.c, object.c: remove relative numbering support.
7760
7761 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7762
7763         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7764         free the string, until we get a chance to fix Gtk#
7765
7766 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7767
7768         * marshal.c: revert last patch.
7769
7770 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7771
7772         * icall.c: updates for new mono_class_vtable() not calling
7773         the type constructor anymore.
7774
7775 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7776
7777         * object.h, object.c: separate vtable creation from type
7778         initialization. Make running the .cctor thread safe.
7779
7780 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7781
7782         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7783
7784 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7785
7786         * loader.c (mono_get_method): consider calling convention
7787
7788 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7789
7790         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7791         to return the invisible global type for a module.
7792
7793         * reflection.c (mono_image_build_metadata): Emit global fields too.
7794
7795 2003-05-20  Peter Williams  <peterw@ximian.com>
7796
7797         * loader.c (mono_lookup_internal_call): Add a few newlines.
7798
7799 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7800
7801         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7802         literal strings.
7803
7804         * appdomain.c (set_domain_search_path): Recalculate search path when
7805         AppDomainSetup.PrivateBinPath changes.
7806
7807         * object.c (mono_class_compute_gc_descriptor): It turns out some
7808         parts of the class libs (like System.Thread) holds pointers to
7809         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7810         to treat native int a pointer type here.
7811         
7812 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7813
7814         * appdomain.h, domain.c: add hashtable for jump target resolution.
7815
7816 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7817
7818         * reflection.h reflection.c icall.c: Added new icalls 
7819         GetManifestResourceInfoInternal, GetModulesInternal and support
7820         infrastructure.
7821
7822 2003-05-16  Dick Porter  <dick@ximian.com>
7823
7824         * icall.c:
7825         * file-io.h:
7826         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7827
7828 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7829
7830         * object.c: mono_store_remote_field: little fix to previous patch.
7831
7832 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7833
7834         * class.c: add constructors to array classes.
7835         * icall.c: special case array construction for InternalInvoke (),
7836
7837 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7838
7839         * class.h class.c reflection.c object.c: Added support for field
7840         defaults in dynamically generated classes.
7841
7842 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7843
7844         * reflection.c: properly encode charset for ddlimport.
7845
7846 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7847
7848         * threads.c: allow compiling without GC.
7849
7850 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7851
7852         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7853         handling of thread static data.
7854
7855 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7856
7857         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7858
7859 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7860
7861         * class.c (mono_array_class_get): always set the serializable flags
7862         (mono_array_class_get): always set the SEALED attribute for array types
7863
7864 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7865
7866         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7867         attributes (fix for bug 42021).
7868
7869 2003-05-12  Dick Porter  <dick@ximian.com>
7870
7871         * gc.c: Don't run finalizers when the finalizer thread is
7872         finishing up, because the default domain has already been
7873         destroyed.
7874
7875 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7876
7877         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7878         value is null, we should throw an exception.   This is slightly
7879         different than the other conventions used for the constructor.
7880
7881 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7882
7883         * socket-io.c: fixed windows build.
7884
7885 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7886
7887         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7888
7889 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7890
7891         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7892         compilers.
7893
7894 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7895
7896         * class.c (mono_class_layout_fields): Add experimental GC aware
7897         auto layout facility. Requires class library changes to work correctly.
7898
7899         (mono_class_setup_vtable): Avoid overriding explicit interface
7900         method implementations. Fixes iface3.exe test.
7901
7902         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7903         object reference.
7904         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7905         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7906
7907         * metadata.h: Add new type classification macro which determines
7908         whenever the type holds an object reference.
7909
7910 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7911
7912         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7913
7914 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7915
7916         * gc.c (finalizer_thread): Work around a GC bug.
7917
7918 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7919
7920         * marshal.c (emit_struct_conv): allow unions
7921
7922         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7923
7924 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7925
7926         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7927
7928 2003-05-06  Martin Baulig  <martin@ximian.com>
7929
7930         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7931
7932 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7933
7934         * socket-io.c:
7935         (Select_internal): allow NULLs, don't create arrays if not needed.
7936         Coupled with Socket.cs changes.
7937
7938         * threadpool.c:
7939         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7940         register a finalizer for it that will close the semaphore handle. This
7941         fixes the leak and make Lupus' test run with > 4080 loops.
7942
7943 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7944
7945         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7946         Jerome Laban (bug #42287)
7947
7948 2003-05-02  Martin Baulig  <martin@ximian.com>
7949
7950         * debug-mono-symfile.h
7951         (MonoSymbolFile): Moved declaration into mono-debug.h.
7952         (MonoDebugMethodJitInfo): Likewise.
7953         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
7954         argument.
7955         (_mono_debug_address_from_il_offset): Take a
7956         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
7957
7958         * mono-debug.h
7959         (MonoDebugDomainData): New struct.
7960         (mono_debug_get_domain_data): New function.
7961         (mono_debug_add_method): Take an additional `MonoDomain *'
7962         argument.
7963         (mono_debug_source_location_from_address): Likewise.
7964         (mono_debug_il_offset_from_address): Likewise.
7965         (mono_debug_address_from_il_offset): Likewise.
7966
7967 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
7968
7969         * reflection.c: one more check for null type in custom attrs.
7970
7971 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7972
7973         * reflection.c: avoid warning (comparison is always false due to limited
7974         range of data type).
7975
7976 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7977
7978         * icall.c: throw an exception in Type.GetField if the argument 'name'
7979         is NULL.
7980
7981 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
7982
7983         * reflection.c: fixed handling of enums in named arguments to custom
7984         attributes (bug #42123).
7985
7986 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
7987
7988         * reflection.c: use the right array element type and handle
7989         a null for a Type argument, too.
7990
7991 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
7992
7993         * reflection.c: handle arrays as arguments to custom attributes.
7994
7995 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7996
7997         * reflection.c: handle a string value in a custom attr
7998         ctor that takes an object.
7999
8000 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
8001
8002         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
8003         (fix bug #42063)
8004
8005 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
8006
8007         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
8008
8009 2003-04-27  Martin Baulig  <martin@ximian.com>
8010
8011         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
8012         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
8013         MONO_DEBUGGER_EVENT_BREAKPOINT.
8014         (mono_breakpoint_trampoline_code): Removed.
8015         (mono_debugger_event_handler): The last argument is now a
8016         `guint32'.
8017         (mono_debugger_insert_breakpoint_full): Removed the
8018         `use_trampoline' argument.
8019         (mono_debugger_method_has_breakpoint): Likewise.
8020         (mono_debugger_trampoline_breakpoint_callback): Renamed to
8021         mono_debugger_breakpoint_callback(); take the method and
8022         breakpoint number as arguments.
8023
8024 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
8025
8026         * metadata.c: fix off by one when loading parameters attributes.
8027
8028 2003-04-24  Martin Baulig  <martin@ximian.com>
8029
8030         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
8031
8032 2003-04-24  Martin Baulig  <martin@ximian.com>
8033
8034         * mono-debug-debugger.c: Moved all code which interacts with the
8035         Mono Debugger here.
8036
8037         * debug-mono-symfile.c: This code now just deals with the symbol
8038         file itself, the debugger code is now in mono-debug-debugger.c.
8039
8040 2003-04-23  Martin Baulig  <martin@ximian.com>
8041
8042         * mono-debug.c (mono_debug_source_location_from_il_offset):
8043         New method; like mono_debug_source_location_from_address(), but
8044         takes an IL offset instead of a machine address.
8045
8046 2003-04-23  Martin Baulig  <martin@ximian.com>
8047
8048         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
8049         `line' field; this is now computed by the debugger.
8050
8051 2003-04-23  Martin Baulig  <martin@ximian.com>
8052
8053         * mono-debug.[ch]: New files.  This is the new debugging interface.
8054
8055         * mono-debug-debugger.[ch]: New files.  Moved all code which
8056         interacts with the Mono Debugger here.
8057
8058 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
8059
8060         * domain.c (mono_init): initialize mono_defaults.monitor_class
8061
8062 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
8063
8064         * reflection.c (method_encode_code): Add a spicy exception to help
8065         future compiler authors.
8066
8067 2003-04-21  Martin Baulig  <martin@ximian.com>
8068
8069         * icall.c
8070         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8071         Make this work with relative pathnames; g_filename_to_uri() needs
8072         an absolute filename.
8073
8074 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
8075
8076         * icall.c: Track name changes in Object and ValueType.
8077
8078 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
8079
8080         * metadata.c (mono_type_stack_size): size should be a multiple of
8081         sizeof (gpointer)
8082
8083 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8084
8085         * gc.c:
8086         (internal_domain_finalize): moved into mono_domain_finalize. No need
8087         to create another thread because the finalizers will be run in the
8088         finalizer thread.
8089         
8090         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
8091         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
8092         to be run (MS does this too).
8093
8094 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
8095
8096         * object.c (mono_class_compute_gc_descriptor): Update comment.
8097
8098         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
8099
8100         * image.h: Add synchronized wrapper cache.
8101
8102         * image.c (do_mono_image_open): Initialize cache.
8103
8104         * reflection.c (create_dynamic_mono_image): Initialize cache.
8105
8106 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8107
8108         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
8109         ves_icall_System_Buffer_ByteLengthInternal.
8110
8111 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
8112
8113         * reflection.c: setup klass->nested_in earlier. Allow
8114         a dash in the assembly name.
8115
8116 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
8117
8118         * metadata.c (mono_type_to_unmanaged): dont access
8119         type->data.klass for MONO_TYPE_OBJECT
8120         (mono_type_to_unmanaged): consider System.Delegate class
8121
8122 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
8123
8124         * class.c: just setup supertypes in the proper place instead of
8125         initializing the full element class for arrays.
8126
8127 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
8128
8129         * class.c: ensure the element class of arrays is initialized.
8130         Setup the supertype info for array classes, too.
8131
8132 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
8133
8134         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
8135
8136 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8137
8138         * Makefile.am: re-added -m option when running cygpath. This way,
8139         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
8140         separator.
8141         * mono-config.c: same codepath for locating mono config file for WIN32
8142         and the rest.
8143         * assembly.c: if mono_assembly_setrootdir is called, don't override
8144         the value set.
8145
8146 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8147
8148         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8149         MONO_ASSEMBLIES variable.
8150
8151 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8152
8153         * icall.c: added Assembly::GetNamespaces() icall.
8154
8155 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8156
8157         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8158
8159 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
8160
8161         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8162         * object.c: fixed bug in the construction of vtable for proxies
8163
8164 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8165
8166         * object.c (mono_array_new): Mark mono_array_new as an icall.
8167
8168 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8169
8170         * class.c: fixed test for public method when overriding interfaces.
8171         Closes bug #40970.
8172
8173 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8174
8175         * appdomain.h, domain.c: added mono_domain_foreach() to
8176         be able to access the currently loaded appdomains.
8177         * object.c: make string interning work across sppdomains.
8178         Mark some functions for use as icalls.
8179
8180 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8181
8182         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8183
8184         * reflection.h reflection.c: Allocate long living data using 
8185         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8186
8187         * reflection.c: Double the allocation size in streams instead of
8188         increasing it, to prevent unneccesary copying on large assemblies.
8189         
8190         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8191         creation if the assembly does not have the Run flag set.
8192
8193 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8194
8195         * class.h: avoid the C++ keywords in header files (Jerome Laban
8196         spotted and fixed this).
8197
8198 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8199
8200         * object.c:
8201         (mono_unhandled_exception): fill in the arguments for the
8202         UnhandledException event. Only trigger that event for the default
8203         domain (as MS does).
8204
8205 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8206
8207         * object.c: Improve typed allocation stuff based on suggestions from
8208         Paolo. Also turn it on if the GC library supports it.
8209
8210 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8211
8212         * object.c object.h class.h: Added experimental typed allocation
8213         facility using the interfaces in gc_gcj.h.
8214
8215         * os/gc_wrapper.h: Added new include files.
8216         
8217 2003-04-03  Martin Baulig  <martin@ximian.com>
8218
8219         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8220         which is not yet enabled by default.
8221
8222         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8223         functions.
8224         (mono_gc_lock, mono_gc_unlock): New static functions.
8225
8226         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8227         functions; stop/start the world for the garbage collector.  This
8228         is using the windows API; we need to complete the SuspendThread()/
8229         ResumeThread() implementation in the io-layer to make this work on Unix.
8230         (mono_gc_push_all_stacks): New public function; tells the garbage
8231         collector about the stack pointers from all managed threads.
8232
8233 2003-04-03  Martin Baulig  <martin@ximian.com>
8234
8235         * object.h (MonoThread): Added `gpointer stack_ptr'.
8236
8237         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8238
8239 2003-04-03  Martin Baulig  <martin@ximian.com>
8240
8241         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8242
8243 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8244
8245         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8246         field.last.
8247
8248 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8249
8250         * loader.c (mono_lookup_internal_call): Report the corlib that is
8251         out of sync.
8252
8253 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8254
8255         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8256         System.DBNull (it's class not valuetype).
8257
8258 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8259
8260         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8261         if the array method was already assigned a token (fixes bug#40646).
8262
8263 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8264
8265         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8266         if no assembly is given.
8267
8268 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8269
8270         * metadata.h: Added the new tables.
8271
8272         * row-indexes.h: Added definitions for new tables.
8273
8274         * metadata.c: Add schemas for new tables, and add support for
8275         computing the sizes of them.
8276
8277         * class.c: Update for handling the new type cases.
8278
8279 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8280
8281         * metadata.h (MONO_TYPE_IS_VOID): new macro
8282
8283 2003-03-31  Martin Baulig  <martin@ximian.com>
8284
8285         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8286
8287         * threads.c (mono_thread_new_init): Call `thread_created' in the
8288         mono_thread_callbacks.
8289
8290 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8291
8292         * loader.h: added marshalbyrefobject_class to mono_defaults
8293         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8294         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8295           generation of output parameters.
8296           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8297         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8298           contextbound and the target object belongs to the context of the caller.
8299         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8300         * object.c: Implemented support for interfaces and abstract classes
8301           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8302           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8303
8304 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8305
8306         * class.h class.c (mono_class_is_subclass_of): New function.
8307         
8308         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8309         routines for most common case (calls from ArrayList::ToArray).
8310
8311         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8312         routine so programs which call Environment::Exit() can be profiled.
8313
8314         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8315         Added MONO_ARCH_SAVE_REGS.
8316
8317         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8318
8319 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8320
8321         * blob.h: Add a couple of new MonoType types definitions.
8322
8323         * tabledefs.h: Add a couple of new call convs.
8324
8325 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8326
8327         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8328         the layout of the class.
8329
8330         * reflection.c (alloc_table): double the size on overflow to avoid
8331         unnecessary copying.
8332
8333         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8334         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8335         null so it can be garbage collected.
8336         
8337 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8338
8339         * reflection.c (mono_reflection_get_type): Return the resolved type
8340         only if it is in the assembly we searched.
8341
8342         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8343
8344         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8345         method.
8346
8347 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8348
8349         * appdomain.c:
8350         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8351         the right one is 'file:///blah', but MS allows it.
8352         * assembly.c:
8353         (mono_assembly_open): allow 'file://blah'
8354
8355         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8356
8357 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8358
8359         * socket-io.c: fixes bug #40310.
8360
8361 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8362
8363         * reflection.c (mono_reflection_parse_type): handle deeply nested
8364         types correctly.
8365
8366         * reflection.c (mono_image_create_token): Use unique token values
8367         since they will be put into a hash table.
8368
8369         * class.c (mono_class_setup_vtable): If a method occurs in more than
8370         one place in the vtable, and it gets overriden, then change the
8371         other occurances too.
8372
8373         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8374         object as return type.
8375
8376 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8377
8378         * icall.c: Deleted "ToString" implementation for double and float
8379         because they are full implemented in managed code.
8380
8381 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8382
8383         * reflection.c, reflection.h: implemented and exported functions
8384         to retrieve info about custom attributes.
8385
8386 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8387
8388         * appdomain.c: moved Uri handling to assembly.c
8389         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8390         work when using a file Uri in *nix and windows.
8391
8392         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8393         GetReferencedAssemblies.
8394
8395 2003-03-18  Dick Porter  <dick@ximian.com>
8396
8397         * icall.c: Rename a couple of internal calls
8398
8399         * threads.c: Set the thread state to Stopped when a thread exits.
8400         Fixes bug 39377.
8401
8402 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8403
8404         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8405         New icall.
8406
8407         * object.c (mono_class_vtable): fix warning.
8408
8409 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8410
8411         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8412
8413         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8414         memory.
8415         (method_encode_clauses): Create exception info structures in the right
8416         order.
8417         (mono_reflection_setup_internal_class): Initialize supertypes field.
8418
8419         * class.c object.c: Handle interfaces which implement other interfaces 
8420         correctly.
8421
8422         * class.h class.c: Move the supertypes array initialization code into 
8423         a separate function so it can be used for dynamic types too. Also call
8424         it earlier, in mono_class_init(), since it can be used before the
8425         type is initialized.
8426
8427 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8428
8429         * Makefile.am:
8430         * assembly.c:
8431         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8432
8433         * appdomain.c:
8434         * appdomain.h:
8435         * marshal.c:
8436         * object.c: remove warnings.
8437
8438 2003-03-13  Martin Baulig  <martin@ximian.com>
8439
8440         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8441         (MonoDebugLexicalBlockEntry): New types.
8442
8443         * debug-mono-symfile.c
8444         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8445
8446 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8447
8448         * process.c: ret can be any non-zero value accroding to MS doc.
8449
8450 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8451
8452         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8453         fixing a warning for a miss-used prototype, would have cause
8454         random memory corruption.
8455
8456 2003-03-07  Martin Baulig  <martin@ximian.com>
8457
8458         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8459         getting really annoying ....
8460
8461 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8462
8463         * reflection.c (fixup_method): added support for array methods.
8464
8465 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8466
8467         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8468         (pointed out by Michael Adams).
8469
8470 2003-03-04  Dick Porter  <dick@ximian.com>
8471
8472         * icall.c: Temporarily reverted the Double and Single ToString()
8473         change, because it broke nunit.
8474
8475 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8476
8477         * object.h, threads.h: make include files compatible with C++
8478         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8479
8480 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8481
8482         * icall.c: Erased ToString helper functions for Double and Single.
8483         Now, that implementations ar all in managed code (Double and Single
8484         Formatters).
8485
8486 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8487
8488         * appdomain.c: Added method for initializing the default context of
8489         a domain. Added internal call for getting the default context.
8490         * appdomain.h: Added context variable in MonoDomain struct.
8491         * domain.c: mono_domain_set also sets the default context of the domain
8492         * icall.c: Mapped internal method InternalGetDefaultContext.
8493         * object.c: mono_object_get_virtual_method returns always a remoting
8494         wrapper if the object is a transparent proxy.
8495         mono_runtime_invoke_array: when creating an object by calling the
8496         constructor, if the created object is a proxy, then the constructor should
8497         be called using the a remoting wrapper.
8498
8499 2003-03-03  Dick Porter  <dick@ximian.com>
8500
8501         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8502         variable so it compiles on solaris.  Problem spotted by
8503         Christopher Taylor <ct@cs.clemson.edu>
8504
8505 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8506
8507         * appdomain.c:
8508         (get_info_from_assembly_name): don't leak value.
8509
8510         * icall.c:
8511         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8512         result.
8513
8514 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8515
8516         * assembly.c: export mono_image_load_references ().
8517         * class.c: handle function pointers. mono_class_from_name() now
8518         supports nested type names directly.
8519
8520 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8521
8522         * reflection.h reflection.c: Encode already created dynamic methods 
8523         and fields correctly as a DEF instead of a REF.
8524
8525         * reflection.c: Get rid of the force_ref argument to 
8526         mono_image_typedef_or_ref since it was wrong in the first place.
8527
8528         * string-icalls.c: add error checking to string constructors according
8529         to the MSDN docs.
8530
8531         * reflection.c: Emit types in the order their TypeBuilders were 
8532         created. Previously, a new table index was assigned to each type before
8533         the tables were emitted. This was wrong because the signature blob
8534         might already refer to a type by its original table index.
8535
8536 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8537
8538         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8539         change.
8540         
8541 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8542
8543         * Makefile.am: make assemblies dir have \ instead of / on windows.
8544
8545 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8546
8547         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8548         iterate over the NESTEDCLASS table using a linear search since the
8549         table is not guaranteed to be sorted by the secondary key.
8550
8551         * class.c (mono_class_create_from_typedef): fixed up call to
8552         mono_metadata_nesting_typedef.
8553         
8554 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8555
8556         * marshal.c (mono_string_to_byvalstr): clear the memory as
8557         suggested by Jerome Laban <jlaban@wanadoo.fr>
8558
8559 2003-02-26  Dick Porter  <dick@ximian.com>
8560
8561         * process.c: Cope with padding in .rsrc blocks
8562
8563 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8564
8565         * metadata.h: reverted the filter_len change, it breaks reflection
8566         
8567 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8568
8569         * metadata.h: added a new field to store the filter_len
8570         
8571
8572 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8573
8574         * reflection.c: handle custom attributes for types and members
8575         created with Reflection.Emit (bug#38422).
8576
8577 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8578
8579         * reflection.c: define RTSpecialName automatically for constructors for
8580         compatibility with MS.NET.
8581
8582         * reflection.c (mono_reflection_create_runtime_class): initialize
8583         nested_in field of dynamically created classes.
8584
8585 2003-02-22  Martin Baulig  <martin@ximian.com>
8586
8587         * debug-mono-symfile.h: Incremented version number.
8588
8589 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8590
8591         * object.h icall.c process.c: fix warnings.
8592
8593 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8594
8595         * appdomain.h appdomain.c:
8596         (mono_domain_try_type_resolve): split the 
8597         name_or_tb argument into a name and a tb argument.
8598         (mono_domain_has_type_resolve): new function to check whenever the
8599         application has registered a TypeResolve event handler.
8600         
8601         * icall.c reflection.h reflection.c: move the type resolve logic into
8602         mono_reflection_get_type () so it will be invoked when 
8603         Assembly::GetType () is called.
8604
8605         * reflection.c:
8606         (mono_reflection_get_type): renamed to get_type_internal.
8607         (mono_reflection_get_type): fixed type name generation so it works 
8608         for nested types too.
8609         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8610         costly type name generation if there is no resolve event handler.
8611
8612 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8613
8614         * class.c, image.c: load exported types from file references.
8615
8616 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8617
8618         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8619           used to cache the managed methods used to create proxies and make 
8620           remote invocation of methods.
8621         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8622           to be remotely created.
8623         * object.c: Modified the method mono_class_vtable(). It now initializes 
8624           the remote flag of the vtable. Modified mono_object_new_specific(), 
8625           so now it checks the remote flag.
8626         * icall.c: Added a couple of internal methods, one for enabling instance 
8627           creation interception for a type, and one for creating objects bypassing
8628           the remote check.
8629
8630 2003-02-18  Martin Baulig  <martin@ximian.com>
8631
8632         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8633         New interncall to get a method's metadata token.
8634
8635         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8636         New interncall for the debugger.
8637
8638 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8639
8640         * class.c (mono_class_setup_vtable): allocate supertype array
8641
8642 2003-02-18  Martin Baulig  <martin@ximian.com>
8643
8644         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8645
8646 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8647
8648         * reflection.c:
8649         (assembly_name_to_aname): jump over unknown properties (i've found
8650         something like: 'type, assembly, version=xxx, custom=null, public...',
8651         so now will ignore custom=null and still get the rest of the values).
8652
8653 2003-02-17  Dick Porter  <dick@ximian.com>
8654
8655         * threads.c: Have Thread.Start() wait for a semaphore to signal
8656         that the thread has set up all its local data.  This fixes bug
8657         34323, where Abort() raced the new thread's TLS data.
8658
8659         Also removes the handle_store() call from start_wrapper, because
8660         threads are now always created suspended and there is no longer a
8661         race between the parent and child threads to store the info.
8662
8663 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8664
8665         * image.c: explain the #- heap issue in a message, hopefully
8666         avoiding FAQs on mono-list.
8667
8668 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8669
8670         * icall.c:
8671         (GetEntryAssembly): if the domain has not invoked
8672         AppDomain.ExecuteAssembly yet, return the assembly of the default
8673         AppDomain.
8674
8675 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8676
8677         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8678
8679 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8680
8681         * metadata.c, reflection.c: simple speedup to type hash
8682         and equals code.
8683
8684 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8685
8686         * image.c, image.h, class.c, assembly.c: move module loading
8687         to MonoImage. When loading metadata, consider alignemnet from
8688         the start of metadata, not from the metadata address in memory.
8689
8690 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8691
8692         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8693         AssemblyBuilder objects. Factored out custom attribute creation into
8694         a separate function.
8695         (create_custom_attr): new function to create custom attributes.
8696
8697 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8698
8699         * Makefile.am: Got tired of typing the full pathname to pedump.
8700         Until there is another option, am installing this.
8701
8702 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8703
8704         * class.c (class_compute_field_layout): always set field->parent 
8705         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8706
8707 2003-02-11  Dick Porter  <dick@ximian.com>
8708
8709         * threads-types.h:
8710         * monitor.c: Rewrote Monitor, making lock much faster and
8711         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8712         creates them as needed.
8713
8714         * exception.c: Added SynchronizationLockException
8715
8716         * threads.c: Deleted old Monitor implementation.  The new one is
8717         in a new file.
8718
8719 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8720
8721         * class.c: handled TypedReference type code. Set the correct size for
8722         class data. Setup interface_offsets for interface classes, too.
8723
8724 2003-02-09  Martin Baulig  <martin@ximian.com>
8725
8726         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8727
8728 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8729
8730         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8731         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8732         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8733         * verify.c: check for code that runs after the end of the method.
8734
8735 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8736
8737         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8738         "System.Math::Round2".
8739         * sysmath.h: Added Floor, Round and Round2 definitions.
8740         * sysmath.c: Modified certain functions that were not 100% compliant
8741         with MS.NET (math precision) and added the implementation of Floor,
8742         Round and Round2.
8743
8744 2003-02-07  Martin Baulig  <martin@ximian.com>
8745
8746         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8747
8748 2003-02-07  Martin Baulig  <martin@ximian.com>
8749
8750         * debug-mono-symfile.c: Reflected latest symwriter changes.
8751         (mono_debug_create_mono_symbol_file): Removed.
8752         (mono_debug_open_mono_symbol_file): Take an argument which
8753         specifies whether to create a dynamic symbol file.
8754
8755 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8756
8757         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8758
8759 2003-02-05  Martin Baulig  <martin@ximian.com>
8760
8761         * reflection.c (mono_image_build_metadata): Make this public,
8762         protect it against being called multiple times, don't create
8763         resources and don't build the compressed metadata here.
8764         (mono_image_create_pefile): Do this here.
8765
8766         * icall.c
8767         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8768
8769 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8770
8771         * socket-io.c: fixed bug #36322.
8772
8773 2003-02-06  Piers Haken <piersh@friskit.com>
8774
8775         * appdomain.[ch]:
8776         * class.h:
8777         * debug-mono-symfile.c:
8778         * icall.c:
8779         * loader.c:
8780         * mono-config.c:
8781         * monosn.c:
8782         * reflection.c:
8783         * socket-io.c: warning cleanups
8784
8785 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8786
8787         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8788         function. works like remoting invoke, but does a check for the Proxy first.
8789
8790 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8791
8792         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8793
8794 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8795
8796         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8797         array of pointers.
8798         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8799         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8800
8801         * object.c (mono_store_remote_field_new): used by the new jit
8802         instead of mono_store_remote_field
8803         (mono_load_remote_field_new): used by the new jit
8804         instead of mono_load_remote_field
8805
8806 2003-02-05  Patrik Torstensson
8807
8808         * appdomain.c: changed unload to take the domain id instead
8809         of domain
8810         
8811         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8812
8813
8814 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8815
8816         * appdomain.c: don't look for assemblies in ApplicationBase if
8817         PrivateBinPathProbe is set.
8818
8819 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8820
8821         * object.c: make the first argument in main_args contain the absolute
8822         path to the assembly. Fixes bug #37511.
8823
8824 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8825
8826         * icall.c: get correct UTC offset for countries not using daylight
8827         time saving. Fixes bug #30030.
8828
8829 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8830
8831         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8832         and 1 are the family).
8833
8834 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8835
8836         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8837
8838         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8839
8840 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8841
8842         * reflection.c: added support for SignatureHelper tokens, which is
8843         needed by the Calli opcode.
8844
8845         * reflection.h: track changes to SignatureHelper class.
8846
8847         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8848
8849 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8850
8851         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8852
8853 2003-02-03  Patrik Torstensson
8854         * appdomain.[c|h], domain.c : 
8855          - Added support for getting a domain via domain id
8856          - Support for setting and getting domain from System.AppDomain 
8857            (used in cross appdomain channel)
8858          - Added support for get/set for a MonoAppContext on a thread 
8859            (Context class in System.Runtime.Remoting.Contexts),
8860          - Removed hack in Get/SetData and ExecuteAssembly.
8861         
8862         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8863         the managed world to get control when a proxy is created.
8864
8865         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8866         
8867 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8868
8869         * icall.c
8870         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8871         Populate the codebase field as well.
8872
8873 2003-02-02  Martin Baulig  <martin@ximian.com>
8874
8875         * debug-mono-symfile.c
8876         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8877         (mono_debug_symfile_add_method): Allow interncalls.
8878
8879 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8880
8881         * icall.c: throw parse exception if strtod fails or the string is empty.
8882
8883 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8884
8885         * marshal.c: handle object type separately from defined
8886         class types.
8887
8888 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8889
8890         * marshal.c: handle NATIVE_LPSTR for strings when it's
8891         explicitly specified.
8892
8893 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8894
8895         * reflection.c, reflection.h, icall.c: setup the reflection
8896         handle cache for ModuleBuilders and AssemblyBuilders.
8897
8898 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8899
8900         * reflection.c (reflection_methodbuilder_to_mono_method): set
8901         pinvoke flag
8902
8903 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8904
8905         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8906
8907 2003-01-29  Dick Porter  <dick@ximian.com>
8908
8909         * threads.c: No need for the fake_thread kludge now that Thread
8910         doesn't run a class constructor
8911         
8912 2003-01-29  Dick Porter  <dick@ximian.com>
8913
8914         * threads.c: Use g_direct_hash instead of the rather bogus
8915         g_int_hash
8916
8917 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8918
8919         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8920         (fix pinvoke12.exe)
8921         (mono_marshal_get_struct_to_ptr): generate valid IL code
8922         (mono_marshal_get_ptr_to_struct): generate valid IL code
8923         (*): correctly set sig->pinvoke, we need to memdup the signature
8924         to do that
8925
8926 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8927
8928         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8929         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8930
8931 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8932
8933         * profiler.c: provide more callers information.
8934
8935 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8936
8937         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8938
8939         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8940
8941         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8942
8943 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8944
8945         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8946         exception instead of going into an infinite loop on dates which it 
8947         can't yet handle.
8948
8949         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
8950         out-of-range exception if needed.
8951
8952         * class.c (mono_class_setup_vtable): allow a virtual method to provide
8953         an implementation for an interface method and to override an inherited
8954         method at the same time. 
8955         Imagine a scenario when a virtual method is used to override a
8956         virtual abstract method in a parent class, and this same method 
8957         provides an implementation for an method inherited from an interface. 
8958         In this case, the interface resolution code will set im->slot, which 
8959         means that the virtual method override pass will skip this method 
8960         which means a pointer to the abstract method inherited from the parent
8961         will remain in the vtable of this non-abstract class.
8962
8963         * class.c: (mono_class_setup_vtable): continue search for a real 
8964         method if only an abstract method is found.     
8965
8966 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8967
8968         * reflection.c: add size to encoding for ByValStr and ByValArray
8969         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
8970
8971 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8972
8973         * class.c (mono_class_setup_vtable): pass the override info as an
8974         argument.
8975
8976         * class.c (mono_class_setup_vtable): set the slot of overriding methods
8977         correctly.
8978         
8979         * reflection.c (ensure_runtime_vtable); add support for method 
8980         overrides.
8981         
8982 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8983
8984         * reflection.c (resolution_scope_from_image): Hack to work to work with
8985         dynamic assemblies.
8986
8987         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
8988         added a 'force_ref' argument to force this function to allways return 
8989         a TypeRef. This is needed by mono_image_get_memberref_token ().
8990         
8991 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8992
8993         * reflection.c (mono_image_get_type_info): interfaces really don't have
8994         a parent.
8995
8996         * reflection.c (mono_image_basic_init): fill out missing fields of
8997         image structure.
8998
8999         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
9000         dynamic assemblies. This is required so dynamic assemblies show up in
9001         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
9002         Type::GetType() etc. This is consistent with MS behaviour.
9003
9004         * image.c image.h reflection.c: add newly created classes to the name 
9005         cache so mono_class_get () will find them.      
9006
9007 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9008
9009         First part of changes to get IKVM.NET running under mono.
9010         
9011         * appdomain.h, appdomain.c: added new function 
9012         mono_domain_try_type_resolve() which will emit TypeResolve events. 
9013         This function will call AppDomain::DoTypeResolve to do the actual work.
9014
9015         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
9016         moved existing code dealing with dynamic tokens to a new function 
9017         called mono_reflection_lookup_dynamic_token (). This function will 
9018         raise TypeResolve events when appropriate. Since reflection.c is not 
9019         part of libmetadata, a new hook function called 
9020         mono_lookup_dynamic_token() is added to class.c which will call this.
9021
9022         * assembly.h assembly.c: make the invoke_load_hook function public,
9023         so it can be called for dynamic assemblies.
9024
9025         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
9026
9027         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
9028         type isn't found.
9029
9030         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
9031         MonoGHashTable, since it contains pointers to objects which the GC 
9032         needs to track.
9033
9034         * assembly.c (search_loaded): remove unused variable.
9035         
9036 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
9037
9038         * object.c: fixed issue exposed by gcc-generated IL programs
9039         that use RVA data for pointers.
9040
9041 2003-01-25  Martin Baulig  <martin@ximian.com>
9042
9043         * threads.c (start_wrapper): Moved the initialization of
9044         `start_func' above the mono_new_thread_init() call to which we
9045         pass it as argument.
9046
9047 2003-01-24  Martin Baulig  <martin@ximian.com>
9048
9049         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
9050         the MonoThread pointer.
9051
9052 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
9053
9054         * icall.c: Rename `PowImpl' to Pow.
9055
9056 2003-01-23  Dick Porter  <dick@ximian.com>
9057
9058         * threads.c (start_wrapper): Create a Thread object if needed, so
9059         the Main() thread can do the class initialisation in a subthread
9060         that has been set up to allow managed code execution.
9061
9062         Pass the thread ID instead of the MonoThread pointer to the thread
9063         start and attach callbacks.  This change is required, because the
9064         jit thread start callback must be called _before_ the Thread
9065         object can be created.
9066         
9067         (mono_thread_init): Removed much object creation code that is no
9068         longer needed.  No managed code is called from here now.
9069
9070         * object.c (mono_runtime_exec_managed_code): Create a subthread
9071         for Main, and call back to the runtime to use it.
9072         Set the exit code when Main exits.
9073
9074         * gc.c: Make sure domain finalisation happens in a subthread.
9075         Re-enable threaded GC, fixing bug 31333 (again).
9076
9077         * environment.c: System.Environment internall calls (so far just
9078         ExitCode is here, the others are still in icall.c)
9079
9080         * appdomain.c (mono_runtime_cleanup): All threads running managed
9081         code should have finished before mono_runtime_cleanup() is
9082         reached, so no need to clean up threads.
9083
9084 2003-01-22  Martin Baulig  <martin@ximian.com>
9085
9086         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
9087         `gpointer func' arguments.      
9088         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
9089         but added `MonoThread *thread' argument.
9090         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
9091
9092         * threads.c (mono_new_thread_init): Added `gpointer func' argument
9093         and pass it to the mono_thread_start_cb callback.
9094         (mono_install_thread_callbacks): New public function to install a
9095         set of callbacks which are set by the debugger.
9096         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
9097
9098 2003-01-22  Martin Baulig  <martin@ximian.com>
9099
9100         * Makefile.am: Install debug-mono-symfile.h.
9101
9102 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
9103
9104         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
9105
9106 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
9107
9108         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
9109         * class.c (mono_ptr_class_get): correctly set access levels of pointers
9110         (mono_array_class_get): correctly set access levels of arrays
9111
9112 2003-01-20      Patrik Torstensson
9113         * image.h (MonoAssemblyName): changed major, minor, build, revision
9114         from signed to unsigned.
9115
9116 2003-01-20  sean kasun <skasun@azstarnet.com>
9117
9118         * reflection.c (load_cattr_value): Now this handles
9119         MONO_TYPE_SZARRAY.  Fixes bug #35629
9120
9121 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
9122
9123         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
9124         integer value
9125
9126 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9127
9128         * decimal.c: fixed bug #26056.
9129
9130 2003-01-17  Martin Baulig  <martin@ximian.com>
9131
9132         * gc.c: Raise an ExecutionEngineException instead of using g_error().
9133
9134 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9135
9136         * exception.[ch]:
9137         (mono_get_exception_type_initialization): new function.
9138
9139         * object.c: throw a TypeInitializationException when an exception is
9140         thrown invoking the class constructor.
9141
9142 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9143
9144         * reflection.c: fixed attribute reading.
9145
9146 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9147
9148         * icall.c:
9149         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9150         provided, look for the type in the calling assembly and then in
9151         mscorlib; if the assembly name is provided, only try that one.
9152
9153 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9154
9155         * object.c: register the vtable before there is a chance it's
9156         queried again recursively.
9157
9158 2003-01-13  Duncan Mak  <duncan@ximian.com>
9159
9160         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9161         gc-internal.h. 
9162         
9163 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9164
9165         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9166
9167 2003-01-11  Martin Baulig  <martin@ximian.com>
9168
9169         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9170         this to 20 for the release.
9171
9172 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9173
9174         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9175
9176         * loader.c (mono_method_get_marshal_info): bug fix
9177
9178         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9179         structures with explicit layout
9180
9181 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9182
9183         * profiler.c: made the output more readable (and sorted). 
9184         Added caller information for the allocation profiler.
9185
9186 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9187
9188         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9189
9190 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9191
9192         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9193         to get value types.
9194         
9195 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9196
9197         * object.c, profiler.h, profiler.c, profiler-private.h:
9198         Added object allocation profiler.
9199
9200 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9201
9202         * reflection.h, reflection.c: handle global methods.
9203         Compress blob entries.
9204
9205 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9206
9207         * marshal.c: fix compilation.
9208
9209 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9210
9211         * loader.c (mono_method_get_marshal_info): impl.
9212
9213         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9214
9215 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9216
9217         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9218         for reference types.
9219
9220 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9221
9222         * loader.c: fixed off by one error in loaded parameter names.
9223
9224 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9225
9226         * marshal.c (mono_marshal_get_icall_wrapper): like
9227         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9228         instead of a MonoMethod.
9229
9230 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9231
9232         * decimal.c: fixed bug #36537.
9233
9234 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9235
9236         * marshal.c: throw a missing method exception if a
9237         P/Invoke method is not found.
9238
9239 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9240
9241         * icall.c: allow a null this for constructors.
9242
9243 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9244
9245         * icall.c: raise the proper exceptions if the arguments to the
9246         internal Invoke are incorrect.
9247
9248 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9249
9250         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9251
9252 2003-01-03  Martin Baulig  <martin@ximian.com>
9253
9254         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9255
9256 2002-12-31  Martin Baulig  <martin@ximian.com>
9257
9258         * debug-mono-symfile.c: Completely rewrote the type section.
9259         Instead of using individual malloc()ed fields, we use one big
9260         continuous memory area and offsets into this area.
9261         See the comments in the source code for details.
9262
9263 2002-12-30  Martin Baulig  <martin@ximian.com>
9264
9265         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9266
9267 2002-12-30  Martin Baulig  <martin@ximian.com>
9268
9269         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9270         line number table in this data blob instead of using an external
9271         pointer.
9272
9273 2002-12-28  Martin Baulig  <martin@ximian.com>
9274
9275         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9276
9277 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9278
9279         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9280         as a boxed return type.
9281
9282 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9283
9284         * appdomain.c
9285         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9286         g_build_filename to properly get separators on the filename created.
9287
9288         * object.h: Small change, introduce MonoMarshalByRefObject to
9289         track the layout of that structure in the C# universe as we make
9290         changes there.
9291
9292 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9293
9294         * object.c: removed assert to allow static fields on interfaces.
9295         * loader.c: a TypeSpec may be used for any type, not just arrays.
9296
9297 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9298
9299         * class.c, class.h: added mono_class_array_element_size ().
9300         Ignore static methods in interfaces.
9301
9302 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9303
9304         * threads.c: fixed the build under cygwin.
9305
9306 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9307
9308         * reflection.c: handle nullref constants. Allocate keys for
9309         reflection handles with the GC.
9310
9311 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9312
9313         * threads.c, threads.h: added mono_thread_get_abort_signal()
9314         to get a suitable signal for thread abort.
9315
9316 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9317
9318         * metadata.c: fix handling of ExportedType table.
9319
9320 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9321
9322         * icall.c: added WriteWindowsDebugString internal call.
9323
9324 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9325
9326         * reflection.h: added fields to match C# implementation.
9327
9328 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9329
9330         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9331
9332 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9333
9334         * gc.h, gc-internal.h: Rename header for GC internal calls to
9335         gc-internal.h from gc.h as to not clash with Boehm GC having its
9336         header installed as <gc.h> in outside include paths.
9337         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9338         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9339
9340 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9341
9342         * icall.c: assign minor, build and revision in FillName.
9343
9344 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9345
9346         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9347         Added support for running code generated by Reflection.Emit.
9348
9349 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9350
9351         * appdomain.c: check for NULL argument in LoadFrom.
9352
9353 2002-12-10  Dick Porter  <dick@ximian.com>
9354
9355         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9356
9357 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9358
9359         * appdomain.c: fix buglet when building exe file name.  Handle full
9360         assembly name (needed after latest changes to AssemblyName).
9361         * image.c:
9362         (mono_image_close): free some hashtables.
9363
9364 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9365
9366         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9367         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9368         on some systems (redhat 7.3) 
9369
9370 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9371
9372         * threads.c: delete the critical section of a sync block,
9373         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9374
9375 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9376
9377         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9378
9379 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9380
9381         * appdomain.[ch]: handle the assembly preload event to try loading the
9382         assemblies using the paths we have in the current domain.
9383
9384         * assembly.[ch]: created an assembly preload hook that is called to try
9385         loading the assembly by other means that the ones provided here.
9386
9387         * domain.c: initialize the domain search path.
9388
9389         From now on, assemblies (TODO: except corlib and System) are loaded
9390         according to these rules when using mono_assembly_load ():
9391
9392                 1. It tries to load the assembly from the ApplicationBase
9393                 of the current domain appending .dll and .exe (TODO: have to
9394                 try loading from name/name.dll and name/name.exe).
9395
9396                 2. It tries the search path specified in PrivateBinPath for the
9397                 current domain (if any).
9398
9399                 3. Previous behavior.
9400
9401 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9402
9403         * icall.c: implemented GetInterfaceMap() related icall.
9404         * domain.c, loader.h: load MethodInfo in mono_defaults.
9405
9406 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9407
9408         * gc.c: disable the finalizer thread for now, untill all the issues
9409         with it are resolved.
9410
9411 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9412
9413         * string-icalls.c: handle embedded nulls in string ctor when the
9414         length is specified.
9415
9416 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9417
9418         * class.c: look for explicit interface implementation in parent
9419         classes, too.
9420
9421 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9422
9423         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9424
9425 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9426
9427         * gc.c: protect handles with a critical section.
9428
9429 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9430
9431         * icall.c:
9432         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9433         parameters. If no assembly specified, try getting the type from all
9434         the assemblies in the current domain, else, load the assembly and get
9435         the type from it.
9436
9437 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9438
9439         * marshal.c: applied patch from Aleksey Demakov that fixes
9440         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9441
9442 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9443
9444         * icall.c: fixed get_location.
9445
9446 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9447
9448         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9449         declarations to make it work with older gcc. 
9450
9451         * loader.c (mono_get_method): set signature->pinvoke for native calls
9452
9453 2002-11-20  Dick Porter  <dick@ximian.com>
9454
9455         * threads.c (mono_thread_init): Set the main thread's handle
9456
9457 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9458
9459         * gc.c: allow compilation without GC support. Changed to match the
9460         mono coding style.
9461
9462 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9463
9464         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9465
9466 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9467
9468         * reflection.c: set a public key token on the core assemblies.
9469
9470 2002-11-18  Dick Porter  <dick@ximian.com>
9471
9472         * threads.c: Split out some thread initialisation so that other
9473         files can set the start callback function.
9474
9475         * gc.c: Run finalisers in a separate thread, to avoid stack
9476         overflow.  Fixes bug 31333.
9477
9478         * appdomain.c: Set up GC finalisation thread.
9479
9480         * reflection.c: 
9481         * object.c: 
9482         * domain.c: Use gc.h macros for GC_malloc
9483         
9484 2002-11-15  Dick Porter  <dick@ximian.com>
9485
9486         * threadpool.c: 
9487         * threads.c:
9488         * appdomain.c: Removed mono_runtime_init_with_attach(),
9489         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9490         merging the extra parameter with the existing function.  Removed
9491         unneeded code in mono_thread_attach().
9492
9493 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9494
9495         * image.c (mono_image_loaded_by_guid): a method to get loaded
9496         images by guid. 
9497         (load_metadata_ptrs): we store the guid as string.
9498
9499 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9500
9501         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9502
9503         * metadata.c (mono_guid_to_string): imported method form Zoltan
9504         Varga (slightly modified)
9505
9506         * assembly.c (mono_assembly_open): load precompiled code
9507
9508         * loader.h (MonoMethod): we store the method token for use in the
9509         aot compiler. 
9510
9511 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9512
9513         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9514         the hook function called when an assembly is loaded.
9515         
9516         * domain.c: Modified file.
9517         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9518
9519         Fixes bug #33196.
9520
9521 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9522
9523         * reflection.c: Map PEFileKind to the value expected by the WinNT
9524         image loader. 
9525
9526 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9527
9528         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9529         Read until the buffer is filled completely.
9530
9531 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9532
9533         * icall.c: implemented MonoType.InternalGetEvent ().
9534
9535 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9536
9537         * appdomain.c: implemented InitAppDomainSetup. Delayed
9538         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9539         the entry_assembly.
9540
9541         * assembly.c: base_dir is now an absolute path ending with
9542         G_DIR_SEPARATOR.
9543
9544         * icall.c: modified get_location according to the above changes.
9545
9546         * object.c: init AppDomain.SetupInformation for the default domain after
9547         we have the entry assembly.
9548
9549         * domain.c: when unloading a domain, setup = NULL.
9550
9551 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9552
9553         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9554
9555 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9556
9557         * object.h, object.c: introduced mono_object_get_virtual_method ()
9558         to lookup the method invoked on an object when a callvirt is done on
9559         a method.
9560         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9561
9562 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9563
9564         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9565         current domain when loaded an assembly and failed to load it.
9566
9567         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9568
9569 2002-10-31  Dick Porter  <dick@ximian.com>
9570
9571         * icall.c: 
9572         * file-io.h: 
9573         * file-io.c: Return the error status in a parameter, as the
9574         GetLastError() value has long since been blown away if we try and
9575         look it up in a subsequent internal call invocation.  Delete the
9576         GetLastError() internal call, because it's useless.
9577
9578 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9579
9580         * class.[ch]: added cast_class to fix bug 29517
9581
9582 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9583
9584         * marshal.c: create valid IL code in the filter clause:
9585         the new JIT is less forgiving:-)
9586
9587 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9588
9589         * icall.c: removed get_property internal call.
9590
9591 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9592
9593         * appdomain.h domain.c: Added an ID to appdomains.
9594         
9595         * threads.c threads.h icall.c: Implement icall
9596         Thread:GetDomainID(), and remove unused icall 
9597         CurrentThreadDomain_internal.
9598
9599 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9600
9601         * icall.c: Don't recurse through the base types in GetConstructor.
9602         Fixes bug #32063. 
9603
9604 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9605
9606         * mempool.h, mempool.c: added mono_mempool_empty() and
9607         mono_mempool_stats().
9608
9609 2002-10-23  Dick Porter  <dick@ximian.com>
9610
9611         * file-io.c: 
9612         * file-io.h: 
9613         * icall.c: Added MonoIO.GetFileType internal call
9614
9615 2002-10-17  Dick Porter  <dick@ximian.com>
9616
9617         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9618         delegate semaphore before waiting for all threads to finish,
9619         because new threads can also call async delegates.  Fixes bug
9620         32004.
9621
9622         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9623         of 3 seconds, in case another async job is queued.  (This part is
9624         needed because the bug fix reintroduced the 3s exit lag.)  This
9625         makes the mono_runtime_shutdown flag superfluous.
9626
9627 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9628
9629         * reflection.c: include ehader size in method section headers.
9630         Really check for suplicated modules entries.
9631
9632 2002-10-17  Martin Baulig  <martin@gnome.org>
9633
9634         * debug-mono-symfile.c: Added back support for locals.
9635
9636 2002-10-14  Martin Baulig  <martin@gnome.org>
9637
9638         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9639         MONO_TYPE_VOID.
9640
9641 2002-10-14  Martin Baulig  <martin@gnome.org>
9642
9643         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9644         mono_class_get() instead of looking in the class cache. 
9645
9646 2002-10-13  Martin Baulig  <martin@gnome.org>
9647
9648         * debug-mono-symfile.c: Set version number to 28, include the
9649         signature in method names.
9650
9651 2002-10-13  Martin Baulig  <martin@gnome.org>
9652
9653         * debug-mono-symfile.h: Set version number to 27.
9654
9655 2002-10-11  Martin Baulig  <martin@gnome.org>
9656
9657         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9658
9659 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9660
9661         * metadata.c, metadata.h: added helper function to allocate signatures.
9662
9663 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9664
9665         * icall.c: added internal call to get the location of machine.config.
9666
9667 2002-10-08  Martin Baulig  <martin@gnome.org>
9668
9669         * debug-mono-symfile.c: Ignore classes with a pending init for the
9670         moment.
9671
9672 2002-10-03  Dick Porter  <dick@ximian.com>
9673
9674         * threads.c: Freebsd pthread_t is a pointer
9675
9676 2002-10-03  Dick Porter  <dick@ximian.com>
9677
9678         * socket-io.c: Implemented GetHostName_internal
9679
9680 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9681
9682         * mono-config.c:
9683         (mono_config_parse_file): don't leak the text.
9684
9685 2002-10-02  Martin Baulig  <martin@gnome.org>
9686
9687         * debug-mono-symfile.c: Added support for methods.
9688
9689 2002-10-01  Martin Baulig  <martin@gnome.org>
9690
9691         * debug-mono-symfile.c: Don't emit methods and line numbers for
9692         the dynamic symbol file, just write the type table.  We can easily
9693         have an external helper program which creates a symbol file for an
9694         IL file.        
9695
9696 2002-10-01  Dick Porter  <dick@ximian.com>
9697
9698         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9699         Only add the handle to the cleanup array when we're about to
9700         launch the thread.  Bug 31425 deadlocked when the test was run on
9701         mono under w32.
9702
9703 2002-10-01  Martin Baulig  <martin@gnome.org>
9704
9705         * debug-mono-symfile.c: Added support for properties.
9706
9707 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9708
9709         * reflection.c: unaligned store fix from Mark Crichton
9710         <crichton@gimp.org>.
9711
9712 2002-09-27  Martin Baulig  <martin@gnome.org>
9713
9714         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9715         New interncall.
9716
9717 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9718
9719         * assembly.h, assembly.c: use a sane API to hook into the assembly
9720         loading process instead of a useless special-purpouse hack
9721         (ngen needs a hook, too, for example).
9722
9723 2002-09-27  Dick Porter  <dick@ximian.com>
9724
9725         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9726         io-layer can set up some process handle info.  Not needed on w32,
9727         but doesn't hurt either.
9728
9729         * process.c: Pass the program name in the second parameter to
9730         CreateProcess, so the path is searched.  Include the working
9731         directory. Implemented process name, process enumeration, and some
9732         process detail internal calls.
9733         
9734         * icall.c: Added internal calls for process lookup, and some
9735         process details
9736
9737 2002-09-26  Martin Baulig  <martin@gnome.org>
9738
9739         * assembly.c (mono_install_open_assembly_hook): New global
9740         function to install a function to be invoked each time a new
9741         assembly is loaded.
9742         (mono_assembly_open): Run this callback function if set.
9743
9744         * debug-mono-symfile.c: Put back line numbers for the dynamic
9745         symbol file and also record the .il file as source file.  This
9746         allows us to install the temporary symbol file as `file.dbg' just
9747         like a compiler-generated one.
9748
9749 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9750
9751         * Corrected typo in gc.c (BOHEM vs BOEHM).
9752
9753 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9754
9755         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9756         GetProperties. Also avoid calling g_slist_length in GetProperties and
9757         GetMethods.
9758
9759 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9760
9761         * reflection.c: avoid unaligned stores (bug spotted by
9762         Mark Crichton  <crichton@gimp.org>).
9763
9764 2002-09-25  Martin Baulig  <martin@gnome.org>
9765
9766         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9767         instead of guint64 for addresses and added prologue/epilogue info.
9768
9769 2002-09-25  Martin Baulig  <martin@gnome.org>
9770
9771         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9772         store line number info.  For the dynamic symbol file, we only need
9773         to provide the JIT generated dynamic line number info for the dynamic
9774         symbol file.
9775
9776 2002-09-25  Martin Baulig  <martin@gnome.org>
9777
9778         * debug-mono-symfile.h: Incremented version number.
9779
9780 2002-09-24  Martin Baulig  <martin@gnome.org>
9781
9782         * class.c (mono_debugger_class_init_func): New global function
9783         pointer variable.
9784         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9785         call it.
9786
9787         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9788         function.  This is called via the mono_debugger_class_init_func
9789         hook to add all types to the dynamic type table.
9790         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9791         from its metadata token.
9792
9793         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9794         New interncall for the debugger.
9795
9796 2002-09-24  Nick Drochak <ndrochak@gol.com>
9797
9798         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9799         before using it in case it is null.
9800         
9801 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9802
9803         * metadata.c: allow custom modifiers in local var signatures
9804         (bug spotted by Zoltan Varga).
9805
9806 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9807
9808         * class.c: deal with the <Module> class that may have a NULL vtable.
9809         Eliminate warnings.
9810
9811 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9812
9813         * image.c, image.h: more strong name helpers.
9814         * monosn.c: more work: convert pem keys to cryptoapi format.
9815
9816 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9817
9818         * string-icalls.c: speedup IndexOf.
9819
9820 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9821
9822         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9823
9824 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9825
9826         * icall.c: cleanup: use mono_object_domain ().
9827
9828 2002-09-23  Martin Baulig  <martin@gnome.org>
9829
9830         * debug-mono-symfile.c: Improved type support.
9831
9832 2002-09-22  Martin Baulig  <martin@gnome.org>
9833
9834         * debug-mono-symfile.c: Added support for reference types and strings.
9835
9836 2002-09-22  Martin Baulig  <martin@gnome.org>
9837
9838         * debug-mono-symfile.c: Started to work on the type table.
9839
9840 2002-09-21  Martin Baulig  <martin@gnome.org>
9841
9842         * debug-mono-symfile.c: Largely reworked the symbol table format.
9843         The symbol table is now incrementally updated each time a new
9844         method is added.  We're now also using our own magic and version
9845         so that you don't need to recompile all your classes if the
9846         dynamic table changes.
9847         (mono_debug_update_mono_symbol_file): Removed.
9848         (mono_debug_symfile_add_method): New function to add a method.
9849
9850 2002-09-21  Martin Baulig  <martin@gnome.org>
9851
9852         * icall.c
9853         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9854         New interncall.
9855
9856         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9857         New interncall to get a method from its metadata token.
9858
9859 2002-09-21  Martin Baulig  <martin@gnome.org>
9860
9861         * debug-mono-symfile.c: Create type table.
9862
9863 2002-09-20  Martin Baulig  <martin@gnome.org>
9864
9865         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9866
9867 2002-09-20  Martin Baulig  <martin@gnome.org>
9868
9869         * debug-mono-symfile.c: Provide information about params and locals.
9870
9871 2002-09-20  Martin Baulig  <martin@gnome.org>
9872
9873         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9874         New interncall.
9875
9876         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9877         interncall to get a method from its metadata token.
9878
9879 2002-09-20  Martin Baulig  <martin@gnome.org>
9880
9881         * debug-mono-symfile.c: Added a few checks for method->header
9882         being non-NULL.  This should never happen, but for the moment
9883         let's use a g_warning() rather than a g_assert().
9884
9885 2002-09-19  Mark Crichton  <crichton@gimp.org>
9886
9887         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9888         even if support for it isn't present.  Added an #ifdef to fix this.
9889
9890         * socket-io.c: Added checks back for Solaris support.
9891
9892 2002-09-19  Martin Baulig  <martin@gnome.org>
9893
9894         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9895         changes in the symbol file format.
9896
9897 2002-09-18  Martin Baulig  <martin@gnome.org>
9898
9899         * debug-mono-symfile.c: Set version number to 21.
9900
9901 2002-09-18  Dick Porter  <dick@ximian.com>
9902
9903         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9904         on netbsd.  Fixes bug 30051.
9905
9906 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9907
9908         * reflection.c:
9909         (set_version_from_string): little fix.
9910
9911 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9912
9913         * monosn.c, Makefile.am: added strong name utility.
9914         * reflection.h, reflection.c: implemented delayed signing,
9915         locale, version and hash id assembly attributes.
9916
9917 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9918
9919         * loader.c, metadata.c: load param attributes in signatures.
9920
9921 2002-09-16  Martin Baulig  <martin@gnome.org>
9922
9923         * debug-mono-symfile.c: Added string table with all method names.
9924
9925 2002-09-14  Martin Baulig  <martin@gnome.org>
9926
9927         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9928         fast method lookup.
9929
9930 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9931
9932         * reflection.c: record the public key token of referenced assemblies.
9933
9934 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9935
9936         * image.c, image.h: added functions to get the strong name and the
9937         public key of an assembly.
9938         * pedump.c: use them.
9939
9940 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9941
9942         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9943
9944 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9945
9946         * marshal.c (mono_marshal_get_managed_wrapper): Added
9947         MONO_TYPE_BOOLEAN 
9948
9949 2002-09-11  Martin Baulig  <martin@gnome.org>
9950
9951         * gc.c: Call GC_unregister_disappearing_link() on all links when
9952         finalizing them, this is necessary to aviod a crash in boehm's
9953         finalize handler.
9954
9955 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9956
9957         * gc.c: handle GetTarget for finalized objects spotted and fixed by
9958         nick@chemlab.org.
9959
9960 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9961
9962         * icall.c: implemented MonoType::Module.
9963         * reflection.c, reflection.h: mono_module_get_object () from
9964         Tomi Pakarinen <tomi.pakarinen@welho.com>.
9965
9966 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9967
9968         * icall.c: ignore overridden methods in GetMethods ().
9969         Fix for FieldInfo::SetValue().
9970         * object.c: handle float/double in runtime invoke.
9971
9972 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9973
9974         * object.c: allow a constructor to be called again on an object.
9975
9976 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9977
9978         * class.h, class.c: move field layout code to it's own function and
9979         export it. Get an interface id earlier. Move fields in MonoClass
9980         so they are more cache friendly and align the bitfields.
9981         * loader.c: temporary handle get_param_names() for a runtime method.
9982         * reflection.c, reflection.h: more code to handle runtime creation of
9983         types.
9984
9985 2002-09-09  Martin Baulig  <martin@gnome.org>
9986
9987         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
9988         signature with the pinvoke field being set for the actual call.
9989
9990 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9991
9992         * icall.c: removed some unused icalls. Start of map of glib charsets
9993         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
9994
9995 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9996
9997         * debug-helpers.c: break infinite loop (found and fixed by
9998         Holger Arnold <harnold@gmx.de>).
9999
10000 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10001
10002         * icall.c: target may be null in create_delegate.
10003
10004 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10005
10006         * marshal.c: handle a boolean return type.
10007
10008 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10009
10010         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
10011
10012 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10013
10014         * gc.c: fix weakreferences.
10015
10016 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10017
10018         * icall.c: added icall to get default codepage.
10019
10020 2002-09-03  Dick Porter  <dick@ximian.com>
10021
10022         * threads.h: 
10023         * threads.c: Use MonoThread instead of MonoObject where
10024         apropriate.
10025
10026         Store running thread objects in a hash table, so that we have all
10027         the info to hand when waiting for them to finish
10028         (means we don't need OpenThread() any more, so mingw builds should
10029         be fully functional again.)
10030
10031         * verify.c:
10032         * object.h: Added thread ID to MonoThread
10033
10034 2002-09-03  Martin Baulig  <martin@gnome.org>
10035
10036         * icall.c (System.Reflection.Assembly::get_location): New interncall.
10037
10038 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10039
10040         * icall.c: fixed leak in get_temp_path. Thanks lupus.
10041
10042 2002-09-03  Martin Baulig  <martin@gnome.org>
10043
10044         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
10045         argument to store the end address of the disassembled instruction.
10046
10047         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
10048         here from debug-symfile.h.
10049         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
10050         JIT into this struct.
10051         (MonoSymbolFile): Added `char *image_file' field.
10052         (MonoDebugGetMethodFunc): Removed.
10053         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
10054         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
10055         (mono_debug_find_method): New method.
10056
10057         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
10058         create a full symbol file.
10059         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
10060         and static symbol files.
10061         (mono_debug_find_method): The symbol file keeps an internal method hash,
10062         call this to get a MonoDebugMethodInfo from a MonoMethod.
10063
10064         * debug-symfile.[ch]: Removed.
10065
10066 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
10067
10068         * image.c (do_mono_image_open): Remove linker version check.
10069
10070 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
10071
10072         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
10073         wrappers for instance methods.
10074         
10075 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10076
10077         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
10078
10079 2002-08-28  Dick Porter  <dick@ximian.com>
10080
10081         * Makefile.am: Export HOST_CC for w32 builds
10082
10083 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10084
10085         * file-io.c process.c: MonoString are null terminated, no
10086         need for mono_string_to_utf16() anymore.
10087
10088 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10089
10090         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
10091
10092 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
10093
10094         * icall.c, reflection.h: speedup System.MonoType.
10095
10096 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10097
10098         * reflection.c: allow null as the value of a string argument in
10099         custom attributes constructors.
10100
10101 2002-08-27  Martin Baulig  <martin@gnome.org>
10102
10103         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
10104         `trampoline_address' field.
10105
10106 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
10107
10108         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
10109         check (fixes bug #29486) 
10110
10111 2002-08-27  Martin Baulig  <martin@gnome.org>
10112
10113         * debug-mono-symfile.c: Changed the file format in a way that allows us
10114         open it read-only and to use a specially malloced area for all the
10115         dynamic data.  We can now also generate a symbol file on-the-fly if we're
10116         debugging IL code and there is no MCS generated symbol file for it.
10117
10118 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10119
10120         * object.c: added a define for a good string and array
10121         creation speedup (not enabled by default because we need to deal with
10122         the synch stuff).
10123
10124 2002-08-26  Martin Baulig  <martin@gnome.org>
10125
10126         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
10127         function to create a dynamic symbol file.  This is used by the
10128         debugger to create a symbol file for IL code on-the-fly.
10129
10130 2002-08-26  Martin Baulig  <martin@gnome.org>
10131
10132         * loader.c (mono_lookup_pinvoke_call): Include the error message
10133         from g_module_error() in the error message.
10134
10135 2002-08-24  Martin Baulig  <martin@gnome.org>
10136
10137         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
10138         function to update the symbol file.  The symbol file is mmap()ed
10139         writable, but private.  This allows us to install the symbol file
10140         together with the assembly.
10141
10142 2002-08-24  Martin Baulig  <martin@gnome.org>
10143
10144         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
10145         but they can read the new symbol file format which mcs is now creating.
10146
10147         * debug-symfile.c (mono_debug_find_source_location): Moved to
10148         debug-mono-symfile.c; this is now operating on the new symbol file.
10149
10150 2002-08-23  Martin Baulig  <martin@gnome.org>
10151
10152         * debug-helpers.c (mono_method_desc_from_method): New function to get
10153         a MonoMethodDesc from a MonoMethod.
10154
10155 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10156
10157         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10158         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10159
10160 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10161
10162         * string-icalls.[ch]: make helper methods static.
10163
10164 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10165
10166         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10167         types to it and to SetValueInternal.
10168
10169         * object.c: Moved handle_enum label to its proper place. This was the
10170         f... bug! ;-)
10171
10172         This time i compiled mcs and gtk-sharp and they both work.
10173
10174 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10175
10176         * icall.c: reverted partially my previous patch until 
10177         object.c:set_value handles enums correcly.
10178
10179 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10180
10181         * icall.c:
10182         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10183         (ves_icall_System_Environment_get_MachineName): removed warning when
10184         compiling under cygwin.
10185
10186 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10187
10188         * object.c: fixed field_get_value() for reference types.
10189
10190 2002-08-22  Dick Porter  <dick@ximian.com>
10191
10192         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10193         Don't free a buffer while it's still needed.  Patch from Jonathan
10194         Liger <Jonathan.liger@wanadoo.fr>
10195
10196 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10197
10198         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10199         internal call.
10200
10201 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10202
10203         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10204         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10205
10206         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10207         we call unmanaged code which throws exceptions.
10208
10209 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10210
10211         * appdomain.h: added per-domain entry_assembly.
10212         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10213         arguments.
10214         * icall.c: Assembly::GetEntryAssembly icall.
10215         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10216         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10217
10218 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10219
10220         * appdomain.h, gc.c: added mono_domain_finalize ().
10221
10222 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10223
10224         * object.c:
10225         (mono_print_unhandled_exception): changed g_warning by g_printerr
10226         because g_log has a 1024 characters limit (yeah, i got a big stack
10227         trace). Don't print exception name, that should be in ToString 
10228         returned string.
10229
10230 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10231
10232         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10233         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10234
10235 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10236
10237         * object.c:
10238         (mono_print_unhandled_exception): after previous commit, i realized
10239         that MS calls ToString on the exception. I changed this function to
10240         do that. This way we get stack_trace for free.
10241
10242 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10243
10244         * object.c:
10245         (mono_print_unhandled_exception): invoke Message property instead of
10246         getting 'message' field from Exception. Don't allocate memory for
10247         'trace' and 'message' if not needed.
10248
10249 2002-08-18  Dick Porter  <dick@ximian.com>
10250
10251         * unicode.c: Fix asserts to match Encoder.cs checks
10252
10253 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10254
10255         * marshal.c: fix unaligned store issue and a few wrong
10256         opcode argument types.
10257
10258 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10259
10260         * icall.c: added GetUninitializedObjectInternal internal call.
10261
10262 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10263
10264         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10265         to the right domain.
10266
10267 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10268
10269         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10270
10271         * class.c (class_compute_field_layout): set blittable to false for Strings
10272
10273         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10274
10275 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10276
10277         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10278         first chunk of code to create types at runtime. Code to
10279         handle ReflectedType/DeclaringType. Make reflection handles
10280         domain specific.
10281
10282 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10283
10284         * class.c: set correct name in arrays.
10285
10286 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10287
10288         * appdomain.c (mono_domain_transfer_object): make it work with
10289         valuetypes. bug fixes.
10290
10291 2002-08-12  Dick Porter  <dick@ximian.com>
10292
10293         * object.h: Rename some parameters to avoid c++ keywords (Patch
10294         from Joseph Wenninger <kde@jowenn.at>)
10295
10296 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10297
10298         * icall.c: added icall to implement Assembly.GetFile*.
10299
10300 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10301
10302         * reflection.h, reflection.c: code to embed managed resources.
10303
10304 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10305
10306         * class.c: move all the type size stuff into
10307         class_compute_field_layout().
10308
10309 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10310
10311         * class.c: ensure enums have always the correct instance size.
10312         * unicode.c: remove wrong assert.
10313
10314 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10315
10316         * assembly.c: fix mem corruption issue.
10317         * image.h, image.c: added mono_image_get_resource () to access
10318         managed resources.
10319         * icall.c: implemented Assembly.EntryPoint property and some
10320         Managed Resources related internalcalls.
10321
10322
10323 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10324
10325         * image.c, image.h: impemented mono_image_get_entry_point ().
10326         * appdomain.c: use mono_image_get_entry_point.
10327
10328 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10329
10330         * reflection.c: support the object type argument when loading
10331         custom attributes.
10332
10333 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10334
10335         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10336         String as return type.
10337
10338 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10339
10340         * reflection.c: fix encoding of named args for custom attrs to match
10341         the ms implementation. Read them back when instantiating custom
10342         attributes.
10343
10344 2002-08-02  Radek Doulik  <rodo@ximian.com>
10345
10346         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10347         by Dietmar as quick fix
10348         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10349         16 as stack size, used on more places as quick fix before Dietmar
10350         will fix it properly
10351
10352 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10353
10354         * object.h, object.c: added accessors for fields and properties.
10355
10356 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10357
10358         * class.c, class.h: made mono_class_get_field_from_name ()
10359         loop on parent types.
10360         Added mono_class_get_property_from_name ().
10361
10362 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10363
10364         * class.c, class.h: move the code to setup the type vtable in its own
10365         function so that it can be reused also for types created at runtime.
10366         Eliminate the "class" identifier from the header file.
10367         * reflection.c: setup the vtable for enums so that we can create
10368         objects for use in SetConstant ().
10369
10370 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10371
10372         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10373         instead of the delegate itself as this pointer (bug #28383)
10374
10375 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10376
10377         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10378         conversions.
10379
10380 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10381
10382         * loader.c: don't set the pinvoke bit on icalls.
10383
10384 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10385
10386         * debug-helpers.c (mono_method_full_name): only print a number to
10387         indicate wrapper type (so that the output is more readable in traces).
10388
10389 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10390
10391         * class.c (mono_class_init): include method override patch from Paolo
10392
10393 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10394
10395         * icall.c: fixed GetTypeCode().
10396
10397 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10398
10399         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10400         use real delegate invoke function to make it work with multicast
10401         delegates (fix bug# 28291).
10402
10403 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10404
10405         * object.c: load constant strings.
10406
10407 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10408
10409         * reflection.c: no magic numbers.
10410         * tabledefs.h: security action enum.
10411
10412 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10413
10414         * assembly.c: fix possible memory corruption.
10415
10416 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10417
10418         * reflection.h, reflection.c: added support for linking resources.
10419         * verify.c: check we have an updated corlib.
10420
10421 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10422
10423         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10424         string arrays.
10425         (mono_marshal_string_array): null terminate unmanaged string arrays.
10426         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10427
10428 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10429
10430         * icall.c: Type.GetType () can now return also types from the
10431         calling assembly.
10432
10433 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10434
10435         * loader.h, loader.c: stack walking support.
10436         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10437         GetCallingAssembly.
10438
10439 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10440
10441         * marshal.c: added optimisations for blittable types 
10442
10443         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10444         (mono_class_setup_mono_type): set blittable attribute for single
10445         and double.
10446
10447         * marshal.c (mono_string_utf8_to_builder): impl.
10448         (mono_string_builder_to_utf8): impl.
10449         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10450
10451 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10452
10453         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10454         (mono_marshal_get_managed_wrapper): impl. byref types
10455
10456 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10457
10458         * icall.c:
10459         (search_method): don't display debug message. 
10460
10461 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10462
10463         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10464
10465 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10466
10467         * appdomain.c: set the missing filename when throwing exception.
10468
10469 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10470
10471         * metadata.c (mono_type_size): code cleanup
10472         (mono_type_stack_size): removed some test code
10473
10474 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10475
10476         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10477         mono_get_exception_file_not_found now.
10478
10479         * exception.c (mono_exception_from_name_two_strings): New version
10480         that will call a constructor with two string arguments. 
10481         (mono_get_exception_file_not_found): New helper routine, used to
10482         report file-not-found errors.
10483
10484 2002-07-20  Dick Porter  <dick@ximian.com>
10485
10486         * process.h:
10487         * process.c: Pass file handles to CreateProcess
10488         
10489         * icall.c:
10490         * file-io.h:
10491         * file-io.c: Implemented CreatePipe
10492
10493 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10494
10495         * metadata.c (mono_get_param_info): set alignment for value types
10496
10497 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10498
10499         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10500         Constify mono_domain_assembly_open().
10501         * loader.c: handle null namespace in icalls.
10502
10503 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10504
10505         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10506         (emit_str_to_ptr_conv): marshal object as structs
10507
10508         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10509
10510         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10511
10512 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10513
10514         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10515         (mono_marshal_get_native_wrapper): we an now return value types
10516
10517 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10518
10519         * verify.c: more checks implemented.
10520
10521 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10522
10523         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10524         (fix bug #27695)
10525         (mono_marshal_get_native_wrapper): allow byref arguments
10526         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10527         impl. PtrToStringXXX methods
10528         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10529         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10530         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10531         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10532         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10533
10534 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10535
10536         * reflection.c: fix buglet in parsing an assembly name.
10537
10538 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10539
10540         * marshal.c (emit_ptr_to_str_conv): first impl.
10541
10542 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10543
10544         * object.c, class.h: cache the vtable in the class as suggested by
10545         vargaz@freemail.hu (Zoltan Varga).
10546
10547 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10548
10549         * class.h, loader.c: added mono_field_from_token().
10550         * verify.c: first cut of type checking code.
10551
10552 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10553
10554         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10555
10556 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10557
10558         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10559         (fix bug #27782)
10560         (mono_marshal_get_remoting_invoke): impl.
10561         (mono_delegate_begin_invoke): impl.
10562         (mono_mb_emit_save_args): impl.
10563         (mono_delegate_end_invoke): impl.
10564         (mono_marshal_get_delegate_begin_invoke):
10565         (mono_marshal_get_delegate_end_invoke):
10566         (mono_marshal_get_delegate_invoke): generate a special name for
10567         those methods (including the signature) and associate them whith
10568         the delegate class. 
10569
10570 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10571
10572         * reflection.[ch]: 
10573         (mono_reflection_type_from_name): now it has a MonoImage parameter
10574         which is used as the default image to search the type in. If the image
10575         is NULL or getting the type from it fails, it defaults to corlib.
10576
10577         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10578         new parameter.
10579
10580 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10581
10582         * reflection.c: update the parameter table index.
10583
10584 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10585
10586         * domain.c: don't include the mark byte in the string hash.
10587
10588 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10589
10590         * icall.cs: icall for Type.GetTypeCode ().
10591         * verify: a couple of fixes and disabled local initialization checks.
10592
10593 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10594
10595         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10596
10597         * debug-helpers.c (mono_method_full_name): print the type of the
10598         runtime wrapper
10599
10600         * metadata.c (mono_signature_hash): a hash function for signatures
10601         (mono_signature_hash): better hash algorithm
10602
10603         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10604
10605         * debug-helpers.c (mono_method_full_name): this can now generate
10606         method names with signatures
10607
10608         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10609         method dont have this pointers.
10610
10611 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10612
10613         * reflection.c: fixup typebuilder tokens.
10614         * image.c: fix buglet.
10615         * marshal.h: remove whitespace.
10616         * metadata.h, metadata.c: reinstate code that was removed.
10617         * verify.c: handle catch directives and fix another couple of bugs.
10618
10619 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10620
10621         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10622         (mono_marshal_get_native_wrapper): make it comp. with the old code
10623         (mono_marshal_get_native_wrapper): support boolean
10624         (mono_marshal_get_managed_wrapper): support more types
10625
10626 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10627
10628         * class.c (class_compute_field_layout): compute class->blittable attribute.
10629
10630 2002-07-09  Dick Porter  <dick@ximian.com>
10631
10632         * threads.c: Make the thread cleaning up cope with threads that
10633         call ExitThread()
10634
10635 2002-07-08  Radek Doulik  <rodo@ximian.com>
10636
10637         * reflection.c (method_encode_code): use non-translated values to
10638         compute finally_start, this fixes exception handling on ppc, yay!
10639
10640         * decimal.h (struct signscale): fix endianess
10641
10642 2002-07-07  Radek Doulik  <rodo@ximian.com>
10643
10644         * reflection.c: swap box_val and not val
10645
10646 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10647
10648         * reflection.c, reflection.h: handle full assembly info in type name.
10649         Handle Type arguments when loading custom attributes.
10650         * icall.c: updated to use new mono_reflection_type_from_name () method.
10651
10652 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10653
10654         * loader.c:
10655         (method_from_memberref): also print assembly name when method not found.
10656
10657 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10658
10659         * icall.c:
10660         (ves_icall_TypeGetProperties): fixed bug #27473. 
10661
10662 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10663
10664         * reflection.c: display image name and token when cannot find the
10665         .ctor for an attribute.
10666
10667 2002-07-05  Martin Baulig  <martin@gnome.org>
10668
10669         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10670
10671 2002-07-04  Dick Porter  <dick@ximian.com>
10672
10673         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10674         compile on mingw.  This will cause mingw builds to not wait for
10675         subthreads to terminate after the main thread does.  I've lodged a
10676         bug with the mingw developers for them to wrap OpenThread().
10677
10678 2002-07-03  Dick Porter  <dick@ximian.com>
10679
10680         * threads.c: Store thread IDs instead of handles, because
10681         GetCurrentThread() returns a pseudohandle and therefore stores
10682         useless values.  mono_thread_cleanup() continues checking the
10683         array of threads until it is empty, to cope with subthreads
10684         spawning new threads after the main thread has finished.
10685
10686         * profiler.h:
10687         * profiler.c:
10688         * profiler-private.h: Pass the thread ID to thread profiler
10689         functions, instead of a handle
10690
10691 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10692
10693         * verify.c: fixes to make it more usable.
10694         * pedump.c: added --verify code to verify IL code in an assembly.
10695
10696 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10697
10698         * reflection.c: turn errors into warnings to allow compiling corlib.
10699
10700 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10701
10702         * reflection.c: add special cases to compile corlib.
10703
10704 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10705
10706         * reflection.c: handle properties with only a set method.
10707
10708 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10709
10710         * opcodes.h: add enum with opcodes in opval order.
10711
10712 2002-07-01  Dick Porter  <dick@ximian.com>
10713         
10714         * object.h:
10715         * object.c (mono_runtime_run_main): Removed unneeded argument
10716
10717 2002-06-28  Martin Baulig  <martin@gnome.org>
10718
10719         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10720
10721 2002-06-27  Dick Porter  <dick@ximian.com>
10722
10723         * threads.c: Store the handle in both the parent thread and in the
10724         subthread, to minimise the time between starting a new thread and
10725         storing its ID.
10726
10727 2002-06-26  Dick Porter  <dick@ximian.com>
10728
10729         * appdomain.c (mono_runtime_cleanup): Close the socket library
10730         after all the threads have finished, not before
10731
10732 2002-06-26  Martin Baulig  <martin@gnome.org>
10733
10734         * debug-symfile.c (mono_debug_find_source_location): Added
10735         `guint32 *line_number' argument.  If it's not NULL, store the line number
10736         there and return the file name without the line number.
10737
10738 2002-06-25  Dick Porter  <dick@ximian.com>
10739
10740         * icall.c:
10741         * process.h:
10742         * process.c: Process forking and other support functions
10743
10744 2002-06-25  Dick Porter  <dick@ximian.com>
10745
10746         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10747         things dont happen when the image is closed.
10748         (mono_image_lookup_resource): Walk the resource section looking
10749         for a particular entry
10750
10751         * cil-coff.h: PE resource section decoding
10752
10753 2002-06-25  Dick Porter  <dick@ximian.com>
10754         
10755         * assembly.h:
10756         * assembly.c: 
10757         (mono_assembly_foreach): Accessor functions to walk the list of
10758         loaded assemblies
10759         (mono_assembly_set_main):
10760         (mono_assembly_get_main): Process methods need to know which
10761         assembly is the "main" one
10762
10763         * object.c (mono_runtime_run_main): Record the main assembly
10764
10765         * debug-helpers.c: Fix typo
10766
10767 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10768
10769         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10770         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10771
10772 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10773
10774         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10775
10776 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10777
10778         * image.c (do_mono_image_open): Initialize reference count,
10779         otherwise we leak the MonoImage.
10780
10781 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10782
10783         * reflection.c: small tweak to handle self-hosting.
10784
10785 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10786
10787         * reflection.c: fix type name parse code.
10788
10789 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10790
10791         * reflection.c: break out of the loop.
10792         * image.c: special case corlib.
10793
10794 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10795
10796         * reflection.c: add all the custom attrs at the end to ensure the
10797         ctors have been properly initialized when the attributes are defined
10798         in the current assembly.
10799
10800 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10801
10802         * reflection.c: handle correctly multiple-nested types.
10803
10804 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10805
10806         * row-indexes.h: fix typos.
10807         * reflection.c: adjust for typos and fix method_def_or_ref
10808         encoding in MethodImpl table.
10809
10810 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10811
10812         * reflection.c: fix entry point patching (thanks Serge!).
10813
10814 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10815
10816         * verify.c: add check for System.Exception
10817
10818 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10819
10820         * image.c, class.c: minifix for code just c&p'ed.
10821         * reflection.c: warning fix.
10822         * object.h, loader.h, domain.c: load also StringBuilder.
10823
10824 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10825
10826         * marshal.h, marshal.c: some support code to handle complex marshaling.
10827
10828 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10829
10830         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10831         Better signatures with vtable error dump.
10832
10833 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10834
10835         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10836
10837 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10838
10839         * icall.c (ves_icall_Type_GetField): impl.
10840
10841 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10842
10843         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10844         to retrieve a marshal description blob for a field or param.
10845
10846 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10847
10848         * reflection.h, reflection.c: change order of nested type emission
10849         to avoid table corruption. The NestedTypes table is sorted.
10850         * icall.c: change order of GetConstructor results to workaround mcs bug.
10851
10852 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10853
10854         * reflection.h, reflection.c: handle field and param marshal
10855         information.
10856
10857 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10858
10859         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10860
10861 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10862
10863         * reflection.c: fix call convention.
10864
10865 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10866
10867         * reflection.h, reflection.c: mono_image_get_memberref_token()
10868         takes a type instead of a class, now. Added
10869         mono_image_get_array_token() to create tokens for the special
10870         multi-dim array methods.
10871
10872 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10873
10874         * assembly.c: handle modules (no assembly table). Split
10875         loading references in its own function.
10876         * class.c: handle moduleref resolution scope.
10877         * image.c, image.h: cache module name in image.
10878
10879 2002-06-07  Martin Baulig  <martin@gnome.org>
10880
10881         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10882         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10883
10884 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10885
10886         * icall.c: more signature fixes that used uint instead of int.
10887
10888 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10889
10890         * reflection.c: fixed signature of field refs.
10891
10892 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10893
10894         * class.c, reflection.c: handle typerefs of nested types
10895         (both on read and when writing files).
10896
10897 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10898
10899         * icall.c: fix method signatures that tried to workaround the previous
10900         typo, d'oh!
10901
10902 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10903
10904         * debug-helpers.c: fix typo.
10905
10906 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10907
10908         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10909         rewrote the PE/COFF writing code (our programs are understood by the
10910         ms runtime, now).
10911
10912 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10913
10914         * gc.c, gc.h, icall.c: weakreference support.
10915
10916 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10917
10918         * Makefile.am, mono-config.c: use $(sysconfdir).
10919
10920 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10921
10922         * icall.c: changed default precision of Double.ToString() to 15.
10923         Fixed memory leak. Unified with Single.ToString.
10924
10925 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10926
10927         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10928
10929 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10930
10931         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10932         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10933         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10934         and myself.
10935
10936 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10937
10938         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10939
10940 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10941
10942         * reflection.c, socket-io.c: more compilation fixes.
10943
10944 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10945
10946         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10947         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10948         unicode.c: warning and compiler compatibility fixes.
10949
10950 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10951
10952         * class.h, metadata.c: fixed warnings/compilation errors.
10953
10954 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10955
10956         * Makefile.am, mono-config.c, mono-config.h: configuration file
10957         support routines.
10958         * loader.c, loader.h: make Dll mapping configurable at runtime in the
10959         config file. Export methods to insert and lookup mappings.
10960
10961 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10962
10963         * reflection.c: handle types and boxed objects in custom attr
10964         constructors.
10965
10966 2002-05-30  Martin Baulig  <martin@gnome.org>
10967
10968         * debug-symfile.c
10969         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
10970
10971 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
10972
10973         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
10974         to lookup the implmap row for a P/Invoke method.
10975         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
10976         P/Invoke method from the runtime on an as needed basis.
10977
10978 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
10979
10980         * metadata.c (mono_metadata_parse_signature): impl.
10981
10982 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10983
10984         * class.c: handle .pack directive.
10985
10986 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10987
10988         * object.c: initialize static fields with RVA data.
10989
10990 2002-05-25  Martin Baulig  <martin@gnome.org>
10991
10992         * debug-symfile.c
10993         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
10994
10995 2002-05-24  Martin Baulig  <martin@gnome.org>
10996
10997         * debug-symfile.c
10998         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
10999         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
11000         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
11001
11002 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11003
11004         * object.c: special case string ctros in invoke.
11005         * gc.c: silly whitespace changes.
11006
11007 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
11008
11009         * threadpool.[ch]: impl. a threadpool that can
11010         be used by mint and mono.
11011
11012 2002-05-22  Martin Baulig  <martin@gnome.org>
11013
11014         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
11015         The first argument is now a `MonoReflectionModuleBuilder *', the return
11016         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
11017         `methods' field to get the method builder.  The `token' argument is the
11018         unfixed token.
11019
11020         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
11021         invalid characters instead of g_assert_not_reached()ing.  This seems
11022         to be the behaviour of mscorlib.
11023
11024 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
11025
11026         * object.c (mono_runtime_invoke_array): applied patch from Rachel
11027         Hestilow to fix bug #25104
11028
11029 2002-05-21  Martin Baulig  <martin@gnome.org>
11030
11031         * debug-symfile.c (mono_debug_find_source_location): New function.
11032         Looks up an IL offset in the line number table and returns the source
11033         location as a string.
11034
11035 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11036
11037         * icall.c:
11038         (mono_double_ToStringImpl): changed %f by %g until we have something
11039         better.
11040
11041 2002-05-21  Nick Drochak  <ndrochak@gol.com>
11042
11043         * icall.c : Use different name for Math.Pow's icall.  Needed to check
11044         parameters first in C#.
11045
11046 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11047
11048         * icall.c, reflection.h: added icall to get info about an event.
11049
11050 2002-05-20  Radek Doulik  <rodo@ximian.com>
11051
11052         * object.c (mono_value_box): don't use memcpy for boxing on BIG
11053         endian
11054         (mono_value_box): don't use memcpy for small sizes on
11055         architectures with unaligned access
11056
11057 2002-05-20  Martin Baulig  <martin@gnome.org>
11058
11059         * reflection.c (mono_reflection_setup_internal_class): Don't crash
11060         if `tb->parent == NULL'.
11061         (mono_reflection_create_internal_class): New function.  This is
11062         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
11063         for enum types.
11064
11065         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
11066         New interncall.
11067
11068 2002-05-19  Martin Baulig  <martin@gnome.org>
11069
11070         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
11071         argument to get the length, don't default to the array length.
11072
11073 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
11074
11075         * assembly.c (mono_assembly_setrootdir): New function used to
11076         override the MONO_ASSEMBLIES directory.
11077
11078 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11079
11080         * icall.c: ValueType_GetHashCode() initialize local var.
11081
11082 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11083
11084         * reflection.c: sort custom attributes table.
11085
11086 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11087
11088         * reflection.c: support named args in custom attributes (write support).
11089
11090 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
11091
11092         * reflection.c: fix finally position calculation.
11093
11094 2002-05-15  Radek Doulik  <rodo@ximian.com>
11095
11096         * reflection.c: fixed endianess at many places
11097
11098         * icall.c (ves_icall_InitializeArray): comment out debug msg
11099
11100 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
11101
11102         * object.c (mono_unhandled_exception): new function to handle
11103         unhandled exceptions.
11104         (mono_unhandled_exception): call the UnhandledException event.
11105         (mono_runtime_delegate_invoke): impl.
11106
11107 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
11108
11109         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
11110         returns the RVA, not the direct pointer to the data. Handle the case
11111         when the class size is fixed.
11112
11113 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11114
11115         * reflection.c: fix some endianess issues.
11116
11117 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
11118
11119         * object.c (mono_runtime_invoke): is now able to catch exceptions.
11120
11121         * threads.c (mono_thread_init): added a callback which is invoked
11122         at thread start.
11123
11124 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11125         
11126         * icall.c: make GetHashCode return non-negative values.
11127
11128 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11129
11130         * object.c, icall.c, gc.c: revert to address-based hashcode.
11131
11132 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
11133
11134         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
11135
11136 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11137
11138         * icall.c, class.c: special case <Module>.
11139
11140 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
11141
11142         * icall.c: fix bug in GetNow().
11143
11144 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
11145
11146         * object.c (mono_runtime_class_init): make sure that we call all
11147         static class constructors.
11148
11149 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11150
11151         * reflection.c: sort methodsemantics table.
11152
11153 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11154
11155         * reflection.h, reflection.c: honour init locals setting.
11156
11157 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11158
11159         * icall.c: copied Double ToStringImpl for Single ToStringImpl
11160
11161 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11162
11163         * reflection.c: support ContructorBuilders in attribute blob creation.
11164
11165 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11166
11167         * reflection.c: some changes to build a binary that can be run
11168         directly in windows.
11169
11170 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11171
11172         * loader.c: print a big message when an icall can't be found.
11173
11174 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11175
11176         * string-icalls.c: fix bug 24248.
11177
11178 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11179
11180         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11181         icall.c, reflection.h: separate assembly loading by pathname and by
11182         assembly name. Use the MONO_PATH env var to search for assemblies.
11183
11184 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11185
11186         * assembly.c, image.h: add some support for assemblies
11187         with multiple modules.
11188         * class.c, class.h: export mono_class_from_typeref().
11189         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11190         instead.
11191
11192 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11193
11194         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11195         documentation says (the ECMA one is correct).
11196
11197 2002-05-02  Dick Porter  <dick@ximian.com>
11198
11199         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11200         Don't name the synchronisation mutex.
11201
11202 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11203
11204         * rand.c
11205         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11206         Make the prototypes match.
11207         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11208         Same.
11209
11210         * icall.c
11211         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11212         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11213         all systems have tm.tm_zone, so use strftime() with %Z to print
11214         the timezone abreviation into a temp string.
11215
11216         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11217         rather than mono_array_addr() on a MonoString on Big Endian
11218         machines.
11219
11220 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11221
11222         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11223         fix bug 24041
11224
11225 2002-04-30  Dick Porter  <dick@ximian.com>
11226
11227         * socket-io.c: Cope with SOCKET being an integer rather than a
11228         pointer now.
11229
11230         * threads.c: Added Thread_free_internal, to deal with thread
11231         handle cleanup.  Moved calls to handle_store() and handle_remove()
11232         to start_wrapper(), so each can only be called once.  Allocate
11233         synchronisation blocks with GC_malloc(), and use GC finalisation
11234         to close the handles.
11235
11236         * icall.c: added System.Threading.Thread::Thread_free_internal
11237
11238 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11239
11240         * icall.c: support Environment.Exit, CommandLineArgs().
11241
11242 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11243
11244         * object.c, object.h: added mono_runtime_run_main () and
11245         mono_runtime_get_main_args () for use in System.Environment.
11246
11247 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11248
11249         * gc.c: fix thinko, enable actual finalization since the jit is now
11250         fixed.
11251
11252 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11253
11254         * gc.c, object.c: take into account that an object may be offset wrt the address
11255         returned by GC_malloc().
11256
11257 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11258
11259         * image.c: handle files without entries in the assembly table (modules).
11260
11261 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11262
11263         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11264         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11265         allowed to be null when it's System.Object class setup.
11266
11267 2002-04-27  Martin Baulig  <martin@gnome.org>
11268
11269         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11270         if `tb->parent == NULL' rather than crashing.
11271
11272 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11273
11274         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11275         calling acos() where asin() should have been called.
11276
11277 2002-04-26  Martin Baulig  <martin@gnome.org>
11278
11279         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11280         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11281         there's a subdirectory called `System', but we don't want to read that
11282         subdirectory as an assembly.
11283
11284 2002-04-25  Martin Baulig  <martin@gnome.org>
11285
11286         * debug-symfile.c: Reflect latest MonoString changes.
11287
11288 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11289
11290         * rand.c, rand.h: instance method icalls need to have an explicit
11291         this pointer as first argument in the C implementation.
11292
11293 2002-04-25  Nick Drochak <ndrochak@gol.com>
11294
11295         * icall.c: Fix typo in map for GetNonZeroBytes
11296
11297 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11298
11299         * string-icalls.c : String does now passes unit tests without any 
11300         errors, the following changes has been made:
11301         
11302         Implemented replace methods.
11303         Renaming of methods to (try) follow the standard.
11304         Fixed compare ordinal
11305         Made all memory allocated directly to function instead of via icall function.
11306         Small performance fix in is_in_array function
11307                         
11308  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11309
11310         c (mono_string_Internal_ctor_charp_int_int):
11311         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11312         sindex < 0, throw ArgumentOutOfRangeException instead of
11313         ArgumentNullException.
11314
11315         Added new check for length == 0, however
11316         I need to make it return String.Empty from the C code.
11317         
11318         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11319         that calculate the length for us here.
11320         
11321         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11322         mono_string_new_utf16 with mono_string_new, since value is utf8.
11323
11324 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11325
11326         * object.c: register the object for finalization if needed.
11327         Allocate one more char in the string for the terminating 0 char.
11328
11329 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11330
11331         * class.c, class.h, image.c: check if a type implemenst a destructor.
11332         Use the proper key for array class lookups.
11333         * icall.c: register the icalls in the System.GC class.
11334         * gc.c, gc.h: GC-related functions and icalls.
11335
11336 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11337
11338         * icall.c:
11339         * socket-io.c:
11340         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11341         changed a couple of free () by g_free ().
11342
11343         * decimal.c: one-liner in the comments for decimal2string ().
11344
11345 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11346
11347         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11348
11349 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11350
11351         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11352         * object.c (mono_runtime_invoke_array) : handle null in params
11353
11354 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11355
11356         * string-icalls.c: fixed bug in split (one off bug)
11357
11358 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11359
11360         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11361         * icalls.c: added String::Equals as internal method
11362
11363 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11364
11365         * threads.c: fixed bug in the double interlocked functions
11366
11367 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11368
11369         * threads.c: implemented all of the new interlocked icalls.
11370         * string-icalls.c: fix a bug in insert.
11371         * icalls.c: added the icalls for interlocked, removed old string functions.
11372         
11373 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11374
11375         * loader.c: fix off-by-one error when reading argument names.
11376
11377 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11378
11379         * profiler.c: win32 counter implementation (untested).
11380         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11381         (the latter needs testing and more complete impl. from win32 folks).
11382
11383 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11384
11385         * object.c: mono_array_new_full workaround mono_array_class_get
11386         problem.
11387
11388 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11389
11390         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11391         * object.h (mono_string_chars): Changed casting type.
11392
11393 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11394
11395         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11396                            method signatures to use gunichar2 instead of gint16.
11397
11398 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11399
11400         * object.h, object.c: domain-specific versions of mono_object_new and
11401         mono_array_new.
11402
11403 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11404
11405         * object.c: changed String layout
11406
11407         * string-icalls.c (mono_string_Internal_ctor_chara): added
11408         internal string constructors.
11409
11410 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11411
11412         * threads.c: pass 'this' to the thread start routine.
11413
11414 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11415
11416         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11417         InternalCompareStr don't call twice mono_string_cmp_char for the last
11418         character. Improved performance in mono_string_cmp_char.
11419
11420 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11421
11422         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11423         code into its own library: libmonoruntime.
11424
11425 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11426
11427         * object.h, object.c: changed array format so that szarrays do not
11428         require a bounds structure.
11429         * icall.c, appdomain.c: support for new szarray format.
11430
11431 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11432
11433         * metadata.c: compare also the retuns type when comparing signatures:
11434         we didn't do this as an optimization since really overloaded methods
11435         must differ also in the arguments, but this doesn't work with
11436         low-level IL code (or when using explicit conversion operators: see
11437         bug#23498 for an example).
11438
11439 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11440
11441         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11442
11443 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11444
11445         * icall.c: make MonoType::GetElementType its own icall.
11446
11447 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11448
11449         * icall.c: remove MonoMethod_get_Name().
11450         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11451         object.
11452
11453 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11454
11455         * string-icalls.c: optimized a few methods.
11456
11457 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11458
11459         * icall.c: added all new string internal calls
11460         * string-icalls.c: added, new string internal call implementation.
11461         * object.c: added mono_string_new_size for allocating a string a size
11462
11463 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11464
11465         * object.c (mono_object_isinst): use the same code as in the
11466         optimized x86 version.
11467
11468 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11469
11470         * profiler.c: TSC-based timer code (faster and more accurate).
11471         Not hooked up in configure, yet (set USE_X86TSC to 1).
11472
11473 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11474
11475         * profiler.c, profiler.h: track time spent compiling methods.
11476         * threads.c: track thread creation/destruction.
11477
11478 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11479
11480         * profiler.c, profiler.h, profiler-private.h: profiling interface
11481         and sample implementation. Moved here so that it can be used also by
11482         the jit.
11483
11484 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11485
11486         * reflection.c, reflection.h: keep types and other handles separate in
11487         the hash tables for referred tokens. Add guid for modules.
11488
11489 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11490
11491         * assembly.c: fix bugs found with valgrind.
11492         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11493
11494 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11495
11496         * threads: added icall support for getting current domain for
11497                    the thread.
11498  
11499 2002-04-13  Martin Baulig  <martin@gnome.org>
11500
11501         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11502         (MonoDebugVarInfo): Added `index' field for register based addresses.
11503         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11504         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11505         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11506         `MonoDebugVarInfo *this_var'.
11507
11508         * debug-symfile.c (relocate_variable): New static function to write
11509         a location description for a local variable or method parameter.
11510
11511 2002-04-12  Martin Baulig  <martin@gnome.org>
11512
11513         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11514         stack offset and begin/end scope address of a local variable.
11515         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11516         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11517         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11518
11519         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11520         Added new relocation types for start/end scope of a local variable.
11521
11522 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11523
11524         * object.h: add mono_object_domain() macro.
11525         * reflection.c: handle typespecs.
11526         * icall.c: MonoMethod::get_Name() implementation.
11527
11528 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11529
11530         * icall.c: String::GetHashCode() icall implementation.
11531
11532 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11533
11534         * icall.c: String::IndexOfAny icall.
11535         * object.c, object.h: make array->max_length more useful.
11536         Intrduced mono_object_class() and mono_string_length() macros.
11537
11538 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11539
11540         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11541         instead of g_unichar_isdigit.
11542
11543 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11544
11545         * icall.c: Implement a simple Double.ToString().
11546
11547 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11548
11549         * appdomain.h: only io-layer.h is supposed to be included.
11550         * icall.c: explicitly import environ. Fix warning.
11551
11552 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11553
11554         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11555                 return true even if it's not Daylight Savings time.
11556                 Only return false for the case where the function isn't
11557                 implemented for a plaform (read Windows).
11558
11559 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11560
11561         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11562         data with a mutex.
11563
11564 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11565
11566         * mempool.c (mono_mempool_alloc): only use g_malloc when
11567         absolutely necessary.
11568
11569 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11570
11571         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11572
11573         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11574         (mono_class_proxy_vtable): use domain mempool
11575
11576 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11577
11578         * appdomain.h, appdomain.c: split initialization that requires the
11579         execution engine support into mono_runtime_init().
11580
11581 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11582
11583         * class.c (mono_class_init): don't include vtable inside MonoClass
11584         to save some memory, gather some statistics.
11585         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11586
11587 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11588
11589         * icall.c: internalcall implementation for ValueType.Equals().
11590
11591 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11592
11593         * object.c (mono_message_init): moved 
11594         (mono_runtime_exec_main): new arch. independent impl.
11595         (mono_runtime_invoke_array): new method - like
11596         mono_runtime_invoke, but you can pass an array of objects.
11597         (mono_remoting_invoke): new arch. independent impl.
11598         (mono_message_invoke): new arch. independent impl.
11599         (mono_runtime_class_init): new arch. independent impl.
11600         (mono_runtime_object_init): new arch. independent impl.
11601
11602 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11603
11604         * metadata.c, object.c, reflection.c: documented the exported
11605         functions.
11606
11607 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11608
11609         * icall.c: simpler code to pass the assembly builder data to corlib.
11610         Implement GetNestedTypes() internalcall.
11611
11612 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11613
11614         * class.c: warn if a type can't be loaded.
11615
11616 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11617
11618         * image.h: typedef MonoImageOpenStatus
11619         * types.h: removed unused file
11620         
11621 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11622
11623         * icall.c: Enum_ToObject accepts enum value arguments.
11624
11625 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11626
11627         * class.c: move initialization of properties, events and nested
11628         classes, so that they happen for interfaces, too.
11629
11630 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11631
11632         * icall.c: cleanup some ugly casts in Array_SetValue*.
11633
11634 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11635
11636         * icall.c: the values array fro enums is of the correct type, now.
11637         Implement (correctly) getFullName instead of assQualifiedName for
11638         MonoType.
11639         * reflection.h, reflection.c: added mono_type_get_name ().
11640
11641 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11642
11643         * assembly.c, image.h: for each MonoImage, record from wich assembly
11644         it was loaded.
11645         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11646         Make Type.Assembly work.
11647
11648 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11649
11650         * debug-symfile.h: use char* instead of gpointer to avoid
11651         unnecessary casts.
11652
11653         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11654
11655         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11656         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11657
11658 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11659
11660         * icall.c (mono_message_init): impl. (code cleanup)
11661         (ves_icall_InternalExecute): impl. FieldGetter
11662
11663         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11664         defined we call all (non-static)methods through the vtable. 
11665
11666 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11667
11668         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11669         finalizer even though the memory is still referenced (and the chunk of
11670         memory is not freed).
11671
11672 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11673
11674         * assembly.c: fix brokeness.
11675
11676 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11677
11678         * class.c: kill some warnings. Check explicit interface method
11679         implementation also without considering the namespace.
11680         Load also literal strings in static class data.
11681
11682 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11683
11684         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11685         (default_assembly_name_resolver): Make the resolver take the
11686         "base" directory where the assembly was originally defined, so we
11687         can load DLLs that are in the same directory as the assembly that
11688         is being referenced.
11689
11690 2002-03-28  Dick Porter  <dick@ximian.com>
11691
11692         * file-io.h: 
11693         * file-io.c:
11694         * socket-io.c: 
11695         * unicode.h: 
11696         * unicode.c: Warning cleanups
11697
11698 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11699
11700         * object.h, reflection.h: use the correct type instead of MonoObject.
11701
11702 2002-03-28  Martin Baulig  <martin@gnome.org>
11703
11704         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11705         (mono_debug_update_symbol_file): Initialize classes if necessary.
11706
11707 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11708
11709         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11710         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11711
11712 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11713
11714         * assembly.h: fix function prototype.
11715         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11716         * mono-endian.h: use const cast.
11717
11718 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11719
11720         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11721
11722 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11723
11724         * loader.c: don't assert when a typeref can't be loaded, give
11725         a chance to the runtime to trow an exception instead.
11726         * loader.h: fix warning.
11727
11728 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11729
11730         * class.c (mono_class_proxy_vtable): added proxy support
11731
11732 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11733
11734         * icall.c: removed last of PAL calls, added System.Environment
11735         * file-io.h, file-io.c: MonoIO implementation
11736         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11737
11738 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11739
11740         * appdomain.c: do not use the byte marker in ldstr table lookup.
11741         * debug-helpers.c: allow two ':' to separate class and method name.
11742         * object.c: allocate arrays bounds with the GC, too.
11743         * verify: add a few more checks.
11744
11745 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11746
11747         * reflection.c: output also literal strings. Allocate parameter data
11748         with GC_malloc() (thanks, Martin, for catching this!).
11749
11750 2002-03-26  Martin Baulig  <martin@gnome.org>
11751
11752         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11753         include the `this' offset in the `param_offsets'.
11754
11755 2002-03-25  Martin Baulig  <martin@gnome.org>
11756
11757         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11758         mono_debug_get_class() function to get the classes. Added new
11759         relocation types for arrays and strings.
11760         (mono_debug_get_class): New static function to search in all
11761         referenced assemblies for a metadata token.
11762
11763         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11764
11765 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11766
11767         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11768         hold gc-allocated objects. Make the string heap a stream like the
11769         others. Removed duplicated code when writing stream info.
11770         Added asserts to catch possible buffer overflows. Set the sorted map
11771         for tables that need sorting. Added some documentation.
11772
11773 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11774
11775         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11776         for interned strings and vtables.
11777
11778 2002-03-24  Martin Baulig  <martin@gnome.org>
11779
11780         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11781         it in the array since it was created with g_slist_prepend().
11782
11783 2002-03-24  Martin Baulig  <martin@gnome.org>
11784
11785         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11786         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11787         (mono_debug_method_from_token): Renamed to
11788         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11789         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11790
11791         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11792         relocation types.
11793
11794         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11795
11796 2002-03-24  Martin Baulig  <martin@gnome.org>
11797
11798         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11799         (mono_debug_method_from_token): New func.
11800
11801         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11802         New interncall, calls mono_debug_local_type_from_signature().
11803         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11804         calls mono_debug_method_from_token().
11805
11806 2002-03-23  Martin Baulig  <martin@gnome.org>
11807
11808         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11809         specifies the number of bytes to be converted, not the array size.
11810         Return the number of chars, not the number of bytes.
11811         (ves_icall_iconv_get_chars): The `byteCount' argument
11812         specifies the number of bytes to be converted, not the array size.
11813
11814 2002-03-23  Martin Baulig  <martin@gnome.org>
11815
11816         * reflection.h (MonoReflectionSigHelper): New type.
11817
11818         * reflection.c (mono_reflection_sighelper_get_signature_local),
11819         (mono_reflection_sighelper_get_signature_local): New functions.
11820
11821         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11822         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11823         interncalls.
11824
11825 2002-03-23  Martin Baulig  <martin@gnome.org>
11826
11827         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11828         is_writeable is set.
11829         (mono_raw_buffer_update): New function to write the modified map
11830         back to disk.
11831
11832         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11833
11834         * debug-symfile.c (mono_debug_update_symbol_file): Call
11835         mono_raw_buffer_update() when done writing.
11836
11837 2002-03-23  Martin Baulig  <martin@gnome.org>
11838
11839         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11840
11841         * debug-symfile.c: Added support for arguments and local variables.
11842
11843 2002-03-23  Dick Porter  <dick@ximian.com>
11844
11845         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11846         protected by ifdefs, hence breaking the w32 build.
11847
11848 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11849
11850         * object.c: implement is_interned() the right way.
11851
11852 2002-03-21  Martin Baulig  <martin@gnome.org>
11853
11854         * debug-symfile.[ch]: New files to handle debugging information
11855         files. There's also support to dynamically update these symbol
11856         files to include machine dependent information.
11857
11858 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11859
11860         * threads.c (mono_thread_create): new function to create thread
11861         from C
11862
11863 2002-03-20  Martin Baulig  <martin@gnome.org>
11864
11865         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11866         method is a constructor.
11867         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11868         points to ves_icall_InternalInvoke().
11869
11870 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11871
11872         * file-io.c: Flush shouldn't throw exceptions.
11873
11874 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11875
11876         * file-io.c: FileStream flush support; FileSetLength now
11877         restores file pointer.
11878
11879 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11880
11881         * class.c: set image for pointer classes.
11882
11883 2002/03/19  Nick Drochak <ndrochak@gol.com>
11884
11885         * sysmath.c: Forgot one.
11886
11887 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11888
11889         * sysmath.c: Avoid redefining existing names.
11890
11891 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11892
11893         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11894         handled by runtime as icall rather than dllimport from libm.so
11895         * file-io.c, file-io.h: fixed handle argument type.
11896
11897 2002-03-18  Dick Porter  <dick@ximian.com>
11898
11899         * reflection.c (mono_image_get_type_info): rename interface to
11900         iface, because of "#define interface struct" on windows.
11901
11902 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11903
11904         * class.c, class.h: rename and export mono_ptr_class_get().
11905         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11906         * reflection.c, reflection.h, icall.c: better/saner type name
11907         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11908         method signatures.
11909
11910 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11911
11912         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11913
11914         * icall.c (ves_icall_InternalInvoke): impl.
11915
11916 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11917
11918         * reflection.c: output the interface map table, too.
11919
11920 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11921
11922         * class.c (class_compute_field_layout): separate computation of 
11923         static field layout
11924
11925 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11926
11927         * icall.c: added System.Buffer support.
11928         * file-io.c: moved file icalls from PAL to FileStream.
11929
11930 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11931
11932         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11933
11934 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11935
11936         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11937
11938 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11939
11940         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11941
11942 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11943
11944         * debug-helpers.{c,h}: moved here from monograph some useful functions
11945         to locate a method by name/signature in a class or image. Included
11946         also a small and flexible IL disassembler.
11947
11948 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11949
11950         * reflection.c: fixup tokens in methods with small header size, too.
11951
11952 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
11953
11954         * object.c (mono_string_to_utf8): remove assert(!error), instead
11955         print a warning. 
11956
11957 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
11958
11959         * icall.c: update to the new mono_Array_class_get interface.
11960
11961 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11962
11963         * appdomain.c, object.c: Boehm-GC enable.
11964         * icall.c: make get_data_chunk() support split data requests.
11965         Ensure a class is initialized in more cases. Return only the first
11966         property found in GetProperties() or the compiler gets confused. 
11967         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
11968         * reflection.h, reflection.c: add fixup mechanism for field and method
11969         tokens. Initialize assembly->typeref in a single place. Output
11970         properties after events. Support custom attributes for events, too.
11971         Typo fix for paramter custom attrs.
11972
11973 2002-03-07  Martin Baulig  <martin@gnome.org>
11974
11975         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
11976
11977 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
11978
11979         * class.c (mono_array_class_get): fix. for multi. dim. arrays
11980
11981 2002-03-06  Martin Baulig  <martin@gnome.org>
11982
11983         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
11984         non-zero lower bounds. See testcases #F10-#F13.
11985
11986 2002-03-05  Martin Baulig  <martin@gnome.org>
11987
11988         * exception.c (mono_get_exception_argument_out_of_range): New exception.
11989
11990         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
11991         ves_icall_System_Array_GetValue(), only calculate the absolute array position
11992         here.
11993         (ves_icall_System_Array_SetValue): Likewise.
11994         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
11995         as argument and does the actual work. This function is used when copying a
11996         multi-dimensional array.
11997         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
11998         now do all the widening conversions of value types.
11999         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
12000
12001 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12002
12003         * class.c: remove some magic numbers and use the smbolic names,
12004         instead. Added init_events() to load event info at class init time.
12005         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
12006         and mono_metadata_methods_from_event().
12007         * reflection.h, reflection.c: added support for writing out the evnets
12008         related information.
12009
12010 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
12011
12012         * reflection.h, icall.c: use a different method (GetInterfaces)
12013         to gather interface info and add isbyref, isprimitive and
12014         ispointer to the ves_icall_get_type_info() return value.
12015
12016 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12017
12018         * class.h: stared adding support for events.
12019         * icall.c: split find_members implementation. Added debug icall to get
12020         the address of an object.
12021         * reflection.c: handle TypeBuilders in mono_type_get_object().
12022
12023 2002-03-01  Martin Baulig  <martin@gnome.org>
12024
12025         * icall.c (ves_icall_System_Array_GetLength): This must throw an
12026         ArgumentOutOfRangeException(), not an ArgumentException().
12027         (ves_icall_System_Array_GetLowerBound): Likewise.
12028         (ves_icall_System_Array_GetValue): Improved argument checking.
12029         (ves_icall_System_Array_SetValue): Improved argument checking.
12030
12031 2002-03-01  Martin Baulig  <martin@gnome.org>
12032
12033         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
12034         called with invalid arguments rather than just dying with g_assert().
12035         (ves_icall_System_Array_SetValue): Likewise.
12036         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
12037         raise a NotImplementedException instead.
12038         (ves_icall_System_Array_GetLength): Added argument checking.
12039         (ves_icall_System_Array_GetLowerBound): Added argument checking.
12040
12041 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
12042
12043         * object.h (mono_assert): new macros mono_assert and
12044         mono_assert_not_reached
12045
12046 2002-02-28  Martin Baulig  <martin@gnome.org>
12047
12048         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
12049         and "System::String::IsInterned" to "System::String::_IsInterned".
12050
12051 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
12052
12053         * icall.c: remove hacks for typebuilder. Added icall to create a
12054         modified type from a tybebuilder.
12055         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
12056         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
12057         to create a backing MonoClass for a TypeBuilder.
12058
12059 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12060
12061         * class.c, class.h: more refactoring of class init.
12062         Export mono_class_setup_mono_type() and mono_class_setup_parent().
12063
12064 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
12065
12066         * marshal.c, marshal.h: start of marshaling interface.
12067
12068 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12069
12070         * icall.c: fix order in assembly qualified name icall.
12071
12072 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12073
12074         * class.c: do not free str, since we store it in the hash table.
12075         * reflection.h: add label field to MonoILExceptionInfo.
12076         * reflection.c: handle references to more than one assembly. Handle
12077         case when there isn't a module created in the assembly.
12078
12079 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
12080
12081         * class.c: Fix typo. Start refactoring of class init code.
12082
12083 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
12084
12085         * appdomain.c: exit with 1 on error.
12086         * class.c: we already have the name in MonoClassField.
12087         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
12088         MonoStreamHeader instead of an offset of image->raw_metadata.
12089
12090 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
12091
12092         * appdomain.c (mono_init): Be even more descriptive about the error.
12093
12094 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
12095
12096         * appdomain.c: give the user an informative message when corlib can't
12097         be loaded.
12098
12099 2002-02-26  Martin Baulig  <martin@gnome.org>
12100
12101         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12102         New icall to get the time zone data.
12103
12104 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12105
12106         * reflection.c: set virtual and raw size of section correctly.
12107         * threads.c: transfer domain information to newly created threads.
12108
12109 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12110
12111         * class.c: when instancing a class in a domain, load the default
12112         vaules for static fields from the constant table. Fix System.Enum to
12113         not be an enum.
12114         * icall.c: implement Object::GetType() internalcall. Implemented
12115         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
12116         Fixed checking of binding flags in find_members().
12117         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
12118         * reflection.c: handle enumerations when writing to the constant
12119         table. Use a different object cache for types.
12120
12121
12122 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
12123
12124         * object.c (mono_object_isinst): fix for arrays
12125
12126         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
12127
12128 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12129
12130         * object.c: don't use mprotect ()  and fix intern pool hash table
12131         lookup for big endian systems.
12132
12133 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12134
12135         * icall.c: change type_is_subtype_of () signature.
12136
12137 2002-02-21  Mark Crichton  <crichton@gimp.org>
12138
12139         * rand.c, rand.h: Added random number generator for
12140         System.Security.Cryptography classes.
12141
12142         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12143
12144         * icall.c: Added System.Security.Cryptography calls.
12145
12146 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12147
12148         * class.c, icall.c, metadata.c: better support for pointer types.
12149         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12150         * reflection.c: Add support for getting custom attrs for properties
12151         and simplify some code.
12152
12153 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12154
12155         * icall.c: change getToken () and add custom attribute GetBlob()helper
12156         method.
12157         * reflection.h: add custom attrs array to the reflection builder structures.
12158         * reflection.c: encode and emit custom attributes for all the relevant
12159         reflection objects. Cache fieldref and methodref tokens. Change
12160         mono_image_create_token() interface to take a MonoDynamicAssembly.
12161         More complete custom attributes decoder. Load custom attributes for
12162         Assembly, Field, Method and Constructor objects, too. Make the
12163         returned array an Attribute[] one, not object[]. Added
12164         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12165         custom attribute constructor.
12166
12167 2002-02-20  Dick Porter  <dick@ximian.com>
12168
12169         * icall.c:
12170         * rawbuffer.c:
12171         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12172         problem code out for now).
12173
12174 2002-02-19  Radek Doulik  <rodo@ximian.com>
12175
12176         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12177
12178 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12179
12180         * icall.c: register the GetCustomAttributes method.
12181         * object.c, object.h: add mono_string_new_len ().
12182         * reflection.h, reflection.c: added mono_runtime_invoke(),
12183         mono_install_runtime_invoke(). Added
12184         mono_reflection_get_custom_attrs () to load custom attributes and
12185         create the attribute objects.
12186
12187 2002-02-19  Dick Porter  <dick@ximian.com>
12188         * threads-dummy-types.c:
12189         * threads-dummy-types.h:
12190         * threads-dummy.c:
12191         * threads-dummy.h:
12192         * threads-pthread-types.c:
12193         * threads-pthread-types.h:
12194         * threads-pthread.c:
12195         * threads-pthread.h:  Deleted obsolete files
12196
12197 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12198
12199         * class.c (mono_class_vtable): runtime init the class when we
12200         allocate static class data.
12201
12202         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12203
12204         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12205         and String - but we will need generic marshalling support in the
12206         future. 
12207         (mono_init): set the domain name in a ms compatible way
12208
12209         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12210         String[].
12211
12212 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12213
12214         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12215         for sizes
12216
12217         * appdomain.c (mono_domain_unload): impl.
12218
12219 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12220
12221         * appdomain.c, object.c: fix intern pool implementation.
12222         * class.c: fix alignment code.
12223
12224 2002-02-16  Radek Doulik  <rodo@ximian.com>
12225
12226         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12227         and s2 > s1, just copy lower bytes to be compatible with little
12228         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12229         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12230
12231         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12232         force big_endian to be 1 for big endian machines 
12233         (ves_icall_iconv_new_decoder): ditto
12234
12235 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12236
12237         * socket-io.c (convert_sockopt_level_and_name): If the system
12238         doesn't define SOL_IP or SOL_TCP, get them by hand using
12239         getprotobyname() and caching the values (because this could be a
12240         slow operation).
12241         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12242         Use the appropriate struct when the system does support it. Ie,
12243         not all systems have struct ip_mreqn so use struct ip_mreq when
12244         appropriate.
12245
12246 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12247
12248         * reflection.c: handle finally clauses.
12249
12250 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12251
12252         * socket-io.c: use g_snprintf() instead of snprintf.
12253
12254 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12255
12256         * reflection.c (mono_param_get_objects): Cast second argument to
12257         mono_method_get_param_names to a const char** to silence the
12258         compiler warning.
12259
12260         * appdomain.c (mono_domain_assembly_open): Put parens around the
12261         truth statement in the for-loop.
12262
12263         * unicode.c (iconv_convert): Got rid of a compiler warning about
12264         int i being unused when the system has a new iconv.
12265         (iconv_get_length): Same.
12266
12267         * image.c (load_class_names): Cast the second argument to
12268         g_hash_table_insert() to char* to hush compiler warnings about the
12269         arg being a const.
12270         (mono_image_open): Same here.
12271
12272         * socket-io.c: Don't conditionally include sys/filio.h or
12273         sys/sockio.h here anymore since we now get them from
12274         io-layer/io-layer.h
12275         (inet_pton): If the system doesn't support inet_aton, implement
12276         using inet_addr and also #define INADDR_NONE if it isn't defined
12277         by the system.
12278
12279 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12280
12281         * metadata.c, metadata.h: added function to get packing and size info
12282         of a typedef.
12283         * reflection.h, reflection.c: handle field RVA data. Save info about
12284         the table layout if needed. Assign typedef indexes to all the types
12285         before dumping the info about them to avoid forward reference problems.
12286
12287 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12288
12289         * socket-io.c (convert_sockopt_level_and_name): ifdef
12290         SO_ACCEPTCONN because it is not defined on my system (old debian)
12291
12292 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12293
12294         * opcode.c: use stddef.h to get NULL.
12295
12296 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12297
12298         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12299         for FIONBIO, FIONREAD and SIOCATMARK.
12300         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12301         define INADDR_NONE and besides, inet_addr() is deprecated and
12302         should not be used. Use inet_pton() instead - it also has the
12303         added bonus that it can easily handle IPv6 addresses as well.
12304         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12305
12306 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12307
12308         * decimal.c: remove _MSC_VER conditional.
12309
12310 2002-02-13  Dick Porter  <dick@ximian.com>
12311
12312         * socket-io.c: 
12313         * icall.c: Internal calls for Blocking, Select, Shutdown,
12314         GetSocketOption and SetSocketOption
12315
12316 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12317
12318         * assembly.cs: better resolver: use it instead of some kludgy
12319         code.
12320
12321 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12322
12323         * reflection.c: the best way to speed-up the compiler is to avoid
12324         infinite loops.
12325
12326 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12327
12328         * class.c (mono_class_vtable): changed the object layout
12329         (obj->vtable->class). 
12330         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12331
12332 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12333
12334         * assembly.c: look for assemblies in the assembly dir, too.
12335
12336 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12337
12338         * class.c: fix thinko in mono_class_from_type().
12339
12340 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12341
12342         * exception.h, exception.c: added TypeLoadException.
12343         * object.h, object.c: added mono_array_clone ().
12344         * icall.c: handle throwOnError in AssemblyGetType().
12345         Added Array.Clone().
12346         * opcode.h, opcode.c: use a single value for the opcode val.
12347         Compile fix for non-gcc compilers.
12348
12349 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12350
12351         * opcodes.c, opcodes.h: export interesting info about opcodes.
12352
12353 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12354
12355         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12356         icalls. 
12357
12358         * class.c (class_compute_field_layout): set element_class for enums
12359         (mono_class_create_from_typedef): set element_class for normal classes
12360
12361         * icall.c (ves_icall_System_Enum_get_value): impl.
12362
12363         * class.c (mono_class_create_from_typedef): do not set valuetype
12364         flag for System.ValueType and System.Enum
12365
12366 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12367
12368         * unicode.c (iconv_convert): fix big endian problem.
12369
12370 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12371
12372         * class.c: add asserts if we are ever going to scribble over memory.
12373         * socket-io.c: not all systems have AF_IRDA defined.
12374
12375 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12376
12377         * class.c (class_compute_field_layout): do not consider static
12378         fields to compute alignment
12379
12380 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12381
12382         * appdomain.c (mono_appdomain_get): impl.
12383         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12384
12385 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12386
12387         * icall.c: ignore "file://" prefix when loading an assembly.
12388
12389 2002-01-23  Dick Porter  <dick@ximian.com>
12390
12391         * socket-io.c:
12392         * icall.c:
12393         * Makefile.am: Added socket support
12394
12395 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12396
12397         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12398         code back.  This should return the assemblies that are loaded by
12399         the runtime on behalf of an application domain. 
12400
12401         The current implementation is still broken, it just returns every
12402         assembly loaded, but until we get real applications domain this
12403         will do.
12404
12405 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12406
12407         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12408         AppDomain object.
12409
12410 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12411
12412         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12413         the mono_class_from_name lookup.
12414         (ves_icall_get_parameter_info): ditto.
12415         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12416         method.
12417         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12418
12419 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12420
12421         * class.c: load also nested classes on class init.
12422         System.ValueType instance methods gets passed boxed
12423         values, unless methods in derived classed that get a pointer to the
12424         data.
12425         * icall.c: use better name parsing code in GetType().
12426         * image.c, image.h: add mono_image_loaded ().
12427         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12428         * reflection.c, reflection.h: added mono_reflection_parse_type().
12429
12430 2002-01-22  Veronica De Santis <veron78@interfree.it>
12431
12432         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12433         * threads.c : Added the implementation of internal calls for events
12434         * threads.h : Added prototypes of internal calls for events
12435         
12436 2002-01-21  Radek Doulik  <rodo@ximian.com>
12437
12438         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12439
12440 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12441
12442         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12443         (mono_class_value_size): use min_align
12444
12445 2002-01-20  Dick Porter  <dick@ximian.com>
12446
12447         * threads.h:
12448         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12449         so it compiles on w32.
12450
12451 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12452
12453         * metadata.c (mono_type_stack_size): impl.
12454
12455         * class.c (mono_class_get_field): impl. memberref token
12456
12457 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12458
12459         * icall.h : Added the internal calls mapping for CreateMutex_internal
12460                     and ReleaseMutex_internal.
12461         * threads.h : Added the prototype of mutexes internal calls.
12462         * threads.c : Added the implementations of mutexes internal calls.
12463
12464 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12465
12466         * metaparse.h: removed unused file.
12467         * reflection.c, reflection.h: added stream_data_align () function 
12468         to align data in streams and keep stream aligned. Add support for
12469         exception support in method headers.
12470
12471 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12472
12473         * unicode.c: make iconv_convert () return the number of bytess written
12474         in the output buffer.
12475
12476 2002-01-15  Dick Porter  <dick@ximian.com>
12477         * threads.c: Make the runtime's idea of infinite timeouts coincide
12478         with the class library's
12479
12480         Fix a particularly egregious bug in mono_thread_cleanup(). That
12481         code was so utterly bogus it must have been written on a Monday.
12482
12483 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12484
12485         * reflection.h: add subtypes field to TypeBuilder.
12486         * reflection.c: encode constants for literal fields.
12487         Handle subtypes. Fix user string token (and add a zero byte)
12488         at the end.
12489         
12490 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12491
12492         * class.c (mono_class_init): bug fix: assign slot numbers for
12493         abstract methods.
12494
12495 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12496
12497         * reflection.c: don't try to output a code RVA for abstract methods.
12498         Small fixes for method header format. Output parameter info to the
12499         ParamDef table. Save method overriding info to MethodImpl table.
12500         Fix property support. Allow typedef.extends to be a type in the
12501         building assembly.
12502         * verify.c: fix off-by-one error.
12503
12504 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12505
12506         * class.c: fix mono_class_from_mono_type () for szarray types.
12507         Remove unused cache check in mono_class_from_type_spec().
12508         * icall.c: *type_from_name () functions handle simple arrays and byref.
12509         * reflection.c: handle byref and szarray types. Handle methods without
12510         body (gets P/Invoke compilation working). Handle types and fields in
12511         get_token ().
12512         * reflection.h: add rank to MonoTypeInfo.
12513
12514 2002-01-10  Dick Porter  <dick@ximian.com>
12515
12516         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12517         internal calls
12518
12519 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12520
12521         * icall.c: initialize class in type_from_handle ().
12522         Loop also in parent classes for get_method ().
12523         * reflection.c: properly encode class and valuetype types.
12524         Start on encoding TypeBuilder types. Handle fieldrefs.
12525         Use correct length when registering a user string.
12526         Handle ConstructorBuilder and MonoMethod in get_token ().
12527         Make mono_type_get_object () aware of cached types.
12528         * object.c: back out change to mono_string_new ().
12529
12530 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12531         * object.c: mono_string_new should return a NULL when the string 
12532         passed in is NULL -- not try to deference it.
12533         
12534 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12535
12536         * icall.c: hack to make IsSubType work for TypeBuilders.
12537         * reflection.c: emit constructors before methods.
12538         Retrieve param names in mono_param_get_objects().
12539
12540 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12541
12542         * Makefile.am: fix list of headers and sources so automake 1.5
12543         doesn't complain. Removed \# at end of list.
12544
12545 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12546
12547         * reflection.c: get token for a method ref. Set return type of
12548         constructor to void.
12549         * loader.c: debug message.
12550         * class.c: typo fix.
12551
12552 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12553
12554         * icall.c: fix array init with rank > 1. FindMembers
12555         loops in parent class as well.
12556         * image.c: do not insert nested types in name cache.
12557         * reflection.c: warning fix.
12558         * reflection.h: add override method (for interface impl).
12559
12560 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12561
12562         * metadata.c: fix customattr decoding.
12563
12564 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12565
12566         * rawbuffer.cs: Added native Win32 implementation, avoids using
12567         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12568
12569 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12570
12571         * class.c: make the low-level routines handle the cache.
12572
12573 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12574
12575         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12576
12577 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12578
12579         * class.c: fix mono_array_element_size() for objects.
12580         * class.h, class.c: add properties to MonoClass and load them
12581         at init time.
12582         * icall.c: check with isinst() when assigning a value to an array
12583         instead of requiring the classes to match exactly.
12584         Implemented icall for System.Type::GetType().
12585         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12586         enums. Handle bindingflags when looking for methods and fields.
12587         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12588         and mono_metadata_methods_from_property().
12589         * reflection.h, reflection.c: added structures for propreties,
12590         parameters and enums. Implemented mono_property_get_object() and
12591         mono_param_get_objects().
12592
12593 2001-12-18  Dick Porter  <dick@ximian.com>
12594
12595         * file-io.c: Use mono_string_to_utf16() instead of
12596         mono_string_chars()
12597
12598         * object.c: Added mono_string_to_utf16(), which copies the non
12599         NULL-terminated MonoString into a new double-null-terminated
12600         buffer.
12601
12602 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12603
12604         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12605
12606 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12607
12608         * file-io.c: raise exceptions if handle is invalid.
12609
12610 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12611
12612         * assembly.c: yet another check for mscorlib.
12613         * class.c, class.h: load nesting info for classes.
12614         * icall.c: many new functions to support the Reflection classes.
12615         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12616         * reflection.h, reflection.c: mono_image_create_token(),
12617         mono_assembly_get_object(), mono_type_get_object(),
12618         mono_method_get_object(), mono_field_get_object(): methods to return
12619         objects that parallel the C representation of assemblies, types,
12620         methods, fields.
12621
12622 2001-12-11  Dick Porter  <dick@ximian.com>
12623
12624         * icall.c:
12625         * file-io.c: Internal calls for file IO.
12626
12627 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12628
12629         * tabledefs.h: missing FileAttributes.
12630         * verify.h, verify.c: use is_valid_string () to simplify and check for
12631         valid strings more correctly. Fix warnings and speeling.
12632         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12633         Check code: branches, maxstack, method calls.
12634
12635 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12636
12637         * object.c (mono_object_allocate): removed static, so that the jit
12638         can allocate value types.
12639
12640         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12641
12642 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12643
12644         * class.c: init enum types right away and register the
12645         token->MonoClass map in mono_class_create_from_typedef ().
12646         * verify.h, verify.c: first cut of the verifier.
12647         * pedump.c: add --verify switch to verify metadata tables.
12648         * tabledefs.h: add some missing enums.
12649
12650 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12651
12652         * class.c (mono_install_runtime_class_init): impl.
12653         (mono_class_init): renamed mono_class_metadata_init to
12654         mono_class_init, also removed the metadata_inited flag
12655
12656         * object.c (mono_object_isinst): use faster algorithm
12657
12658 2001-11-30  Radek Doulik  <rodo@ximian.com>
12659
12660         * mono-endian.h: reverted last change
12661         added function prototypes
12662
12663         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12664         add mono-endian.c back
12665
12666         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12667         for unaligned access, I've mistaked it with endianess. I am
12668         sorry.
12669         (mono_read16): fix reverted endianess
12670         (mono_read64): ditto
12671         (mono_read32): ditto
12672
12673 2001-11-30  Dick Porter  <dick@ximian.com>
12674
12675         * exception.c: Implement mono_exception_from_name()
12676
12677 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12678
12679         * metadata.h, metadata.c: remove params_size and locals_size and their
12680         calculation from the metadata code: they are only usefult to the
12681         interp.
12682
12683 2001-11-29  Radek Doulik  <rodo@ximian.com>
12684
12685         * object.c (mono_ldstr): swap bytes here, it's probably not the
12686         best place, but works for me now, I'll redo it once I know mono
12687         better, also note that I add PROT_WRITE and don't reset back, also
12688         note that it's only affects big endians, so x86 should be OK
12689
12690         * mono-endian.h (read16): use just glib macros for both endians
12691
12692         * mono-endian.c: removed as glib macros are used in in
12693         mono-endian.h so we don't need to care about endianess for read
12694         macros as glib does that for us already
12695
12696 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12697
12698         * class.h, class.h: take minimum alignment into consideration so
12699         that the fields of a class remain aligned also when in an array.
12700
12701 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12702
12703         * loader.h, loader.c: add mono_method_get_param_names().
12704         * class.c: 0-init class fields.
12705
12706 2001-11-26  Dick Porter  <dick@ximian.com>
12707
12708         * icall.c:
12709         * threads-types.h:
12710         * threads.c: New file that handles System.Threading on all platforms
12711
12712         * object.c: 
12713         * object.h: Remove the synchronisation struct from MonoObject,
12714         replace it with a pointer that gets initialised on demand
12715
12716         * Makefile.am: Replace all the system-specific threading code with
12717         a single file that uses the new wrapper library
12718
12719 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12720
12721         * class.c, class.h: add mono_install_trampoline() so that the runtime
12722         can register a function to create a trampoline: removes the ugly
12723         requirement that a runtime needed to export arch_create_jit_trampoline.
12724         * object.h, object.c: added mono_install_handler() so that the runtime
12725         can install an handler for exceptions generated in C code (with
12726         mono_raise_exception()). Added C struct for System.Delegate.
12727         * pedump.c: removed arch_create_jit_trampoline.
12728         * reflection.c: some cleanups to allow registering user strings and
12729         later getting a token for methodrefs and fieldrefs before the assembly
12730         is built.
12731         * row-indexes.h: updates and fixes from the new ECMA specs.
12732
12733 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12734
12735         * class.h, class.c: add enum_basetype field to MonoClass.
12736         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12737         to get index in the constant table reated to a field, param or
12738         property.
12739         * reflection.h, reflection.c: handle constructors. Set public-key and
12740         version number of the built assembly to 0.
12741         * row-indexes.h: update from new ECMA spec.
12742
12743 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12744
12745         * class.h, class.c: add a max_interface_id to MonoClass.
12746         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12747         since it's used to do that. Added mono_type_type_from_obj().
12748         Make GetType() return NULL instead of segfaulting if the type was not
12749         found. Handle simple arrays in assQualifiedName.
12750         * object.h: add a struct to represent an Exception.
12751         * reflection.c: output call convention in method signature.
12752         Add code to support P/Invoke methods and fixed offsets for fields.
12753
12754 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12755
12756         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12757         the value.
12758         * icall.c: use mono_array_addr instead of array->vector: fixes the
12759         reflection image writing.
12760         * reflection.c: init call convention byte to 0 in method signature.
12761         Encode the property signature. Don't output property-related methods
12762         twice. Really process the properties for a type (don't cast a field to
12763         a property, my mom always told me that).
12764         Fix 64 bit issues in pointer alignment in a different and more
12765         readable way.
12766
12767 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12768
12769         * loader.h: Removed type class from MonoDefaults, added monotype
12770
12771         * loader.c: Loaded MonoType, removed loading of Type
12772
12773         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12774         and fills in System.Type._impl with a RuntimeTypeHandle rather
12775         than the actual MonoClass *
12776
12777         (ves_icall_type_from_handle): change from type_class to
12778         monotype_class
12779
12780         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12781         implemented
12782
12783         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12784         implemented
12785
12786         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12787
12788         (ves_icall_System_Reflection_Assembly_GetType): implemented
12789
12790         (ves_icall_System_MonoType_assQualifiedName): implemented
12791
12792         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12793
12794 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12795
12796         * assembly.c (mono_assembly_open): Implement a cache for the
12797         assemblies. 
12798
12799         (mono_assembly_close): only destroy the assembly when the last
12800         reference is gone.
12801         
12802 2001-11-09  Dick Porter  <dick@ximian.com>
12803
12804         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12805
12806 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12807
12808         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12809
12810 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12811
12812         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12813         from Martin Weindel.
12814         * object.h: add mono_string_chars ().
12815
12816 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12817
12818         * reflection.c (build_compressed_metadata): Eliminates warnings
12819         and uses 64-bit clean code.
12820
12821         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12822         (mono_type_equal): Change signature to eliminate warnings.
12823
12824 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12825
12826         * icall.c, loader.c: remove the internalcall array constructors.
12827         Changes to match the new MonoArray structure.
12828         * object.h, object.c: an array object doesn't allocate an extra
12829         vector. Add mono_array_new_full () to create jagged arrays easily.
12830
12831 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12832
12833         * metadata.h, metadata.c: add mono_metadata_field_info () to
12834         retreive all the info about a field from vairous tables.
12835         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12836         * class.h, class.c: augment MonoClassField with more info.
12837         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12838         policy and load a field's RVA if needed.
12839
12840 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12841
12842         * class.c (mono_class_metadata_init): create a trampoline for all
12843         virtual functions instead of actually compiling them.
12844
12845 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12846
12847         * class.h, class.c: include name in MonoClassField.
12848         * class.c: fix fundamental type of System.Object and System.String.
12849         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12850         tokens in ldtoken.
12851         * icall.c: remove internalcalls for the Reflection stuff that is now
12852         done in C# code.
12853         * loader.c: mono_field_from_memberref () implementation.
12854         * mono-endian.c: thinko (s/struct/union/g).
12855         * object.c, object.h: make the mono_string_* prototypes actually use
12856         MonoString instead of MonoObject.
12857         * reflection.c, reflection.h: updates for changes in the reflection
12858         code in corlib: we use C structures that map to the actual C# classes.
12859         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12860         fat method header if needed and use the info from the ILGenerator for
12861         methods. Handle fields in types. Misc fixes.
12862
12863 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12864
12865         * class.c (mono_class_metadata_init): bug fix: always allocate
12866         space for static class data
12867
12868 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12869
12870         * class.c (mono_compute_relative_numbering): use relative
12871         numbering to support fast runtime type checks.
12872
12873 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12874
12875         * class.c (mono_class_create_from_typeref): added debugging output
12876         to print class name when MonoDummy is returned instead of real class
12877
12878 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12879
12880         * class.c (mono_class_metadata_init): interface offset table now
12881         contains pointers into the vtable - this is more efficient for the jit
12882
12883 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12884
12885         * class.c (mono_class_metadata_init): use a temporary vtable (the
12886         old algorithm only worked for the interpreter, but not for the jit)
12887
12888 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12889
12890         * loader.c (method_from_memberref): use mono_class_get to get the
12891         class of an array instead of using System.Array directly.
12892         (mono_get_method): also add MEMBERREF methods to the method cache
12893         which usefull for arrays.
12894
12895 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12896
12897         * pedump.c (arch_compile_method): added to compute vtable entry
12898
12899         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12900         number of interfaces.
12901         
12902         * class.h: merged MonoArrayClass into MonoClass
12903
12904         * class.c (mono_class_create_from_typedef): compute the vtable size and
12905         allocate space to include the vtable inside MonoClass
12906         (mono_class_metadata_init): initialize the vtable
12907
12908 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12909
12910         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12911         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12912         * image.c: endian fixes by Laurent Rioux.
12913         * object.h, object.c: rename MonoStringObject to MonoString and
12914         MonoArrayObject to MonoArray. Change some function names to conform to
12915         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12916         guint16* as first argument, so don't use char*.
12917         Provide macros to do the interesting things on arrays in a portable way.
12918         * threads-pthread.c: updates for the API changes and #include <sched.h>
12919         (required for sched_yield()).
12920         * icall.c: updates for the API changes above.
12921         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12922         platforms that need them.
12923
12924 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12925
12926         * class.c: set the correct type for all the fundamental
12927         type when loading the class.
12928
12929 2001-10-05  Dick Porter  <dick@ximian.com>
12930
12931         * threads-pthread.c (pthread_mutex_timedlock): Simple
12932         compatibility version for C libraries that lack this call.
12933
12934 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12935
12936         * class.c: MonoTypes stored in MonoClass are stored as
12937         fundamental MonoTypes when the class represents a
12938         fundamental type (System.Int32, ...).
12939         The TypeHandle return by ldtoken is a MonoType*.
12940         * icall.c: ves_icall_get_data_chunk () write out all the
12941         PE/COFF stuff. Implement ves_icall_define_method (),
12942         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12943         * image.c: properly skip unknown streams.
12944         * loader.h, loader.c: add type_class to mono_defaults.
12945         * metadata.c, metadata.h: export compute_size () as
12946         mono_metadata_compute_size () with a better interface.
12947         Typo and C&P fixes.
12948         * pedump.c: don't try to print the entry point RVA if there is no entry point.
12949         * reflection.c, reflection.h: many cleanups, fixes, output method
12950         signatures and headers, typedef and typeref info, compress the metadata
12951         tables, output all the heap streams, cli header etc.
12952         * row-indexes.h: typo fixes.
12953
12954 2001-10-04  Dick Porter  <dick@ximian.com>
12955
12956         * object.h: Add a synchronisation mutex struct to MonoObject
12957
12958         * object.c (mono_new_object): Initialise the object
12959         synchronisation mutexes
12960
12961         * icall.c: System.Threading.Monitor internal calls
12962         
12963         * threads-pthread.h:
12964         * threads-pthread.c: System.Threading.Monitor internal calls
12965
12966         * threads-types.h: New file, includes the system-specific thread
12967         structures
12968         
12969         * threads-pthread-types.h:
12970         * threads-pthread-types.c: New files, handle pthread-specific
12971         synchronisation types
12972
12973         * threads-dummy-types.h: 
12974         * threads-dummy-types.c: New files of dummy support for
12975         thread-specific types
12976
12977         * metadata.c:
12978         * image.c:
12979         * pedump.c: include mono-endian.h not endian.h
12980         
12981         * Makefile.am: More threads files.
12982         Name mono-endian.h not endian.h
12983
12984 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
12985
12986         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
12987         stuff and implement a few more bits.
12988         * icall.c: a field needs to be dereferenced twice. Do not use the same
12989         name for two variables in the same scope.
12990         * image.c, image.h: cleanups.
12991
12992 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
12993
12994         * class.c (mono_class_metadata_init): bug fix: compute the right size
12995
12996 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
12997
12998         * icall.c: implemented some of the Reflection internalcalls.
12999         * image.c, image.h: start writing out the PE/COFF image.
13000         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
13001         that does the reverse than decode_blob_size ().
13002         * object.c: use mono_metadata_encode_value (). Move here
13003         temporary implementation of mono_string_to_utf8 ().
13004         * rawbuffer.c: make malloc_map static.
13005
13006 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13007
13008         * metadata.c: fix type comparison for arrays.
13009         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
13010         Added a couple of new classes to monodefaults.
13011         * icall.c: added a couple of Reflection-related internalcalls.
13012         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
13013         Added a byval_arg MonoType to MonoClass.
13014
13015 2001-09-28  Dick Porter  <dick@ximian.com>
13016
13017         * icall.c:
13018         * threads-pthread.h: 
13019         * threads-pthread.c: Implemented internal calls for
13020         LocalDataStoreSlot operations.  Applied mutexes around all shared
13021         data.  Reworked the thread creation and Start() operations to
13022         avoid a race condition.
13023         
13024         * threads-dummy.h:
13025         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
13026
13027 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
13028
13029         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
13030
13031 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
13032
13033         * class.c, loader.c: warn and return NULL instead of erroring out.
13034         * icall.c: added System.AppDomain::getCurDomain().
13035         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
13036
13037 2001-09-25  Dick Porter  <dick@ximian.com>
13038
13039         * threads-pthread.h:
13040         * threads-pthread.c: Implemented timed thread joining and added
13041         System.Threading.Thread::Join_internal internal call
13042
13043         * icall.c: Added System.Threading.Thread::Join_internal internal call
13044
13045         * threads-dummy.h:
13046         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
13047
13048 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
13049
13050         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
13051         mono_string_intern () to implement the semantics of the ldstr opcode
13052         and the interning of System.Strings.
13053         * icall.c: provide hooks to make String::IsIntern and String::Intern
13054         internalcalls.
13055
13056 2001-09-23  Dick Porter  <dick@ximian.com>
13057
13058         * threads-dummy.c: 
13059         * threads-dummy.h: New files of dummy threading routines
13060
13061         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
13062         support code based on system specifics
13063
13064         Rename PTHREAD_LIBS to THREAD_LIBS
13065         
13066 2001-09-23  Dick Porter  <dick@ximian.com>
13067
13068         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
13069         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
13070         internal calls.
13071         (mono_thread_init): Set up a Thread object instance to return when
13072         the main thread calls Thread.CurrentThread
13073         (mono_thread_cleanup): Wait for all subthreads to exit
13074
13075         * icall.c: New internal calls for System.Threading.Thread::Sleep
13076         (including Schedule) and CurrentThread
13077
13078         * threads.h: New file, to insulate thread-specific stuff from the
13079         rest of the code
13080
13081 2001-09-21  Dick Porter  <dick@ximian.com>
13082
13083         * threads-pthread.h: 
13084         * threads-pthread.c: New file, for handling pthreads-style
13085         threading support.  Start() now starts a new thread and executes
13086         the ThreadStart delegate instance.
13087
13088         * icall.c: Added the internalcall for
13089         System.Threading.Thread::Start_internal
13090
13091         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
13092
13093 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
13094
13095         * loader.c: work around the different signatures for delegates
13096         constructors csc generates in compiled code vs the ones compiled in mscorlib.
13097
13098 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13099
13100         * class.h, class.c: add mono_class_get_field_from_name ().
13101         * *: Fix C comments and other ANSI C issues.
13102
13103 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
13104
13105         * endian.h, assembly.c: fix some endianness issues.
13106
13107 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
13108
13109         * loader.h, load.c: add delegate_class to mono_defaults.
13110         Handle runtime provided methods in mono_get_method ().
13111
13112 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
13113
13114         * loader.c (mono_get_method): use pinvoke for internal call
13115
13116         * icall.c: use pinvoke for internal call
13117
13118         * loader.c (method_from_memberref): set the method name
13119
13120 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
13121
13122         * metadata.c: help the compiler generate better code for
13123         mono_class_from_mono_type ().
13124
13125 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
13126
13127         * class.c (mono_class_metadata_init): delayed computing of the
13128         class size to mono_class_metadata_init ()
13129
13130 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
13131
13132         * class.c, class.h: add an interfaces member to MonoClass.
13133         * image.c, image.h: add assembly_name field to MonoImage
13134         from the assembly table.
13135         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
13136
13137 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13138
13139         * class.c: Handle Array in mono_class_from_mono_type ().
13140         * metadata.c, pedump.c: some endian fixes.
13141
13142 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13143
13144         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13145         * metadata.c: fix small problem introduced with the latest commit.
13146
13147 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13148
13149         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13150         We don't need a MonoMetadata pointer anymore to compare signatures in
13151         mono_metadata_signature_equal (), update callers.
13152         Reduced memory usage an number of allocations for MonoMethodHeader and
13153         MonoMethodSignature.
13154
13155 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13156
13157         * metadata.c: added compare for szarray.
13158
13159 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13160
13161         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13162         and add a couple more types to it and mono_defaults. Give an hint on
13163         classes that need implementing in our corlib and are referenced
13164         in mscorlib.
13165
13166 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13167
13168         * class.h, class.c: keep track if a class is also an Enum.
13169         * loader.c: Implement a couple more types for use in libffi
13170         marshalling. Gives better diagnostics when failing to dlopen
13171         a library. Set method->klass for P/Invoke methods, too.
13172
13173 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13174
13175         * class.c, class.h: add a MonoType this_arg to MonoClass that
13176         represents a pointer to an object of the class' type that
13177         can be used by the interpreter and later the type cache.
13178         Add best guess alignment info for valuetype objects.
13179
13180 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13181
13182         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13183         into MonoType: one less level of indirection and allocation and
13184         simplifies quite a bit of code. Added cache for MonoTypes that are
13185         used frequently, so that we don't need to allocate them all the time.
13186
13187 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13188
13189         * class.c (mono_class_create_from_typedef): System.Enum is also a
13190         value type, although it does not derive from System.ValueType
13191         (maybe a bug in the ms compiler?)
13192
13193         * metadata.c (mono_type_size): return the right size for value types
13194
13195         * loader.c (mono_get_method): only initialize method header if not abstract
13196
13197         * class.c (mono_class_from_mono_type): use mono_default values. 
13198
13199 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13200
13201         * *: use MonoClass pointers instead of <type_tokens>
13202         
13203         * class.h: new flag: metadata_inited.
13204
13205         * class.c (mono_class_metadata_init): impl.
13206         (mono_class_instance_size): impl.
13207         (mono_class_data_size): impl.
13208
13209 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13210
13211         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13212         MonoClass now has the name and name_space fields. 
13213         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13214         mono_get_method () takes and optional MonoClass as argument.
13215         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13216         instead that takes advantage of a map from class names to typedef
13217         tokens in MonoImage.
13218
13219 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13220
13221         * metadata.c: zero is not a valid alignment boundary.
13222         Merge MONO_TYPE_VOID in default decoding code.
13223
13224 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13225
13226         * image.h: merged MonoMetadata into MonoImage
13227
13228         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13229         identify the type of elements.
13230
13231 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13232
13233         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13234         * cil-coff.h: split MonoMSDOSHeader and add size info.
13235         * image.c: add some consistency checks.
13236         * metadata.c: fix row size computation: one programmer
13237         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13238         add explanation for the locator routine.
13239         Fix decoding of size in method header.
13240         
13241 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13242
13243         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13244         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13245         function from gnome-libs.  This uses the right path separator
13246         based on the OS, and also works around a bug in some systems where
13247         a double slash is not allowed. 
13248         (default_assembly_name_resolver): Use g_concat_dir_and_file
13249         (mono_assembly_open): ditto.
13250
13251 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13252
13253         * metadata.c (mono_metadata_signature_equal): impl.
13254
13255         * *: void is now a realy MonoType (instead of using NULL)
13256         
13257         * metadata.c (do_mono_metadata_parse_type): use
13258         mono_metadata_parse_type to parse void value.
13259
13260 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13261
13262         * metadata.c, metadata.h: in the signature and method header store
13263         only the space required for holding the loca vars and incoming arguments.
13264
13265 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13266
13267         * metadata.c (do_mono_metadata_parse_type): treat void like any
13268         other type (instead of assigning NULL);
13269
13270 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13271
13272         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13273
13274 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13275
13276         * image.c (do_mono_image_open): added a cache for arrays.
13277
13278 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13279
13280         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13281         decode a single column from a row in a metadata table and changes
13282         to take advantage of it in the typedef locator (gives a nice speed up).
13283         Store offset info for function params.
13284
13285 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13286
13287         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13288
13289 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13290
13291         * assembly.c: how could mono_assembly_close () had ever worked?
13292         * metadata.c, metadata.h: provide offset info for local vars.
13293         Implement mono_type_size () to take care of alignment as well
13294         as size (it was mono_field_type_size in cli/class.c before).
13295
13296 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13297
13298         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13299
13300         * assembly.h (CORLIB_NAME): set to corlib.dll
13301
13302         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13303
13304 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13305
13306         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13307         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13308         tokentype.h: massive namespace cleanup.
13309
13310 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13311
13312         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13313
13314 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13315
13316         * metadata.c (mono_metadata_free_type): added check for type !=
13317         NULL (void) before calling mono_metadata_free_type()
13318
13319 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13320
13321         * metadata.h, row_indexes.h: added header with enumerations to use
13322         to index in the columns from tables in metadata and to decode coded
13323         tokens: we should start using this instead of embedding magic numbers
13324         all over the code.
13325
13326 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13327
13328         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13329         Move metadata_t info from cli_image_info_t to MonoImage, where
13330         it's easily accessible. Changed all the uses accordingly.
13331         Added the method and class caches to MonoImage.
13332         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13333         and mono_metadata_decode_value () signature to be more consistent
13334         with the other parse functions (and simplify code). Taken advantage
13335         of zero-length array allocation with GCC. Removed reduntant (and
13336         wrong) MonoFieldType struct and use MonoParam instead. Changed
13337         mono_metadata_parse_field_type () to use common code for parsing.
13338         Added mono_metadata_typedef_from_field () and
13339         mono_metadata_typedef_from_method () to lookup a typedef index from a
13340         field or method token.
13341         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13342
13343 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13344
13345         * metadata.c (mono_metadata_parse_field_type): Implement. 
13346         (do_mono_metadata_parse_type): Split engine from
13347         mono_metadata_parse_type, so that we can create smaller structures
13348         for things that just have one pointer to the MonoType (look at
13349         the MonoFieldType)
13350
13351 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13352
13353         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13354         as Jan Gray found out, it is incorrect. 
13355
13356 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13357
13358         * assembly.c: Implement asssembly loading.  This loads an image
13359         and loads all the referenced assemblies.  Come to think of it, we
13360         could always do lazy loading of the assemblies. 
13361
13362         * image.c (mono_image_open): Keep loaded images in a hashtable.
13363
13364         * image.h (MonoImage): Add reference count.
13365
13366 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13367
13368         * assembly.c (mono_assembly_open): Keep track of the file name in
13369         case the assembly has no ASSEMBLY table.
13370
13371         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13372         from get.c here.
13373
13374 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13375
13376         * metadata.c, metadata.h: decode local vars in method header
13377         parse function. Change callers accordingly.
13378
13379 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13380
13381         * metadata.h, cil-coff.h: protect against multiple inclusion.
13382         Added some new structures to hold information decoded from metadata:
13383         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13384         and relevant decoding/free functions.
13385         * metadata.c: implement decoding functions. Add warning for out of bounds
13386         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13387         all the info about a method signature and invocation. Remove check on
13388         uninitialized local var in parse_mh() and fix memory leak.
13389
13390 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13391
13392         * metadata.h: More macros.
13393
13394         * tokentype.h: New file.
13395
13396 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13397
13398         * assembly.c: added a consistency check and initialize
13399         some structures with g_new0().
13400         * metadata.c: fixed a couple more bugs in table size computation
13401         and add other checks for out-of bound access to metadata.
13402
13403 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13404
13405         * metatada.c: fix bugs computing table sizes. Spew a
13406         warning when index in string heap is out of bounds.
13407
13408 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13409
13410         * metadata.h: Add a couple of macros to manipulate tokens. 
13411
13412 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13413
13414         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13415         cli_section_tables).
13416
13417 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13418
13419         * metadata.c (mono_metadata_user_string): New function, provides
13420         access to the UserString heap. 
13421
13422 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13423
13424         * metadata.c: Add inline documentation.
13425
13426 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13427
13428         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13429         files. 
13430
13431 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13432
13433         * typeattr.h: New file, TypeAttribute flags. 
13434
13435 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13436
13437         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13438         mono_assembly_ensure_section): Section loading code.
13439         (load_section_tables): Load the sections.
13440
13441         * mono/metadata/metadata.c (mono_metadata_locate_token,
13442         mono_metadata_locate): Functions to locate the information
13443         definition given a token or a table and an index.
13444         (mono_metadata_compute_table_bases): New.
13445         (compute_size): New function to compute the sizes of the various
13446         tables.
13447
13448         * mono/metadata/metadata.h: Finish listing the different index
13449         types. 
13450
13451         * mono/metadata/pedump.c: Improve to dump new information.
13452
13453 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13454
13455         * mono/metadata/metadata.c: Entered all the tables matching
13456         Beta2. 
13457
13458         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13459