Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
3
4         * marshal.c, loader.c, class-internals.h, reflection.c:
5         store the emthod data for a wrapper in an array instead of a list.
6
7 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
8
9         * marshal.c: change the code to allocate memory more
10         conservatively for method wrappers.
11
12 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
13
14         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
15         fields from MonoClass to the marshal info structure where they belong.
16
17 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18
19         * class.c, object.c, class-internals.h, marshal.c: rearrange
20         some fields and tweak some types to lower memory usage.
21
22 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
23
24         * threads.c (signal_thread_state_change): Handle the case when the
25         target thread is the current thread.
26
27         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
28
29         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
30         emit_ptr_to_object_conv. 
31
32         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
33         marshalling. Fixes #71352.
34
35 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
36
37         * metadata.h, blob.h: move table enum to blob.h so it can be included
38         in any header.
39         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
40         cut the size of MonoImage/MonoDynamicImage.
41
42 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
43
44         * profiler.c (mono_profiler_install_simple): Fix default arguments.
45
46 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
47
48         * reflection.c, reflection.h, icall.c: add a function to check
49         if an attribute type is defined for a metadata object.
50
51 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
52
53         * object-internals.h: Added some needed fields from StringBuilder class.
54         * marshal.c: Set the maxCapacity when creating a StringBuilder.
55
56 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
57
58         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
59         threads before shutting down the runtime.
60
61         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
62
63 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
64
65         * object-internal.h, threads.c: implement stacksize and 
66         parameterized thread start functionality (requires
67         matching corlib). Marked broken code for later removal.
68
69 2005-01-12  Martin Baulig  <martin@ximian.com>
70
71         * class-internals.h (MonoGenericClass): Moved the `initialized'
72         flag to MonoDynamicGenericClass, removed `init_pending'.
73         (MonoGenericInst): Added `is_reference' flag.
74
75 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
76
77         * reflection.c (mono_image_create_pefile): Only set the pe_offset
78         inside the MSDOS header. Fixes #71201.
79
80         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
81         gc thread.
82         (mono_domain_finalize): Ditto.
83
84 2005-01-12  Martin Baulig  <martin@ximian.com>
85
86         * class.c (mono_get_shared_generic_class): Use the cache for
87         non-dynamic generic classes.
88
89         * class-internals.h (mono_class_create_generic_2): Removed
90         function prototype, this function is now static inside class.c.
91
92         * class.c (mono_class_create_generic_2): Made this static, only
93         call it from mono_class_init() and mono_class_setup_parent().
94         (collect_implemented_interfaces_aux): Call mono_class_init() on
95         the interfaces we collect.
96         (mono_class_setup_vtable): Call mono_class_init (class->parent).
97
98 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
99
100         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
101         it a real thread handle.
102
103         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
104         MonoJitExceptionInfo, since each catch clause needs its own variable.
105         
106 2005-01-11  Dick Porter  <dick@ximian.com>
107
108         * image.c (mono_pe_file_open): New variant on mono_image_open()
109         that does not set up the CLI metadata; used for FileVersionInfo so
110         it can get the data for windows binaries too.
111         
112         * process.c (process_read_string_block): Don't read off the end of
113         the StringTable block.
114
115         These both fix bug 70766.
116
117 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
118
119         * gc.c: set some fields to NULL at GC cleanup time.
120         * threads.c: if we quit the main thread, call exit ().
121
122 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
123
124         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
125
126 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
127
128         * threads.h, threads.c, object.c: added accessor and settor for
129         main_thread. Handle it specially when exiting from it: wait
130         for other foreground threads to exit.
131
132 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
133
134         * process.c, verify.c: remove some bloat.
135
136 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
137
138         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
139         the calling convention to cdecl under win32.
140
141 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
142
143         * object.c (mono_object_get_size): New function to get the size of
144         an object instance.
145
146         * profiler.c (simple_allocation): Use above.
147
148 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
149
150         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
151         ves_icall_System_AppDomain_getRootDomain (as it's not required to
152         get an appdomain by it's id and we can't assume the root's id is 0).
153         * domain-internals.h: Change the function prototype to match.
154         * icall.c: Change the icall table for AppDomain.
155
156 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
157
158         * locales.c (string_invariant_compare_char): Only compute
159         GUnicodeTypes in the case where we need them.  Test for ordinality
160         first and return if so.
161
162         From the commit:
163
164                 /*
165                  * FIXME: here we must use the information from c1type and c2type
166                  * to find out the proper collation, even on the InvariantCulture, the
167                  * sorting is not done by computing the unicode values, but their
168                  * actual sort order.
169                  */
170
171 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
172
173         * loader.c: for P/Invoke methods, allow the "Internal" shared
174         library name to refer to the calling process symbol namespace.
175
176 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
177
178         * Makefile.am: Add the security manager to the build.
179         * security-manager.c|h: New. Initialization of the security manager.
180
181 2005-01-07  Dick Porter  <dick@ximian.com>
182
183         * threads.c: 
184         * monitor.c: Update thread state during Monitor and WaitHandle
185         waits.  Fixes bug 71031.
186
187 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
188
189         * reflection.c (property_encode_signature): Correctly handle when the
190         property has no methods.
191
192 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
193
194         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
195         
196         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
197         fields from mb, not rmb. Fixes #71017.
198
199         * marshal.c (emit_ptr_to_str_conv): Add support for 
200         ByValTStr -> string conversion. Fixes #71015.
201
202         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
203
204         * mempool.c (mono_mempool_contains_addr): New helper function.
205
206 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
207
208         * metadata.c (mono_metadata_compute_size): Fix size calculation of
209         HasSematics encoded fields.
210         
211         * metadata.c (mono_type_to_unmanaged): Improve error message for 
212         invalid string marshalling.
213
214         * metadata.c: Fix warnings.
215         
216 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
217
218         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
219         profiler support.
220
221 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
222
223         * domain.c object.c domain-internals.h: Revert part of r38077 since the
224         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
225         tests.
226
227 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
228
229         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
230         so methods containing these can be AOTed.
231
232 2005-01-03  Martin Baulig  <martin@ximian.com>
233
234         * loader.c (find_method): Removed the hack for generic instances.
235         (method_from_memberref): If our parent is a generic instance, pass
236         its generic type definition to find_method() and then inflate the
237         method.
238         (mono_get_method_constrained): Pass the generic type definition to
239         find_method() and inflate the method later.
240
241         * class-internals.h (MonoStats): Added `generic_class_count'.
242
243         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
244         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
245
246         * reflection.c (mono_custom_attrs_from_params): Don't ignore
247         generic type definitions.
248
249 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
250
251         * loader.c icall.c: Fix warnings.
252
253 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
254
255         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
256         blittable types. Fixes #70864.
257
258 2004-12-29  Martin Baulig  <martin@ximian.com>
259
260         * icall.c
261         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
262
263         * reflection.c (mono_method_get_object): Create a
264         "System.Reflection.MonoGenericMethod" for inflated methods; don't
265         call mono_get_inflated_method().
266
267         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
268
269 2004-12-27  Martin Baulig  <martin@ximian.com>
270
271         * class-internals.h (MonoMethod): Added `is_inflated' flag.
272         (MonoMethodInflated): Added `inflated' field.
273
274         * class.c (mono_class_inflate_generic_method): Don't really
275         inflate the method here; just set the `is_inflated' flag in the
276         MonoMethod.
277         (mono_class_get_inflated_method): Actually inflate the method here
278         if it's not already inflated; we use the MonoMethodInflated's new
279         `inflated' field as a cache.
280
281 2004-12-26  Martin Baulig  <martin@ximian.com>
282
283         * class.c
284         (inflate_generic_class): Moved some code out of inflate_generic_type().
285         (mono_class_inflate_generic_method): If we're already inflated,
286         inflate the context and use the declaring method; ie. make sure
287         the declaring method of an inflated method is always the generic
288         method definition.
289         (mono_class_create_from_typedef): Create
290         `class->generic_container->context->gclass'.
291
292 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
293
294         * metadata-internals.h, marshal.c, reflection.c: More
295         MonoGHashTable->GHashTable.
296
297         * domain-internals.h, class.c: Change MonoGHashTable's into
298         GHashTables for some cases where no gc stuff is used
299
300         All users: update apis
301
302 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
303
304         * metadata.c (builtin_types): Make this `const'. Makes this get
305         put into the shareable section.
306         (mono_metadata_init): Casts to make gcc happy.
307
308 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
309
310         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
311
312 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
313
314         * icall.c: Added an internal call to retrieve the position and length
315         of assembly-level declarative security attributes (RequestMinimum, 
316         RequestOptional and RequestRefuse). This is used by the Assembly class
317         to re-create the corresponding permission sets.
318
319 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
320
321         * marshal.c: fix the stelemref wrapper to be type correct
322         (and faster).
323
324 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
325
326         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
327         to do key & 0x7fffffff. Hashtable already does this. It just
328         results in longer code.
329
330 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
331
332         * appdomain.c: Bump corlib version.
333         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
334         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
335         * reflection.c|h: Add functions to get declarative security infos
336         (blob position and length) for assemblies, classes and methods.
337
338 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
339
340         * reflection.c: sort the constant table (bug #70693).
341
342 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
343
344         * object-internals.h, threads.c, domain.c: add accessors for
345         the MonoThread and MonoDomain tls keys.
346
347 2004-12-18  Martin Baulig  <martin@ximian.com>
348
349         * class.c (inflate_generic_type): If we're inflating a generic
350         instance, set `ngclass->context->container = context->container';
351         ie. the container we inflated into.
352
353         * metadata.c (mono_metadata_parse_generic_param): Reflect above
354         inflate_generic_type() changes.
355
356 2004-12-17  Martin Baulig  <martin@ximian.com>
357
358         * class-internals.h
359         (MonoGenericClass): Replaced `MonoType *generic_type' with
360         `MonoClass *generic_class'.  Removed `dynamic_info'; if
361         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
362         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
363
364 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
365
366         * exception.c (mono_exception_from_token): New helper function.
367
368 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
369
370         * assembly.c (mono_assembly_load_with_partial_name): Call 
371         mono_assembly_loaded before invoking the preload hooks. Fixes
372         #70564.
373
374         * object-internals.h (MonoThread): Change culture_info and 
375         ui_culture_info into an array.
376
377         * threads.c: Cache culture info objects from more than one appdomain.
378
379         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
380         current UI culture.
381
382 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
383
384         * threads.h threads.c appdomain.c: Clear the culture_info field of
385         all threads during unloading if they point to an object in the dying
386         appdomain.
387
388 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
389
390         * culture-info.h (TextInfoEntry): New struct
391         * object-internals.h: sync with managed
392         * locales.c: fill the `text_info_data' field
393         * culture-info-tables.h: update
394
395 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
396
397         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
398         collector.
399
400 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
401
402         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
403         (ves_icall_ModuleBuilder_getMethodToken): Ditto
404
405 2004-12-12  Martin Baulig  <martin@ximian.com>
406
407         * mono-debug-debugger.c (write_type): If we're an enum and the
408         builtin types have already been initialized, call mono_class_init().
409
410 2004-12-11  Martin Baulig  <martin@ximian.com>
411
412         * metadata.c (mono_metadata_load_generic_params): Added
413         `MonoGenericContainer *parent_container' argument; automatically
414         compute `container->is_method'; pass the correct owner to
415         get_constraints().      
416
417         * reflection.c (compare_genericparam): Sort the GenericParam table
418         according to increasing owners. 
419
420 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
421
422         * profiler.c: allow disabling the default profiler.
423
424 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
425
426         * decimal.c, icall.c: allow disabling System.Decimal support.
427
428 2004-12-09  Marek Safar <marek.safar@seznam.cz>
429
430         * reflection.c: Add support for null attribute arguments.
431
432 2004-12-09  Martin Baulig  <martin@ximian.com>
433
434         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
435         names to get rid of compiler warnings.
436
437 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
438
439         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
440         mono_marshal_load_type_info (). Fixes #69625.
441         (mono_marshal_get_ptr_to_struct): Likewise.
442
443 2004-12-08  Martin Baulig  <martin@ximian.com>
444
445         * mono-debug.h: Bumped version number to 47.
446
447         * mono-debug-debugger.c
448         (mono_debugger_event_handler, mono_debugger_event): Take two
449         guint64 arguments insteed of a gpointer and a guint32.  
450
451 2004-12-08  Martin Baulig  <martin@ximian.com>
452
453         * debug-mono-symfile.h
454         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
455         `address' to `native_offset'.
456
457 2004-12-08  Martin Baulig  <martin@ximian.com>
458
459         * class.c (mono_class_create_from_typespec): Only inflate if we
460         either have `context->gclass' or `context->gmethod'.
461
462 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
463
464         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
465
466         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
467
468         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
469
470         * reflection.c (mono_assembly_get_object): Remove the workaround put
471         in for the release.
472         
473         * appdomain.c: Use the corlib_internal field from MonoAssembly.
474
475         * appdomain.c: Bump corlib version.
476
477         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
478         be visible in other appdomains.
479
480 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
481
482         * threads.c: Interlocked inc and dec for longs were messed up,
483         use a KISS based impl for this. Fixes 70234
484
485 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
486
487         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
488
489 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
490
491         * icall.c: fix to follow policy not to allow struct
492         arguments in icalls.
493
494 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
495
496         * process.c: make the patch that handles spaces in file paths work
497         on mono/windows too.
498
499 2004-12-06  Martin Baulig  <martin@ximian.com>
500
501         * class.c (mono_class_create_generic): Call
502         mono_class_setup_supertypes() if we're dynamic.
503         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
504
505 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
506
507         * object-internals.h: Add new fields to MonoThread.
508
509         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
510
511         * icall.c threads-types.h threads.c: Add new icalls.
512
513         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
514
515         * object-internals.h (MonoReflectionAssembly): Sync object layout with
516         managed side.
517
518         * appdomain.c: Bump corlib version.
519
520         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
521         internal assemblies. Fixes #69181.
522
523 2004-12-05  Martin Baulig  <martin@ximian.com>
524
525         * class.c (mono_class_inflate_generic_signature): Make this a
526         no-op if `context' is NULL or we don't have any type parameters;
527         also copy `sentinelpos'.        
528
529 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
530
531         * image.c: Add unbox_wrapper_cache.
532
533         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
534
535         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
536         function generator.
537         
538         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
539         Fixes #70173.
540
541         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
542         
543 2004-12-04  Martin Baulig  <martin@ximian.com>
544
545         * loader.c (mono_method_get_signature_full): New public function;
546         like mono_method_get_signature(), but with an additional
547         `MonoGenericContext *' argument.
548
549         * class.c (mono_class_inflate_generic_signature): Formerly known
550         as inflate_generic_signature(); make this public.
551
552 2004-12-04  Martin Baulig  <martin@ximian.com>
553
554         * metadata.c
555         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
556         instead of a `MonoGenericContainer *'.  
557         (mono_metadata_parse_array_full): Likewise.
558         (mono_metadata_parse_signature_full): Likewise.
559         (mono_metadata_parse_method_signature_full): Likewise.
560         (mono_metadata_parse_generic_inst): Likewise.
561         (mono_metadata_parse_generic_param): Likewise.
562         (mono_metadata_parse_mh_full): Likewise.
563         (mono_type_create_from_typespec_full): Likewise.
564
565 2004-12-03  Martin Baulig  <martin@ximian.com>
566
567         * class-internals.h (MonoGenericContainer): Replaced the
568         `MonoGenericContext * pointer with a `MonoGenericContext'
569         structure and made it the first element.
570
571 2004-12-03  Martin Baulig  <martin@ximian.com>
572
573         * class.c
574         (inflate_generic_type): Set the `context->container' when creating
575         a new MonoGenericContext.
576         (mono_class_inflate_generic_method): Likewise.
577         (mono_class_create_from_typespec): Just use `context->container'
578         to get the container.
579
580         * loader.c (method_from_methodspec): Set `context->parent' from
581         `context->container' - and if that's a method container, use its
582         parent.  Also set the `context->container' when creating a new
583         MonoGenericContext.
584         (mono_get_method_from_token): Use just `context->container' to get
585         the container.
586
587         * metadata.c (do_mono_metadata_parse_generic_class): Also set
588         `gclass->context->container'.
589
590         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
591         the `context->container' when creating a new MonoGenericContext.
592
593 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
594
595         * reflection.c (compare_genericparam): Sort params with identical
596         owner by their number. Fixes gen-111 on sparc.
597
598 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
599
600         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
601         around the domain changes.
602
603         * appdomain.c (mono_domain_unload): Handle the case when the thread
604         calling Unload is itself being aborted during unloading. Fixes #70022.
605
606         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
607
608         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
609         checkpoint_func as an icall so it gets a wrapper.
610         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
611         in the cross-appdomain wrappers too.
612
613         * threads.c (mono_thread_has_appdomain_ref): Make this public.
614
615         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
616
617         * reflection.c: Fix some memory leaks.
618         
619 2004-12-02  Martin Baulig  <martin@ximian.com>
620
621         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
622
623         * metadata.c (generic_class_cache): New static hashtable.
624         (mono_metadata_lookup_generic_class): New public method.
625
626 2004-12-02  Martin Baulig  <martin@ximian.com>
627
628         * class.c (mono_class_create_from_typedef): Call
629         mono_class_setup_parent() and mono_class_create_mono_type() before
630         parsing the interfaces.
631
632 2004-12-02  Martin Baulig  <martin@ximian.com>
633
634         * metadata.c (generic_inst_cache): New static hashtable.
635         (mono_metadata_lookup_generic_inst): New public function.
636         (mono_metadata_inflate_generic_inst): New public function.
637         (mono_metadata_parse_generic_inst): New public function.
638         (do_mono_metadata_parse_generic_class): Use the new
639         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
640         since this'll also use the cache.
641
642         * reflection.c (mono_reflection_bind_generic_method_parameters):
643         Use mono_metadata_lookup_generic_inst() to use the new cache.
644
645         * class.c (inflate_mono_type): Use
646         mono_metadata_inflate_generic_inst() to inflate a generic
647         instance; this'll also use the new cache.
648
649         * loader.c (method_from_methodspec): Use
650         mono_metadata_parse_generic_inst() and
651         mono_metadata_inflate_generic_inst() rather than parsing it
652         manually, so we can use the new cache.
653
654 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
655
656         * threads.c (wait_for_tids): Do not incorrectly free threads when 
657         the wait times out.
658
659 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
660
661         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
662         iter->args based on whether parameters are passed in registers (i.e.
663         MONO_ARCH_REGPARMS is defined)
664
665 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
666
667         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
668         the exception message. Fixes #70070.
669         (method_from_methodspec): Fix warnings.
670
671 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
672
673         * process.c: (complete_path) return the path quoted
674
675 2004-12-01  Martin Baulig  <martin@ximian.com>
676
677         * class-internals.h (MonoGenericInst): New structure.
678         (MonoGenericClass): Replaced `type_argc', `type_argv' and
679         `is_open' with `MonoGenericInst *inst'.
680         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
681         `is_open' with `MonoGenericInst *inst'.
682
683 2004-11-30  Martin Baulig  <martin@ximian.com>
684
685         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
686
687         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
688         to `generic_class_cache'.
689
690         * metadata.c
691         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
692         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
693         (mono_generic_inst_is_valuetype): Renamed to
694         mono_generic_class_is_valuetype().
695
696         * class-internals.h
697         (MonoGenericInst): Renamed to MonoGenericClass.
698         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
699         (MonoClass): Renamed `generic_inst' to `generic_class'.
700         (MonoGenericContext): Renamed `ginst' to `gclass'.
701
702         * object-internals.h
703         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
704
705         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
706         mono_reflection_generic_class_initialize().
707
708         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
709         now known as "System.Reflection.MonoGenericClass".
710         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
711
712 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
713
714         * class-internals.h: Added a flag field to MonoClass to cache the
715         declarative security attributes actions associated with the class.
716         * domain-internals.h: Added booleans to MonoJitInfo to cache the
717         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
718         applicable to the JITted method.
719         * reflection.c|h: Added functions to extract (as flags) which security
720         actions are available (declaratively) for a method, class or assembly.
721         * metadata.c|h: Added functions to search the declarative security
722         table in the metadata.
723         
724 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
725
726         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
727         EXPORTEDTYPES are already in the class name cache, so there is no
728         need to add extra code here to look at them. Just removes a bit of
729         cruft.
730
731         (ves_icall_System_Environment_get_TickCount): No need for #if
732         WINDOWS. We already have the code in io-layer.
733
734 2004-11-28  Martin Baulig  <martin@ximian.com>
735
736         * loader.c
737         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
738         Fixes gen-112.cs.
739
740 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
741
742         * assembly.c (do_mono_assembly_open): Instead of having a
743         conditional WITH_BUNDLE, incorporate support for bundles here, by
744         having a global `bundles' variable holding a pointer to the actual
745         bundles. 
746
747         (mono_register_bundled_assemblies): New API call used by the
748         bundle code. 
749
750         See mkbundle.1 for details.
751         
752 2004-11-27  Martin Baulig  <martin@ximian.com>
753
754         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
755         the vtable for generic methods.
756
757 2004-11-26  Martin Baulig  <martin@ximian.com>
758
759         * metadata.c
760         (mono_metadata_generic_method_hash): New public function.
761         (mono_metadata_generic_method_equal): Likewise.
762
763         * class-internals.h
764         (MonoGenericContainer): Added `GHashTable *method_hash'.
765
766         * reflection.c (ReflectionMethodBuilder): Added
767         `MonoGenericContainer *generic_container'.
768         (reflection_methodbuilder_to_mono_method): Don't create a new
769         MonoGenericContainer each time we're called.
770         (mono_reflection_bind_generic_method_parameters): Use
771         `container->method_hash' to cache the results so we don't create a
772         different method if we're called several times with the same
773         arguments.
774
775         * loader.c (method_from_methodspec): Use the new
776         `container->method_hash' here, too.
777
778 2004-11-26  Martin Baulig  <martin@ximian.com>
779
780         * class.c (inflate_generic_signature): Correctly compute
781         `res->has_type_parameters'.
782         (mono_class_vtable): Use the `has_type_parameters' flag to
783         determine whether we're a generic method.
784
785         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
786
787 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
788
789         * object.c (mono_runtime_run_main): Fix a small memory leak.
790
791 2004-11-25  Martin Baulig  <martin@ximian.com>
792
793         * class.c (set_generic_param_owner): Fixed the loop.
794
795 2004-11-25  Martin Baulig  <martin@ximian.com>
796
797         * object.c (mono_class_vtable): Don't create any JIT wrappers for
798         generic methods.
799
800 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
801
802         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
803         names. Fixes #69787.
804
805 2004-11-24  Martin Baulig  <martin@ximian.com>
806
807         * class.c (mono_class_create_generic_2): If we don't have a
808         `ginst->parent', inflate `gklass->parent' to get our parent.
809
810 2004-11-24  Martin Baulig  <martin@ximian.com>
811
812         * reflection.c (compare_genericparam): Correctly sort the
813         GenericParam table; fixes #69779.
814
815 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
816
817         * reflection.c: When writing a PE file, don't create a huge
818         buffer in memory. Just write the arrays we have to the file.
819         This reduces memory usage.
820
821         * metadata-internals.h: MonoDynamicStream pefile is no longer used
822         globally.
823
824 2004-11-17  Martin Baulig  <martin@ximian.com>
825
826         * class.c (mono_class_init): Don't setup `class->parent' for
827         dynamic instances; moved this to mono_class_generic_2().
828         (mono_class_create_generic): Also set `klass->inited' for dynamic
829         generic instances.
830         (mono_class_create_generic_2): Don't do anything for dynamic
831         generic instances.  Set `klass->parent' here and also call
832         mono_class_setup_parent() here. 
833
834         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
835         `MonoType *parent' argument; set `ginst->parent' before calling
836         mono_class_create_generic_2(), so we set the correct parent.
837
838 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
839
840         * reflection.c: allow getting attributes from ModuleBuilder
841         (used by ikvm).
842
843 2004-11-17  Martin Baulig  <martin@ximian.com>
844
845         * class.c (mono_class_create_from_typedef): If a type parameter is
846         inherited from an outer class, set its owner to that class.
847
848 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
849
850         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
851           for (int*) written size. This fixes bug #69592.
852
853 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
854
855         * icall.c: Added IsAuthenticodePresnet internal call.
856         * image.c|h: New function that check a MonoImage for an Authenticode
857         signature in the certificate PE data directory.
858         * security.c|h: New internal call to ask the runtime if an 
859         Authenticode signature seems referenced in the PE header.
860
861 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
862
863         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
864
865         * reflection.c (mono_image_create_pefile): Free the assembly streams
866         after writing out the assembly file.
867
868         * object.c (mono_runtime_run_main): Fix small memory leak.
869
870         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
871         property access modifiers. Fixes #69389.
872
873 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
874
875         * domain.c, object.c, object-internals.h, domain-internals.h,
876         object.h, marshal.c: keep dynamic code info per domain.
877
878 2004-11-15  Martin Baulig  <martin@ximian.com>
879
880         * class.c (mono_type_get_name_recurse): Put type arguments in
881         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
882         see bug #68387.
883
884 2004-11-15  Martin Baulig  <martin@ximian.com>
885
886         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
887         (mono_class_setup_vtable): When computing `the_cname' for a
888         generic instance, don't include the namespace since we'd otherwise
889         add it twice.
890
891 2004-11-15  Martin Baulig  <martin@ximian.com>
892
893         * class.c (mono_class_create_generic): Changed return type to void.
894         (mono_class_create_generic_2): New public function; setup
895         `class->method', `class->field' and `class->interfaces' here
896         instead of in mono_class_init().
897
898         * class.h (mono_class_create_generic): Moved to class-internals.h.
899
900 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
901
902         * reflection.c (mono_image_create_pefile): take a file HANDLE.
903         rather than writing to memory, write to this file. Right now,
904         we are just writting into a buffer, and copying that. However
905         we can avoid the buffer later.
906
907         (mono_dynamic_stream_reset): new function
908
909         * icall.c, object-internals.h: update for the above.
910
911 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
912
913         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
914         have been using gc'd memory. First it is slower, unlikely
915         the comment in the source code said, secondly, it increases
916         our footprint to do it in the gc.
917
918         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
919         the method so that it does not have to copy to managed code.
920
921 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
922
923         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
924
925 2004-11-12  Martin Baulig  <martin@localhost>
926
927         * reflection.c (mono_image_create_token): Allow generic method
928         definitions here, since they may appear in an `.override'; see
929         gen-98/gen-99 for an example.
930
931 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
932
933         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
934         #69365.
935
936         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
937         descriptive.
938
939 2004-11-11  Martin Baulig  <martin@ximian.com>
940
941         * class.c (mono_class_setup_vtable): In an explicit interface
942         implementation, the method name now includes the arity.
943
944 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
945
946         * object.c (mono_array_full_copy): Fix warning.
947
948 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
949
950         * appdomain.c: Removed look_for_method_by_name(). Use the new method
951         mono_class_get_method_from_name() instead.
952         
953         * class-internals.h: Added two new types of wrappers. 
954         Added MonoRemotingTarget enum. Added new trampoline function type, which
955         takes an additional MonoRemotingTarget value as parameter, so it is
956         possible to request a trampoline for a specific target.
957         
958         * class.c: Added new mono_class_get_method_from_name() method.
959         
960         * class.h: In MonoRemoteClass, we can have now to vtables, one for
961         general remoting sinks and one specific for cross domain calls.
962         
963         * debug-helpers.c: Added new wrapper names.
964         
965         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
966         of a remote class.
967         
968         * image.c: Porperly delete value objects form the remoting invoke hashtable.
969         
970         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
971         with several other methods (mono_marshal_get_xappdomain_dispatch,
972         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
973         and others) can generate a fast remoting wrapper for cross domain calls.
974         More information can be found in docs/remoting.
975         Other changes: Removed mono_find_method_by_name, and used
976         mono_class_get_method_from_name instead.
977         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
978         is stored in the remoting invoke hashtable.
979         
980         * marshal.h: published the new method for getting the xdomain wrapper,
981         and also added a method for getting the adequate wrapper for a given
982         method and target.
983         
984         * object-internals.h, object.c: Added a couple of methods for capying and
985         cloning arrays.
986         Modified mono_install_remoting_trampoline, which takes the new remoting
987         trampoline that has a remoting target as parameter.
988         mono_class_proxy_vtable now also takes a remoting target as parameter, and
989         will return the most suitable vtable for the target.
990         Added mono_remote_class_vtable, which returns the vtable of a remote class
991         (which can be the normal remoting vtable or the xdomain vtable).
992         
993         * threads.c: the xdomain invoke and dispatch wrappers must also be
994         protected against interruptions.
995
996 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
997
998         * icall.c: use memmove in BlockCopyInternal when the source and
999         destination arrays are the same.
1000
1001 2004-11-09  Martin Baulig  <martin@ximian.com>
1002
1003         * class-internals.h (MonoGenericContainer): Removed `method' and
1004         `signature', replaced them with `is_method' and `is_signature'
1005         flags.  Added `context'.
1006
1007         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
1008         instead of a `MonoGenericContainer *'.
1009
1010         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
1011         for dynamic type parameters.
1012         (mono_metadata_load_generic_params): Setup `container->context'.
1013
1014         * reflection.c (mono_reflection_setup_generic_class): Setup
1015         `tb->generic_container->context'.
1016         (do_mono_reflection_bind_generic_parameters): Use
1017         mono_class_inflate_generic_type() to correctly inflate types,
1018         rather than using our own hack just for MONO_TYPE_VAR.
1019
1020 2004-11-09  Martin Baulig  <martin@ximian.com>
1021
1022         * class.c (mono_class_inflate_generic_method): Small fix; don't
1023         crash here.
1024
1025         * icall.c
1026         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
1027         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
1028         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
1029         (ves_icall_Type_BindGenericParameters): Likewise.
1030         (ves_icall_Type_get_IsGenericInstance): Likewise.
1031         (ves_icall_Type_GetGenericParameterPosition): Likewise.
1032         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
1033         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1034         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
1035
1036 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
1037
1038         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
1039         assembly versions and public key tokens. Fixes #69113.
1040
1041 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
1042
1043         * metadata.c: fix bug introduced with the type cache changes
1044         on 2004-11-06.
1045
1046 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
1047
1048         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
1049         the MonoClass pointer instead of the token in exception clauses.
1050         * reflection.c: updates for the above and make the code not depend
1051         on the structure of MonoExceptionClause.
1052
1053 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
1054
1055         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1056         Add support for dynamic assemblies. Fixes #69114.
1057
1058         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
1059
1060 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
1061
1062         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
1063         since most only those methods use it. the code member of
1064         MonoMethodPInvoke was dead, so that can be removed too. Also,
1065         remove inline_count (again, not used), and move slot so that it
1066         can share bits with some other flags. This saves 8 bytes in the
1067         structure and gives us about 50 kb back for mcs helloworld.cs
1068
1069         * *.[ch]: Do naming changes for the above.
1070
1071         * loader.c (mono_method_get_header): Lazily init the header
1072         on first access.
1073         (mono_get_method_from_token): don't init the header here
1074         (mono_free_method): the header may never be allocated
1075
1076         Overall, this saves 150 kb of unmanaged allocations
1077         for mcs helloworld.cs. That accounts for 10% of the unmanaged
1078         memory at runtime.
1079         
1080         * loader.c, loader.h (mono_method_get_header): new accessor.
1081
1082         * *.[ch]: use the above method. Prepares us to lazily load
1083         the header.
1084
1085         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
1086         three warnings, which are actual bugs (see 69206).
1087
1088         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
1089         unused. Saves a cool 4 bytes / method.
1090
1091 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
1092
1093         * metadata.c (builtin_types): Add types for System.Object here.
1094         (mono_metadata_parse_type_full): Cache MonoType*'s that are
1095         for a class or valuetype from klass->this_arg or klass->byval_arg.
1096
1097         On mcs for a hello world, this gets us down from 21836 MonoType's
1098         to 14560.
1099
1100         (mono_metadata_free_type): Account for the above change.
1101
1102 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
1103
1104         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
1105         exception instead of asserting if name is null.
1106         (ves_icall_System_AppDomain_GetData): Ditto.
1107
1108 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
1109
1110         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
1111         EnumBuilder.
1112
1113         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
1114         Return NULL when the domain does not have entry_assembly set.
1115
1116         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
1117         Add a 'resource_modules' argument.
1118         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
1119
1120         * reflection.c (mono_reflection_create_runtime_class): Move setting
1121         of wastypebuilder here, so mono_get_type_object () returns a MonoType
1122         for enums too.
1123
1124         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
1125         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
1126         Throw an ArgumentNullException if 'ptr' is null.
1127
1128         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
1129         assemblies here. Fixes #69020.
1130
1131 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
1132
1133         * reflection.c (build_compressed_metadata): Fix the previous patch for
1134         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
1135         the stack.
1136
1137 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
1138
1139         * assembly.c (mono_assembly_names_equal): Allow a match if one of
1140         the cultures is false. Fixes #69090.
1141
1142         * reflection.c (build_compressed_metadata): Fix invalid memory read 
1143         detected by valgrind.
1144         
1145         * reflection.c (mono_reflection_get_type): Avoid triggering a 
1146         TypeResolve multiple times for the same type. Fixes #65577.
1147
1148 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
1149
1150         * marshal.c: Avoid using ldftn to call managed functions. It is
1151         much slower than just a call.
1152
1153         * reflection.c (mono_module_get_object): free the basename we
1154         allocate here from glib.
1155         
1156         * reflection.c (ensure_runtime_vtable): make sure to free
1157         overrides.  Also, we were allocating an array of MonoMethod not an
1158         array of MonoMethod*.
1159
1160         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
1161
1162         * image.c (mono_image_close): free image->guid here.
1163
1164 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
1165
1166         * reflection.c: Fix some spec conformance issues with the PE file
1167         structures so mcs compiled apps run on the Net 2.0 beta.
1168
1169 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
1170
1171         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
1172         Implement this. Fixes #67264.
1173
1174         * debug-helpers.h debug-helpers.c marshal.c: Move 
1175         mono_find_method_by_name to debug-helpers.c.
1176
1177 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
1178
1179         * object.c (mono_release_type_locks): type_initialization_hash is
1180         a GHashTable.
1181
1182         * reflection.c object.c object-internals.h: Fix warnings.
1183
1184         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
1185         without accessors. Fixes #61561.
1186
1187         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
1188         application base from the root domain if not set. Fixes #65641.
1189         (mono_runtime_init): Fix warning.
1190
1191 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1192
1193         * appdomain.c: call mono_thread_pool_init.
1194         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1195         of worker threads based on the number of CPUs and the environment
1196         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1197         for non-windows (windows) systems.
1198
1199 2004-10-27  Chris Toshok  <toshok@ximian.com>
1200
1201         * mono-debug-debugger.c (write_class): don't call mono_class_init
1202         here, as even with the check for (!klass->init_pending), we get
1203         into a situation where we're hitting cycles in class
1204         initialization.  Fixes #68816.
1205
1206 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1207
1208         * image.c: Avoid overwriting values in the loaded_images_hash when an
1209         assembly is loaded multiple times. Fixes #61152.
1210
1211         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1212         so multiple satellite assemblies for the same name can be loaded.
1213         Fixes #68259.
1214
1215         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1216         not NULL.
1217
1218         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1219         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1220
1221         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1222         pending finalizers are not invoked after the appdomain has been 
1223         unloaded. Fixes #67862.
1224
1225 2004-10-22  Martin Baulig  <martin@ximian.com>
1226
1227         * mono-debug-debugger.c
1228         (mono_debugger_runtime_invoke): Don't box valuetypes.
1229
1230 2004-10-22  Chris Toshok  <toshok@ximian.com>
1231
1232         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1233         don't hide private methods.
1234
1235 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1236
1237         * icall.c: Allows the runtime to "share" (when known) the public key
1238         token of an assembly. This avoid the need to recalculate the token 
1239         (from the public key) in managed code.
1240
1241 2004-10-21  Chris Toshok  <toshok@ximian.com>
1242
1243         * debug-helpers.c (append_class_name): argh, revert last patch.
1244         
1245 2004-10-21  Chris Toshok  <toshok@ximian.com>
1246
1247         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1248         not '/', so that it matches what the debugger uses to look up
1249         methods.
1250
1251 2004-10-21  Martin Baulig  <martin@ximian.com>
1252
1253         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1254         public method; this is called each time an exception is thrown and
1255         allows the debugger to use exception catch points.
1256
1257 2004-10-21  Martin Baulig  <martin@ximian.com>
1258
1259         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1260         the stack pointer and the exception object in some struct and pass
1261         that to the debugger.
1262
1263 2004-10-21  Chris Toshok  <toshok@ximian.com>
1264
1265         * mono-debug-debugger.c (do_write_class): add instance/static
1266         event support.  We don't expose "raise" or "other" yet.
1267         (event_is_static): new method.
1268
1269 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1270
1271         * mono-debug-debugger.c
1272         (mono_debugger_handle_exception): Remove
1273         bogus return value for fussy compilers.
1274
1275 2004-10-20  Martin Baulig  <martin@ximian.com>
1276
1277         * mono-debug-debugger.c
1278         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1279         (mono_debugger_handled_exception): Likewise.
1280
1281 2004-10-20  Martin Baulig  <martin@ximian.com>
1282
1283         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1284         MONO_DEBUGGER_EVENT_EXCEPTION.
1285
1286         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1287         public function to send the debugger a notification for an
1288         exception and inform it about a catch/finally clause.
1289
1290 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1291
1292         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1293         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1294         fix 2.95 build. 
1295
1296         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1297
1298 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1299
1300         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1301         marshalled as [In,Out]. Fixes #58325.
1302
1303 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1304
1305         * reflection.c (mono_method_body_get_object): Implement some fields.
1306
1307 2004-10-12  Martin Baulig  <martin@ximian.com>
1308
1309         * reflection.c (mono_reflection_bind_generic_parameters): Small
1310         fix, correctly retrieve our parent from a generic instance.
1311
1312 2004-10-12  Martin Baulig  <martin@ximian.com>
1313
1314         * metadata.c (mono_metadata_generic_param_equal): We always have
1315         an owner.
1316
1317         * class.c
1318         (mono_class_from_generic_parameter): We need to have an owner.
1319         (my_mono_class_from_generic_parameter): Likewise.
1320
1321         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1322         mono_reflection_create_generic_class() and added a new
1323         mono_reflection_setup_generic_class().  
1324         (mono_reflection_initialize_generic_param): If we're a nested
1325         generic type and inherited from the containing class, set our
1326         owner to the outer class.
1327
1328 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1329
1330         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1331
1332         * reflection.c (mono_method_body_get_object): New function to create
1333         a MethodBody object.
1334
1335         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1336
1337 2004-10-11  Martin Baulig  <martin@ximian.com>
1338
1339         * metadata.c (_mono_metadata_type_equal): Renamed to
1340         do_mono_metadata_type_equal() and made static.
1341
1342 2004-10-11  Martin Baulig  <martin@ximian.com>
1343
1344         * appdomain.c: Bump corlib version number to 28.
1345
1346 2004-10-10  Martin Baulig  <martin@ximian.com>
1347
1348         * class-internals.h
1349         (MonoGenericInst): Added `MonoGenericContainer *container'.
1350         (MonoGenericMethod): Likewise.
1351         (MonoGenericContext): Likewise.
1352         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1353
1354         * metadata.c
1355         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1356         (do_mono_metadata_parse_generic_inst): Likewise.
1357         (mono_metadata_parse_type_full): New public method.  This is the actual
1358         mono_metadata_parse_type() implementation - with an additional
1359         `MonoGenericContainer *' argument.
1360         (mono_metadata_parse_array_full): Likewise.
1361         (mono_metadata_parse_signature_full): Likewise.
1362         (mono_metadata_parse_method_signature_full): Likewise.
1363         (mono_metadata_parse_mh_full): Likewise.
1364         (mono_type_create_from_typespec): Likewise.
1365         (mono_metadata_interfaces_from_typedef_full): New public method;
1366         this is similar to the other _full() methods, but we take a
1367         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1368         (mono_metadata_parse_generic_param): Take an additional
1369         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1370         from that container.
1371         (mono_metadata_generic_param_equal): New static method to compare
1372         two type parameters.
1373         (_mono_metadata_type_equal): New static method; takes an
1374         additional `gboolean signature_only' argument - if true, we don't
1375         compare the owners of generic parameters.
1376         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1377         with a TRUE argument - do a signature-only comparision.
1378
1379         * loader.c: Use the new _full() methods and pass the
1380         MonoGenericContainer to them.
1381
1382         * object-internals.h (MonoReflectionTypeBuilder): Added
1383         `MonoGenericContainer *generic_container' field.
1384         (MonoReflectionMethodBuilder): Likewise.
1385
1386 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1387
1388         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1389         case initial images of dynamic assemblies.
1390
1391         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1392
1393         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1394
1395         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1396         length of event->other array.
1397         (typebuilder_setup_events): Ditto.
1398
1399         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1400         'assembly_by_name' and add an 'assemblies' list.
1401
1402         * assembly.h assembly.c: Add a new search hook for determining whenever
1403         an assembly is already loaded. Use this instead of searching in the
1404         loaded_assemblies list.
1405
1406         * domain.c appdomain.c: Implement the new search hook so loaded 
1407         assemblies are now scoped by appdomain. Fixes #67727.
1408
1409 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1410
1411         * threads.c (mono_thread_attach): Initialize synch_lock field so
1412         mono_thread_detach works again.
1413
1414         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1415         'lib' too. Fixes #63130.
1416
1417 2004-10-06  Jackson Harper  <jackson@ximian.com>
1418
1419         * culture-info-tables.h: regenerated.
1420
1421 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1422
1423         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1424         implemented by other interfaces in the result. Fixes #65764.
1425         
1426         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1427         Handle unloadable modules without crashing.
1428
1429         * image.c (load_modules): Revert the previous patch since modules must
1430         have a fixed index inside the array.
1431         
1432         * image.c (load_modules): Don't include native modules in the modules
1433         array.
1434
1435 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1436
1437         * reflection.h: Add param_defaults field.
1438
1439         * reflection.c: Add support for parameter defaults in dynamic methods.
1440         Fixes #64595.
1441
1442         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1443         an empty string when a type has no namespace. Fixes #64230.
1444
1445 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1446
1447         * tabledefs.h: Added "internal" security actions to support non-CAS
1448         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1449         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1450
1451 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1452
1453         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1454         constructor of abstract class. Fixes #61689.
1455
1456 2004-10-04  Martin Baulig  <martin@ximian.com>
1457
1458         * class-internals.h (MonoGenericContainer): New type.
1459         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1460         `MonoGenericContainer *generic_container'.
1461         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1462         `MonoGenericContainer *generic_container'.
1463
1464         * metadata.c (mono_metadata_load_generic_params): Return a
1465         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1466         removed the `num' argument.
1467
1468 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1469
1470         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1471         for dynamic images.
1472
1473         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1474         machine fields.
1475
1476         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1477
1478         * reflection.c: Save pe_kind and machine values into the generated
1479         image file.
1480
1481         * appdomain.c: Bump corlib version number.
1482
1483         * object-internals.h: Reorganize layout of LocalBuilder.
1484
1485         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1486         New helper function.
1487
1488         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1489         created MonoType for dynamic types. Fixes #66180.
1490
1491 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1492
1493         * threadpool.c: the ares hashtable needs a critical section around it.
1494         this prevents some nasty segfaults
1495
1496 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1497
1498         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1499         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1500         bug 67324).
1501         
1502 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1503
1504         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1505         
1506 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1507
1508         * image.c: Always canonicalize image file names, to avoid loading
1509         the same assembly twice when referenced using a relative path.
1510
1511 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1512
1513         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1514
1515         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1516
1517         * marshal.c: Fix warnings.
1518
1519 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1520
1521         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1522         attempting to marshal the delegate_trampoline as the method_addr.
1523         This patch has a static hashtable of marshalled delegates so that 
1524         we can map delegate_trampoline addresses back to delegates.  This
1525         allows a delegate passed to managed code to be passed back into native
1526         code.  Fixes #67039
1527
1528 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1529
1530         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1531
1532         * reflection.c (method_encode_code): Align method headers properly.
1533         Fixes #66025.
1534
1535 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1536
1537         * marshal.c: In the runtime invoke wrapper, reset the abort
1538         exception if it is cached. This avoids the automatic rethrowal of 
1539         the exception after the catch of the wrapper. Also check for pending
1540         interruptions before calling the managed method. This is done using
1541         the new method emit_thread_force_interrupt_checkpoint, since the
1542         normal checkpoint method is ignored when running the invoke wrapper.
1543         * object.c: If the abort exception is rethrown, set the abort_exc
1544         field of the thread, so it will be rethrown aftere every catch.
1545         * threadpool.c: Only run an interruption checkpoint if what has been
1546         requested is a stop of the thread (aborts will be ignored).
1547         * threads.c: By default, a thread will now never be interrumped while
1548         running the runtime invoke wrapper (this ensures that runtime_invoke
1549         will always return to the caller if an exception pointer is provided).
1550         There is a new special method mono_thread_force_interruption_checkpoint()
1551         to force an interruption checkpoint even if running a protected
1552         wrapper, which is used by the same runtime invoke wrapper to do a check
1553         at a safe point.
1554
1555 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1556
1557         * object.c, object-internals.h: Implemented mono_release_type_locks,
1558         which releases the cctor locks held by a thread.
1559         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1560         by a thread. Added mono_thread_exit() method to be used to safely stop
1561         a thread.
1562
1563 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1564
1565         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1566         Move null check before dereference.  Avoid indexing beyond the end
1567         of the 'modules' array.
1568
1569 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1570
1571         * metadata-internals.h (MonoImage): Add module_count field.
1572         * image.c (load_modules): Set image->module_count.
1573         (mono_image_load_file_for_image): Use image->module_count.
1574         * reflection.c (mono_image_load_module): Append to image->modules array 
1575         of dynamic assembly.
1576         (mono_module_get_object): Fix loop to actually increment index.
1577         Use image->module_count.
1578         * assembly.c (mono_assembly_load_references): Use image->module_count.
1579         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1580         Likewise.
1581
1582 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1583
1584         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1585         Avoid assert on generic types.
1586
1587 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1588
1589         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1590
1591         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1592
1593         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1594         function to convert a MarshalSpec structure to its managed counterpart.
1595
1596         * reflection.c: Fix warnings.
1597         
1598         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1599         field.
1600
1601         * icall.c (mono_create_icall_signature): Fix build.
1602
1603 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1604
1605         * icall.c: Add MakePointType icall.
1606
1607         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1608         warnings.
1609
1610 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1611
1612         * threadpool.c: reuse allocated slots in the queue.
1613
1614 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1615
1616         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1617
1618         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1619
1620         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1621         previous change.
1622
1623         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1624         ThrowOnUnmappableChar.
1625
1626         * icall.c (ves_icall_Type_GetPacking): New icall.
1627
1628 2004-09-24  Martin Baulig  <martin@ximian.com>
1629
1630         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1631
1632 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1633
1634         * appdomain.c:
1635         (mono_domain_set): allow setting a domain that is being unloaded.
1636         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1637         being unloaded.
1638
1639 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1640
1641         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1642         the GetCustomAttributes icall.
1643
1644 2004-09-23  Martin Baulig  <martin@ximian.com>
1645
1646         * object-internals.h (MonoReflectionGenericParam): Replaced
1647         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1648         with `guint32 attrs'.
1649
1650 2004-09-23  Martin Baulig  <martin@ximian.com>
1651
1652         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1653
1654 2004-09-23  Martin Baulig  <martin@ximian.com>
1655
1656         * object-internals.h (GenericParameterAttributes): New enum.
1657
1658 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1659
1660         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1661         
1662         * class.c (init_events): Fill out event->other field.
1663
1664         * class.c: Fix warnings.
1665
1666         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1667
1668 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1669
1670         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1671         walk which doesn't supply the IL offset.
1672
1673 2004-09-22  Martin Baulig  <martin@ximian.com>
1674
1675         * reflection.c (mono_reflection_setup_internal_class): If we're
1676         System.ValueType, System.Object or System.Enum, set
1677         `klass->instance_size' and create the vtable.
1678         (mono_reflection_create_internal_class): If we're an enum type,
1679         get the base class from our current corlib.
1680
1681 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1682
1683         * reflection.h (MonoResolveTokenError): New type.
1684
1685         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1686         icall.
1687
1688         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1689
1690 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1691
1692         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1693         Support also calling constructors, but only for already allocated objects.
1694
1695 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1696
1697         * reflection.c (type_get_qualified_name): If the klass is null
1698         return the typename to avoid a NullRefEx.
1699         (encode_cattr_value): Get the qualified name of the boxed type,
1700         not the underlying enumtype.  Fixes #62984.
1701
1702 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1703
1704         * marshal.c: Fix problems with previous checkin.
1705
1706 2004-09-21    <vargaz@freemail.hu>
1707
1708         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1709         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1710
1711         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1712
1713 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1714
1715         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1716         should only return a type for pointers, arrays, and passbyref types.
1717         Fixes bug #63841.
1718
1719 2004-09-21  Martin Baulig  <martin@ximian.com>
1720
1721         * domain.c (mono_debugger_check_runtime_version): New public
1722         function.
1723
1724         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1725
1726 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1727
1728         * reflection.c: Added missing sort to the declarative security 
1729         attributes table. MS implementation stops seeing the attributes if the
1730         token number regress in the table (as shown by ildasm and permview).
1731
1732 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1733
1734         * object-internals.h (MonoReflectionModule): Add 'token' field.
1735         
1736         * reflection.c (mono_reflection_get_token): Add support for Module
1737         and Assembly.
1738         (mono_module_get_object): Set 'token' field.
1739         (mono_module_file_get_object): Set 'token' field.
1740
1741         * icall.c: Add new Assembly and Module icalls.
1742
1743         * appdomain.c: Bump corlib version.
1744
1745 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1746
1747         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1748         tokens of metadata objects.
1749
1750         * reflection.h reflection.c (mono_reflection_get_token): New function
1751         to obtain the token of a metadata object.
1752
1753         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1754
1755 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1756
1757         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1758         
1759         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1760
1761 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1762
1763         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1764         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1765         AssemblyBuilder to access the permissions set in the class lib.
1766         * reflection.c: Added security attributes encoding step in 
1767         mono_image_build_metadata.
1768         * tabledefs.h: Added new security actions defined in 2.0:
1769         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1770
1771 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1772
1773         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1774         macro parameter.
1775
1776 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1777  
1778         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1779           finalized. There where random SIGSEVs at program termination, when
1780           an object being finalized was trying to do a string comparison and
1781           the current culture was already finalized.
1782  
1783 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1784
1785         * threads.c: call thread_cleanup before finishing the thread if we get
1786         there.
1787
1788 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1789
1790         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1791         assemblies from the parent. Fixes #65665.
1792
1793 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1794
1795         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1796         modifiers.
1797
1798 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1799
1800         * reflection.h: add prototype for mono_get_dbnull_object
1801         * reflection.c: add prototypes for get_default_param_value_blobs 
1802         and mono_get_object_from_blob for fussier compilers
1803
1804 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1805  
1806         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1807         false deadlock checks in class initialization.
1808  
1809 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1810
1811         * image.c (mono_image_addref): Fix comment.
1812
1813         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1814         possible.
1815
1816 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1817
1818         * reflection.c (mono_param_get_objects): Modified to return
1819         ParameterInfo.DefaultValue object.
1820
1821         (get_default_param_value_blobs):
1822         (mono_get_object_from_blob):
1823         (mono_get_dbnull_object): New helper routines. 
1824
1825         * object.c (mono_get_constant_value_from_blob): New helper routine
1826         carved out from get_default_field_value ()
1827
1828         * object-internals.h (mono_get_constant_value_from_blob): Added
1829         function declaration.
1830
1831 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1832
1833         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1834         referenced assemblies. Fixes #62135.
1835
1836         * exception.h exception.c (mono_get_exception_file_not_found2): New
1837         helper function.
1838
1839 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1840
1841         * class.h class.c: Add mono_type_get_underlying_type ().
1842
1843 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1844
1845         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1846         Fix GetTypes() to support dynamically created assemblies.
1847
1848 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1849
1850         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1851         
1852         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1853         previous patch.
1854
1855         * reflection.h reflection.c loader.c: Allow dynamic construction of
1856         pinvoke methods. Fixes #65571.
1857         
1858         * reflection.c (mono_reflection_get_type): Revert previous change since
1859         it causes regressions.
1860
1861 2004-09-08  Martin Baulig  <martin@ximian.com>
1862
1863         * class.c (class_compute_field_layout): Don't call
1864         mono_class_layout_fields() for open generic instances.
1865
1866 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1867         * threads.c appdomain.c: fix typo in GC macro
1868
1869 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1870
1871         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1872         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1873
1874 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1875
1876         * image.c (mono_image_close): Applied patch from 
1877         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1878         assembly is loaded multiple times from data.
1879         
1880         * image.c (mono_image_open): Fix warning.
1881
1882 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1883
1884         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1885         once. Fixes #58334.
1886         
1887         * reflection.c (mono_reflection_create_runtime_class): Initialize
1888         klass->nested_classes. Fixes #61224.
1889
1890 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1891
1892         * threads.c: sched_yield() on exit, to allow threads to quit.
1893
1894 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1895
1896         * object.c (mono_unhandled_exception): Remove leftover debug code.
1897
1898 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1899
1900         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1901
1902 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1903
1904         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1905         
1906         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1907
1908 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1909
1910         * marshal.c (emit_marshal_array): Null terminate string arrays.
1911         
1912         * marshal.c (raise_auto_layout_exception): Fix warning.
1913
1914         * reflection.c (mono_param_get_objects): Initialize the default value
1915         with DBNull.Value, not null. Fixes #62123.
1916
1917 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1918
1919         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1920         throw an exception with a cute explanation.
1921
1922 2004-09-06  Dick Porter  <dick@ximian.com>
1923
1924         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1925         Close the new process's thread handle, as we don't use it.  The
1926         handle stays around forever otherwise.
1927
1928 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1929
1930         * object.c (arith_overflow): Fix warning.
1931
1932         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1933         calling conventions in method refs. Fixes #65352.
1934
1935         * reflection.c: Fix warnings.
1936
1937 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1938
1939         * icall.c: Add a new icall for Array.Clear
1940
1941 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1942
1943         * object.c: When allocating an array, we have to throw
1944         an overflow exception if any of the lengths are < 0.
1945
1946 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1947
1948         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1949         properly. Also move implementation of string array marshalling to 
1950         managed code. Fixes #42316.
1951
1952 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1953
1954         * assembly.c: provide more information when loading an assembly fails.
1955
1956 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1957
1958         * filewatcher.c: don't expect the development fam package to be
1959         installed.
1960
1961 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1962
1963         * marshal.c: Make a copy of the signature cookie since it will be
1964         freed by the caller.
1965         
1966         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1967
1968         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1969
1970         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1971         marshal specs.
1972
1973         * marshal.c: More refactoring.
1974         
1975         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1976         smaller functions.
1977
1978 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1979
1980         * object.c: In mono_message_invoke, fill the output parameter array after
1981           calling the managed method (it was done before the call). This fixes
1982           bug #59299.
1983
1984 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1985
1986         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1987         as well.
1988
1989 2004-09-02  Martin Baulig  <martin@ximian.com>
1990
1991         * class.c (mono_class_instance_size): Don't allow generic type
1992         definitions or open generic instances.
1993         (mono_class_array_element_size): If we're a value type, call
1994         mono_class_instance_size() on the original class.
1995
1996         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1997         handle generic instances.
1998
1999         * mono-debug-debugger.c (write_type): Handle generic instances
2000         like classes.
2001
2002 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
2003
2004         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
2005         the allocation request fails. Fixes #65089.
2006
2007         * object.c (mono_runtime_free_method): Do not call mono_free_method.
2008         
2009         * object.c (mono_runtime_free_method): New function to free a dynamic
2010         method.
2011
2012         * marshal.c (mono_delegate_free_ftnptr): New function to free the
2013         delegate trampoline.
2014
2015         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
2016         with hasthis as dynamic,
2017
2018         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
2019
2020         * domain.c (mono_jit_info_table_remove): New function to remove an
2021         entry from the jit info table.
2022
2023         * class-internals.h (MonoMethod): Add 'dynamic' field.
2024
2025         * loader.c: Fix warnings.
2026
2027 2004-09-01  Martin Baulig  <martin@ximian.com>
2028
2029         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
2030         instead of mono_debugger_lock() because the latter one is a no-op
2031         unless running in the debugger.
2032
2033 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2034
2035         * class.c (class_compute_field_layout): Classes with auto-layout or
2036         reference fields are not blittable.
2037         
2038 2004-09-01  Dick Porter  <dick@ximian.com>
2039
2040         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
2041         mono_image_get_filename() to get the assembly location.
2042
2043         * icall.c:
2044         * metadata.h: Fix compile warnings
2045
2046 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2047
2048         * class.c (class_compute_field_layout): System.Object is blittable.
2049
2050         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
2051         as in/out. Fixes #59909.
2052
2053 2004-09-01  Martin Baulig  <martin@ximian.com>
2054
2055         * metadata.h (MONO_TYPE_ISREFERENCE): Call
2056         mono_metadata_generic_inst_is_valuetype() if we're a generic
2057         instance to check whether our underlying type is a reference type.
2058
2059 2004-09-01  Martin Baulig  <martin@ximian.com>
2060
2061         * metadata.c (mono_type_size): If we're a generic instance, call
2062         mono_class_value_size() for value types.
2063
2064 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
2065
2066         * marshal.c: Implement more custom marshalling functionality. Fixes
2067         #64915.
2068
2069 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2070
2071         * mono-debug.c, debug-mono-symfile.c: add some locking love.
2072
2073 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
2074
2075         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
2076
2077         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
2078
2079         * icall.c: Fix some warnings.
2080
2081         * threads.c (abort_appdomain_thread): Fix unref errors.
2082         (mono_thread_current): Fix THREAD_DEBUG define.
2083
2084 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
2085
2086         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
2087
2088         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
2089
2090 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
2091
2092         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
2093         string arrays.
2094
2095 2004-08-28  Martin Baulig  <martin@ximian.com>
2096
2097         * metadata.c
2098         (mono_metadata_generic_inst_is_valuetype): New public function.
2099
2100         * metadata.h (MONO_TYPE_ISSTRUCT): Call
2101         mono_metadata_generic_inst_is_valuetype() if we're a generic
2102         instance to check whether our underlying type is a valuetype.
2103
2104 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
2105
2106         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
2107         #63768.
2108
2109 2004-08-25  Martin Baulig  <martin@ximian.com>
2110
2111         * loader.c (mono_get_method_from_token): Abstract methods can also
2112         be generic and thus have type parameters.
2113
2114         * metadata-internals.h
2115         (MonoDynamicImage): Added `GPtrArray *gen_params'.
2116
2117         * reflection.c (mono_image_get_generic_param_info): Don't create a
2118         metadata row, just add an entry to the `gen_params' array.
2119         (build_compressed_metadata): Sort the `gen_params' array and then
2120         actually create the metadata.
2121
2122 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2123
2124         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
2125
2126 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
2127
2128         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
2129
2130 2004-08-24  Martin Baulig  <martin@ximian.com>
2131
2132         * class.cs (mono_class_is_subclass_of): Like an interface, a
2133         generic instance also derives from System.Object.
2134
2135 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
2136
2137         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
2138         custom modifiers to be in any order. Fixes #61990.
2139
2140 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
2141
2142         * object.c: Register mono_object_new_fast icall.
2143         
2144         * object.c (mono_class_get_allocation_ftn): Return to calling
2145         mono_object_new_fast, since it seems faster to compute the object 
2146         size in unmanaged code than passing it as a parameter.
2147
2148         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
2149
2150         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
2151         this function with Boehm as the oom handler, so we don't have to check
2152         the result of GC_malloc.
2153
2154         * object.c: Remove checks for oom.
2155
2156         * object.h object.c (mono_class_get_allocation_ftn): New function to
2157         return the icall which can be used to allocate an instance of a given
2158         class. 
2159
2160         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
2161
2162         * class-internals.h: Add 'enabled' field.
2163
2164 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
2165
2166         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
2167
2168 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
2169         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
2170         value 0x0010.
2171
2172 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
2173
2174         * appdomain.c: use the Tls function for appdomain too,
2175         at Zoltan's request. Actually return in mono_context_get
2176
2177         * appdomain.c, profiler.c, threads.c: use __thread
2178
2179 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
2180
2181         * appdomain.c threads.c: Call GC_CreateThread on windows.
2182
2183         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
2184         multiple libraries since this don't work on windows.
2185
2186 2004-08-18  Martin Baulig  <martin@ximian.com>
2187
2188         * class-internals.h
2189         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
2190         MonoMethodHeader.
2191
2192         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2193         MonoMethodNormal since we also need it for abstract and interface
2194         methods.
2195
2196         * reflection.c
2197         (build_compressed_metadata): Sort the GenericParam table.
2198         (mono_image_create_token): Added `gboolean create_methodspec'
2199         argument; this is false when generating a MethodImpl token.
2200         (reflection_methodbuilder_to_mono_method): Abstract and interface
2201         methods may also have generic parameters.
2202
2203 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2204
2205         * appdomain.c: thread local alloc
2206
2207 2004-08-17  Martin Baulig  <martin@ximian.com>
2208
2209         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2210
2211         * icall.c
2212         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2213         argument.
2214
2215         * class.c (mono_type_get_full_name): New public function.
2216         (mono_type_get_name): Don't include the type arguments.
2217
2218 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2219
2220         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2221         for inclusion into the mono executable.
2222
2223 2004-08-16  Martin Baulig  <martin@ximian.com>
2224
2225         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2226         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2227
2228 2004-08-14  Martin Baulig  <martin@ximian.com>
2229
2230         * class.c (dup_type): Also copy the `byref' field.
2231
2232 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2233
2234         * reflection.c (create_dynamic_mono_image): Revert the last change 
2235         since it breaks bootstrap.
2236
2237 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2238
2239         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2240
2241         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2242         not free them with g_free.
2243
2244 2004-08-11  Martin Baulig  <martin@ximian.com>
2245
2246         * reflection.c (mono_reflection_setup_internal_class): Also call
2247         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2248
2249 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2250
2251         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2252         called during default (first) AppDomain creation. Keep track of
2253         Evidence when loading assemblies.
2254
2255 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2256
2257         * opcodes.c, opcodes.h: reduce runtime relocations.
2258
2259 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2260
2261         * culture-info.h, locales.c: fixes and chages to sue the new
2262         optimized format of the locale data.
2263         * culture-info-tables.h: regenerated.
2264
2265 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2266         
2267         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2268
2269 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2270
2271         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2272         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2273         * domain-internals.h: icall declaration.
2274         * icall.c: icall registration.
2275         * object-internals.h: New fields in MonoAssembly for CAS.
2276
2277 2004-08-05  Duncan Mak  <duncan@ximian.com>
2278
2279         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2280         CEE_LDELEM_ANY.
2281
2282 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2283
2284         * reflection.c: fix to deal with object[] arrays in custom ctors
2285         (bug #62550).
2286
2287 2004-08-05  Martin Baulig  <martin@ximian.com>
2288
2289         * class.c (mono_class_array_element_size): Added support for
2290         generic instances and correctly handle "recursive" types.
2291
2292 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2293
2294         * assembly.c: Fix warnings.
2295
2296 2004-08-04  Martin Baulig  <martin@ximian.com>
2297
2298         * class.c
2299         (mono_type_get_name_recurse): Added `gboolean include_arity'
2300         argument specifying whether or not we should include the generic
2301         arity in the type name.
2302         (_mono_type_get_name): New static function.
2303         (mono_class_setup_vtable): If we're a generic instance, don't
2304         include the generic arity in the names of explicit method
2305         implementations.        
2306
2307 2004-08-03  Martin Baulig  <martin@ximian.com>
2308
2309         * class.c (mono_type_get_name_recurse): Enclose the generic type
2310         arguments in `<', '>'.
2311
2312 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2313
2314         * gc.c: make GC warning messages use the trace API, they are just
2315         noise to most of the users.
2316
2317 2004-08-03  Martin Baulig  <martin@ximian.com>
2318
2319         * debug-mono-symfile.c (read_string): Correctly read the string.
2320
2321 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2322
2323         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2324         
2325         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2326         icalls.
2327         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2328
2329 2004-07-30  Martin Baulig  <martin@ximian.com>
2330
2331         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2332         Reflect latest symbol writer changes.   
2333
2334 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2335
2336         * object.c: always create an object if null is passed
2337         to Invoke() where a valuetype is expected.
2338
2339 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2340
2341         * marshal.c (mono_marshal_init): make managed
2342         signatures match native ones better for 64bits.
2343
2344 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2345
2346         * appdomain.c: hack to build correctly the private bin path on windows.
2347         Fixes bug #61991.
2348
2349 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2350
2351         * assembly.c: Load mscorlib from the correct framework directory
2352           (mono/<version>/mscorlib.dll).
2353         * appdomain.h: Added prototypes for new functions.
2354         * internals.h: Added some prototypes.
2355         * domain.c: When initializing the runtime, get from the executable and
2356           the configuration files the runtime version that the app supports.
2357           Added support methods for reading app.exe.config. Added list of versions
2358           supported by the JIT. Added two new methods: mono_init_from_assembly,
2359           which initializes the runtime and determines the required version from
2360           the provided exe file, and mono_init_version, which initializes
2361           the runtime using the provided version.
2362         * icall.c: Get machine.config from version-specific directory.
2363         * reflection.c: When generating an image, embed the version number
2364           of the current runtime.
2365
2366 2004-07-28  Dick Porter  <dick@ximian.com>
2367
2368         * socket-io.c
2369         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2370         returned sockaddr size before creating the remote address object.
2371         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2372         61608.
2373
2374 2004-07-28  Dick Porter  <dick@ximian.com>
2375
2376         * locales.c (string_invariant_compare_char): Fix invariant char
2377         compares between upper and lower cases.  Fixes bug 61458.
2378
2379 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2380         
2381         * marshal.c: actually cache stelem.ref wrappers.
2382         
2383 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2384
2385         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2386         sections and remove the mono_cli_rva_map () function.
2387
2388 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2389
2390         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2391         by Geoff Norton (<gnorton@customerdna.com>).
2392
2393 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2394
2395         * class.c: fix class loads for pointer types (typeof(int) !=
2396         typeof(int*)).
2397
2398 2004-07-27  Martin Baulig  <martin@ximian.com>
2399
2400         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2401         reading the debugging information from an external ".mdb" file.
2402
2403 2004-07-24  Martin Baulig  <martin@ximian.com>
2404
2405         * reflection.c (mono_image_get_type_info): Only write a class
2406         layout entry if we actually have a size or a packing size.
2407
2408 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2409
2410         * reflection.c (type_get_fully_qualified_name): 
2411         insert cast to get type checking of ?: with non-gcc compilers
2412
2413 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2414
2415         * rand.c: use g_getenv for both lookups of
2416         MONO_EGD_SOCKET
2417
2418 2004-07-17  Martin Baulig  <martin@ximian.com>
2419
2420         * reflection.c (mono_reflection_bind_generic_method_parameters):
2421         Set `gmethod->reflection_info'.
2422
2423 2004-07-17  Martin Baulig  <martin@ximian.com>
2424
2425         * class.c (mono_class_create_from_typedef): Insert the newly
2426         created class into the hash table before computing the interfaces
2427         since we could be called recursively.
2428
2429 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2430
2431         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2432         function to implement stelem.ref in managed code
2433         * class-internals.h, debug-helpers.c: a new wrapper type
2434         for the above.
2435
2436 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2437
2438         * gc.c: allow GC handles to work even when no GC is compiled in.
2439         Fix part of bug #61134 (GetAddrOfPinnedObject).
2440
2441 2004-07-13  Peter Williams  <peter@newton.cx>
2442  
2443         * process.c (complete_path): Make sure we don't attempt to execute
2444         directories.
2445  
2446 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2447
2448         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2449           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2450           and will add/subtract the hour if needed
2451
2452 2004-07-12  Martin Baulig  <martin@ximian.com>
2453
2454         * reflection.c (mono_field_get_object): If we have
2455         `field->generic_info', take the attributes from
2456         `field->generic_info->generic_type'.    
2457
2458 2004-07-12  Martin Baulig  <martin@ximian.com>
2459
2460         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2461         This function must be called before initializing the runtime.
2462         (mono_debug_init_1): New function; call this after initializing
2463         the runtime, but before loading the assembly.  It tells the
2464         debugger to load corlib and the builtin types.
2465
2466         * mono-debug-debugger.c: Did some larger changes in the debugging
2467         code; support recursive class declarations, make sure we actually
2468         add all classes.
2469
2470 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2471
2472         * debug-helpers.c: undo my previous patch and fixed the real issue in
2473         ../mini/exceptions-x86.c
2474
2475 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2476
2477         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2478         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2479         called from other .cctors.
2480
2481 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2482
2483         * loader.c: Removed the mono_loader_wine_init hack now that we are
2484         doing a managed version of Windows.Forms.
2485
2486 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2487
2488         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2489         threadpool.c, threads.c: remove static data from rootset.
2490
2491 2004-07-09  Dick Porter  <dick@ximian.com>
2492
2493         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2494         Don't do any more processing if the matched length was 0.  It was
2495         increasing the size of the string before.  Fixes bug 61167.
2496
2497 2004-07-09  Dick Porter  <dick@ximian.com>
2498
2499         * socket-io.h:
2500         * socket-io.c
2501         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2502         Add support for SO_PEERCRED if its available.
2503
2504 2004-07-09  Peter Bartok <pbartok@novell.com>
2505         * loader.c: winelib.exe.so error message is now only displayed if
2506         MONO_DEBUG is set. To help us avoid questions when people are trying
2507         out the new Managed.Windows.Forms.
2508
2509 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2510
2511         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2512         for isinst and castclass wrappers.
2513
2514         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2515         to libmetadata from the JIT, so they could be used by the marshalling
2516         code and the interpreter.
2517
2518         * marshal.c: Register marshalling related JIT icalls here instead of
2519         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2520         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2521
2522         * metadata.h: Remove unneeded marshalling conversions.
2523
2524         * opcodes.c: Update for new opcodes.
2525         
2526 2004-07-08  Martin Baulig  <martin@ximian.com>
2527
2528         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2529         (mono_debug_get_domain_data): Make this function static.
2530
2531 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2532
2533         * gc.c, object.h: add nice GC handle API for embedders.
2534
2535 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2536
2537         * reflection.c: more changes for the new api
2538
2539         * object.c: When we reflect on a field w/ a constant value, it
2540         will not have a memory location, so we must access metadata. Also,
2541         allow easier reading of strings so that we can read them from
2542         the constant data.
2543
2544         * class.c (mono_class_layout_fields): no need for literal fields here.
2545
2546         * class-internals.h: api changes for const fields
2547
2548         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2549
2550 2004-07-06  Martin Baulig  <martin@ximian.com>
2551
2552         * mono-debug.h: Increment version number to 44.
2553
2554         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2555         now a gpointer, rewrote this whole method.
2556
2557         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2558         function.  Add information about the wrapper in a new "misc table".
2559
2560         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2561         for the new misc table.
2562
2563 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2564
2565         * metadata-internals.h image.c: Add a cache for helper signatures.
2566
2567         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2568
2569 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2570
2571         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2572         delegates from a delegate. Fixes #61033.
2573         
2574         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2575         marshalling of stringbuilder arrays. Fixes #59900.
2576
2577 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2578
2579         * icall.c: Add EnumBuilder:setup_enum_type icall.
2580
2581 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2582
2583         * icall.c: Added a new icall for the property version of
2584         OffsetOfStringData.
2585
2586 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2587
2588         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2589         it has a constant size across platforms.
2590
2591         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2592         stack trace.
2593
2594 2004-06-29  Martin Baulig  <martin@ximian.com>
2595
2596         * mono-debug.c (mono_debug_add_method): Protect the whole function
2597         in mono_debugger_lock(), not just parts of it.
2598
2599 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2600
2601         * reflection.c: make sure padding bytes in heaps are zeroed.
2602
2603 2004-06-24  David Waite  <mass@akuma.org>
2604
2605         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2606         image.c, loader.c, locales.c, marshal.c, metadata.c,
2607         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2608         string-icalls.c, threads.c: change to C90-style comments from C99 /
2609         C++ -style
2610
2611 2004-06-24  Dick Porter  <dick@ximian.com>
2612
2613         * threads.c
2614         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2615         return createdNew.  Fixes bug 60412.
2616
2617         * threads-types.h: 
2618         * icall.c: Add createdNew parameter to CreateMutex icall
2619
2620 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2621
2622         * reflection.c, object-internals.h: save default value in params.
2623
2624 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2625
2626         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2627         no need to build a new path combining that with the application base.
2628         Fixes bug #60442.
2629
2630 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2631
2632         * reflection.c: fixed minor standard compliance issues.
2633
2634 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2635
2636         * reflection.c: fixed issue with encoding some custom attributes
2637         (arrays in properties and fields, bug #60411).
2638
2639 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2640
2641         * reflection.c: fix start address when copying the public key token.
2642
2643 2004-06-23  Martin Baulig  <martin@ximian.com>
2644
2645         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2646         the `exc' object in a static object to put it into the GC's root set.
2647
2648 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2649
2650         * reflection.c: make mono_reflection_setup_internal_class ()
2651         callable a second time to setup a new parent class.
2652
2653 2004-06-23  Dick Porter  <dick@ximian.com>
2654
2655         * threads.c: Check for WAIT_IO_COMPLETION return values.
2656
2657 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2658
2659         * appdomain.c: Removed the g_free on the public key token. Now copy 
2660         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2661         * assembly.c: Added public key token string value when loading 
2662         assemblies. Fix bug #60439.
2663         * icall.c: Added missing informations (like public key) in 
2664         GetReferencedAssemblies. Fix #60519.
2665         * image.h: Changed definition for public key token from const char*
2666         public_tok_value to guchar public_key_token [17];
2667         * reflection.c: Updated for changes to public key token.
2668
2669 2004-06-22  Lluis Sanchez Gual
2670
2671         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2672         for the field in base classes.
2673
2674 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2675
2676         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2677         mark headers as not supported, they are installed only for use by the
2678         debugger.
2679
2680 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2681
2682         * *.c, *.h: avoid namespace pollution in public headers.
2683
2684 2004-06-21  Martin Baulig  <martin@ximian.com>
2685
2686         * exception.c (mono_get_exception_security): It's in
2687         "System.Security", not in "System".
2688
2689         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2690         the exception classes.
2691
2692 2004-06-21  Martin Baulig  <martin@ximian.com>
2693
2694         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2695         Protect the exception object from being finalized.
2696
2697 2004-06-21  Martin Baulig  <martin@ximian.com>
2698
2699         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2700         public function.
2701
2702 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2703
2704         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2705         if it was not loaded before. Fix parts of #60439.
2706
2707 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2708
2709         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2710         code that was broken since Ben's change: wrappers are now
2711         dependent on the method signature only again.
2712
2713 2004-06-21  Martin Baulig  <martin@ximian.com>
2714
2715         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2716         added interface support.
2717
2718 2004-06-21  Martin Baulig  <martin@ximian.com>
2719
2720         * class.c (mono_vtable_get_static_field_data): New public method.
2721
2722 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2723
2724         * filewatcher.c : Windows build fix to be compliant with API changes.
2725
2726 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2727
2728         * class.h, class.c: more accessors.
2729         * metadata.h, metadata.c: prepare for hiding MonoType and
2730         MonoMethodSignature: people should use the accessors from now on
2731         outside of the tree.
2732
2733 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2734
2735         * *.c, *.h: more API cleanups.
2736
2737 2004-06-18  Jackson Harper  <jackson@ximian.com>
2738
2739         * assembly.c: Trace loading assemblies.
2740         * loader.c: Trace loading native libraries.
2741         * mono-config.c: Trace loading config files.
2742         
2743 2004-06-18  Dick Porter  <dick@ximian.com>
2744
2745         * locales.c: Tell ICU the lengths of strings, it can cope with
2746         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2747
2748 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2749
2750         * image.c: swapped name/filename;
2751
2752 2004-06-18  Martin Baulig  <martin@ximian.com>
2753
2754         * mono-debug-debugger.c (write_class): Write the parent class at
2755         the end of the header.
2756
2757 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2758
2759         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2760
2761 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2762
2763         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2764         (bundle_obj): New conditional define.
2765         (BUILT_SOURCES): Remove.
2766         ($(bundle_srcs)): Make parallel-make safe.
2767         (libmonoruntime_la_LIBADD): Make unconditional.
2768         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2769         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2770
2771 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2772
2773         * culture-info-tables.h: It was inconsistent with the latest
2774           supp info files.
2775
2776 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2777
2778         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2779         be loaded.
2780
2781         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2782         with gcc 2.95.
2783
2784 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2785
2786         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2787         cleaned up public header threads.h.
2788
2789 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2790
2791         * Makefile.am, *.c, *.h: more API cleanups.
2792
2793 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2794
2795         * Makefile.am: removed monosn from compilation.
2796         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2797         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2798         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2799         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2800         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2801         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2802
2803 2004-06-15  Jackson Harper  <jackson@ximian.com>
2804
2805         * assembly.c: Make locales lower case when searching the GAC for
2806         assemblies. gacutil will always make locales lowercase when
2807         installing so this effectively makes them case insensitive.
2808         
2809 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2810
2811         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2812         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2813           parameter which allows to choose whether the wait can be interrupted or 
2814           not. Also added the method mono_monitor_enter(), which locks the monitor
2815           using an infinite wait and without allowing interruption.
2816           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2817           interrupted.
2818         * object.h: Added new fields in MonoThread. suspend_event holds the event
2819           used to susped/resume the thread. synch_lock is the lock object to use for
2820           modifying the thread state.
2821         * threads.c: Use the new synch_lock object for locking, instead of "this",
2822           which can generate deadlocks.
2823           Moved thread state change in Thread.Sleep and Thread.Join from managed
2824           to unmanaged code. This avoids a deadlock when the thread was suspended
2825           just after acquiring the thread lock.
2826           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2827           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2828           which is not fully implemented in the io-layer.
2829         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2830
2831 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2832
2833         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2834         threads-types.h: more API cleanups.
2835
2836 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2837
2838         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2839         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2840         threadpool.c, threads.c: first pass at the exported API cleanup.
2841
2842 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2843
2844         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2845
2846 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2847
2848         * icall.c: added internalGetHome.
2849
2850 2004-06-14  Dick Porter  <dick@ximian.com>
2851
2852         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2853         possible to return successfully when '.' or '..' were the only
2854         entries in a directory, but were skipped.  The MonoIOStat was not
2855         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2856         Fixes bug 59574.
2857
2858 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2859
2860         * reflection.c: make binaries run on .Net 1.1 by default.
2861
2862 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2863
2864         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2865
2866 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2867
2868         * marshal.c: keep track of struct size with explicit layout
2869         (bug #59979).
2870
2871 2004-06-12  Martin Baulig  <martin@ximian.com>
2872
2873         * mono-debug-debugger.c: Comment out a debugging g_message().
2874
2875 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2876
2877         * reflection.c, reflection.h: do not free custom attrs that are cached.
2878         * icall.c: use braces to make code clearer.
2879
2880 2004-06-11  Martin Baulig  <martin@ximian.com>
2881
2882         * class.h (MonoInflatedField): New type.
2883         (MonoClassField): Replaced `MonoType *generic_type' with
2884         `MonoInflatedField *generic_info'.
2885
2886         * icall.c
2887         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2888
2889 2004-06-11  Martin Baulig  <martin@ximian.com>
2890
2891         * reflection.c (mono_image_create_method_token): Correctly encode
2892         varargs methods.
2893
2894 2004-06-11  Martin Baulig  <martin@ximian.com>
2895
2896         * metadata.c (mono_metadata_parse_method_signature): When parsing
2897         a MethodDef which has VarArgs, also set sentinelpos if we don't
2898         have any parameters.
2899
2900 2004-06-11  Martin Baulig  <martin@ximian.com>
2901
2902         * verify.c (mono_method_verify): In CEE_CALL, use
2903         mono_method_get_signature() to get the method's signature, unless
2904         we're a PInvoke method.
2905
2906 2004-06-10  Jackson Harper  <jackson@ximian.com>
2907
2908         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2909         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2910         logical name as the supplied path is just a prefix to the gac not
2911         the direct path to it.
2912         
2913 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2914
2915         * reflection.c: make the token for a created method match
2916         the token of the MethodBuilder it was created from
2917         (IKVM requires this behaviour now).
2918
2919 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2920
2921         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2922         reflection.c, socket-io.c: leak fixes.
2923
2924 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2925
2926         * icall.c: handle sentinel pos in vararg methods in position different
2927         from 0.
2928
2929 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2930
2931         * culture-info-tables.h: freshly generated.
2932
2933 2004-06-09  Martin Baulig  <martin@ximian.com>
2934
2935         * loader.c (mono_get_method_constrained): Call `mono_class_init
2936         (constrained_class)'.   
2937
2938 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2939
2940         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2941         any methods. Fixes #59629.
2942
2943 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2944
2945         * culture-info-tables.h: reflecting locale-builder updates.
2946
2947 2004-06-08  Dick Porter  <dick@ximian.com>
2948
2949         * object.h:
2950         * locales.c: Fixed compile warnings, including a real bug in
2951         CompareInfo_internal_compare.
2952         
2953 2004-06-08  Dick Porter  <dick@ximian.com>
2954
2955         * locales.c
2956         (ves_icall_System_Globalization_CompareInfo_internal_index):
2957         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2958         Double-check the resuls of usearches, because ICU currently
2959         ignores most of the collator settings here.  Fixes bug 59720.
2960         
2961 2004-06-08  Dick Porter  <dick@ximian.com>
2962
2963         * locales.c
2964         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2965         Fix memory leak and segfault-causing typo.  No idea how this one
2966         lasted so long without being noticed.
2967
2968 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2969
2970         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2971         any methods. Fixes #59629.
2972
2973 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2974
2975         * assembly.c:
2976         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2977         own the critical section before). Removed dead code (that's done
2978         in the preload hook).
2979
2980         (mono_assembly_load_with_partial_name): call the preload hook.
2981
2982 2004-06-08  Martin Baulig  <martin@ximian.com>
2983
2984         * metadata.c (mono_metadata_signature_alloc): Default
2985         `sentinelpos' to -1.
2986
2987         * reflection.c (mono_image_get_array_token): Likewise.
2988
2989 2004-06-08  Martin Baulig  <martin@ximian.com>
2990
2991         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2992
2993         * metadata.c (mono_metadata_parse_method_signature): When parsing
2994         a MethodDef which has VarArgs, set sentinelpos.
2995
2996         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2997         `gint16' since we're using -1 for non-varargs methods.
2998
2999         * reflection.c
3000         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
3001         (method_encode_signature): Added varargs support.
3002         (method_builder_encode_signature): Likewise.
3003         (mono_image_get_varargs_method_token): New static method.
3004         (mono_image_create_method_token): New public method; this is
3005         called via an icall instead of mono_image_create_token() when
3006         calling a varargs method.       
3007
3008 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
3009
3010         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
3011
3012 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3013
3014         * culture-info-tables.h : Reflecting the latest locale-builder that
3015           fixed empty array representation ({} to {0}).
3016
3017 2004-06-07  Jackson Harper  <jackson@ximian.com>
3018
3019         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
3020         looking up extra gac paths. This allows MONO_GAC_PATH to act
3021         exactly like a prefix.
3022         
3023 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3024
3025         * reflection.c (mono_reflection_type_from_name): Make a copy of the
3026         type name before modifying it. Fixes #59405.
3027
3028 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3029
3030         * culture-info.h: added fields for "all datetime patterns".
3031         * locales.c: (  ves_icall_System_Globalization_CultureInfo
3032           _construct_datetime_format ()): fill xxx_patterns fields.
3033         * object.h: added fields for "all datetime patterns" to
3034           MonoDateTimeFormatInfo.
3035         * culture-info-tables.h: reflecting locale-builder updates.
3036
3037 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3038
3039         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
3040         the event has no add and remove methods. Fixes #59629.
3041
3042 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
3043
3044         * object.c: Fixed possible integer overflow when allocating large
3045         strings.
3046
3047 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3048
3049         * culture-info-tables.h: reflecting locale-builder updates.
3050
3051 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3052
3053         * culture-info-tables.h: reflecting locale-builder updates.
3054
3055 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
3056
3057         * culture-info-tables.h: reflecting locale-builder updates.
3058
3059 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
3060
3061         * threads.c: Made Thread.Sleep abortable.
3062
3063 2004-06-02  Martin Baulig  <martin@ximian.com>
3064
3065         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
3066
3067         * debug-mono-symfile.h: Bumped symbol file version number to 37.
3068
3069 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
3070
3071         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
3072
3073 2004-05-30  Jackson Harper  <jackson@ximian.com>
3074
3075         * reflection.c: Do not hardcode assembly versions or public key
3076         tokens anymore. All of this except the corlib section was dead
3077         code anyways.
3078         
3079 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
3080
3081         * object.c (mono_runtime_invoke_array): Automatically create boxed
3082         objects for byref valuetypes if needed. Fixes #59300.
3083         
3084         * object.c (mono_method_return_message_restore): Handle 
3085         MONO_TYPE_OBJECT as well.
3086
3087 2004-05-28  Jackson Harper  <jackson@ximian.com>
3088
3089         * reflection.c: The modified type encoding was causing build
3090         problems. Reverted for now.
3091         
3092 2004-05-28  Jackson Harper  <jackson@ximian.com>
3093
3094         * reflection.c/h: Take an assembly ref so that we dont create
3095         fully qualified names when encoding types in the same assembly as
3096         the custom attribute being emitted.
3097         * appdomain.c: Increment version number.
3098         
3099 2004-05-26  Duncan Mak  <duncan@ximian.com>
3100
3101         * icall.c
3102         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
3103         Set the full version number (major, minor, build, revision).
3104
3105 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
3106
3107         * marshal.c (emit_struct_conv): increment src/dst after blit
3108         (mono_marshal_get_managed_wrapper,
3109         mono_marshal_get_native_wrapper): make sure we have marshalling
3110         info before marshalling params (info computation affects
3111         blittable)
3112
3113         * class.c (class_compute_field_layout): correctly deal with
3114         blittable
3115         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
3116         value types (as per what windows dows by default)
3117         (mono_class_setup_mono_type): System.ValueType is blittable
3118         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
3119         blittable
3120
3121         * marshal.c (mono_marshal_load_type_info): flag types  as
3122         non-blittable if the native layout doesn't match the managed
3123         layout
3124
3125 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3126
3127         * appdomain.c: don't add stuff in the private search path that is
3128         above the application base. If application base is not set, there's
3129         no private search path.
3130
3131 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
3132
3133         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
3134         byref struct arguments in native->managed marshalling.
3135
3136 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
3137
3138         * marshal.c (mono_marshal_get_runtime_invoke): correctly
3139         cache methods using signature (special case for methods
3140         that are value type or string class)
3141         
3142         * image.c (mono_image_close): clean up allocated GSList's
3143         in runtime_invoke_cache.
3144
3145 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3146
3147         * mono-config.c: set the correct path for mono_cfg_dir on windows when
3148         there's no MONO_CFG_DIR environment variable defined.
3149
3150 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3151
3152         * threads.c: windows version must be >= 0x0500 to include OpenThread.
3153
3154 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
3155
3156         * threadpool.c: Really wait for 500ms after the async call, even if the wait
3157           is interrumped.
3158         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
3159           before waiting for it, and call CloseHandle after the wait to unref it.
3160           This will make sure that handles are not disposed too early.
3161
3162 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3163
3164         * appdomain.c:
3165         * appdomain.h:
3166         * icall.c: removed
3167         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
3168         needed now.
3169
3170         * object.c: se the application_base only for the domain that runs
3171         Main. Fixes bug #59216,
3172
3173 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3174
3175         * appdomain.c:
3176         * object.c: only the domain in which Main is run have
3177         SetupInformation.ConfigurationFile set, so moved a few lines from
3178         appdomain.c to object.c.
3179
3180 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3181
3182         * appdomain.c: we tried to load [name].(dll|exe), but according
3183         to bug #57710, we must also try [culture]/[name].(dll|exe) and
3184         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
3185         There's a test case attached to bug #58922.
3186
3187 2004-05-27  Dick Porter  <dick@ximian.com>
3188
3189         * icall.c:
3190         * file-io.c: Implemented icalls for locking and unlocking regions
3191         in a file.
3192         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3193         FALSE on error (fixes both compiler warning and real bug.)
3194
3195 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
3196
3197         * culture-info-tables.h: reflecting locale-builder updates.
3198
3199           (Added missing ChangeLog entry for 05/26)
3200
3201 2004-05-27  Jackson Harper  <jackson@ximian.com>
3202
3203         * locales.c: Fix some cut and paste errors.
3204         
3205 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3206
3207         * mono-config.c: set the correct path for config. directory on windows.
3208
3209 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3210
3211         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3212           on win32.
3213
3214 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3215
3216         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3217         from pinvoke functions.
3218         
3219         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3220
3221 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3222
3223         * culture-info-tables.h: reflecting locale-builder updates.
3224
3225 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3226
3227         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3228         #59086.
3229
3230 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3231
3232         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3233         * icall.c: Modified icalls for RNG.
3234         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3235         Windows (CryptoAPI).
3236
3237 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3238
3239         * locales.c: Fix build.
3240
3241 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3242
3243         * culture-info-tables.h: reflecting locale-builder updates.
3244
3245 2004-05-25  Jackson Harper  <jackson@ximian.com>
3246
3247         * locales.c: When creating the current culture use the $LANGs
3248         specific culture. So DateTimeFormat and NumberFormat entries are created.
3249         
3250 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3251
3252         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3253         a char array as parameter.
3254
3255 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3256
3257         * image.c: In mono_image_open(), always use an absolute path name to
3258           look for already loaded images.
3259
3260 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3261
3262         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3263         missing in the windows build (like older cygwin include files).
3264
3265 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3266
3267         * icall.c: Fixed check for possible integer overflow in Buffer_
3268         BlockCopy icall. Replaced comments style // by /* */.
3269
3270 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3271
3272         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3273         
3274         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3275         check after MONO_VTADDR. Fixes pinvoke2.exe.
3276
3277         * marshal.h marshal.c metadata.h: Add beginnings of support for
3278         ftnptr -> delegate marshalling.
3279
3280 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3281
3282         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3283         * threads.c: Fix warnings.
3284
3285 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3286
3287         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3288         * icall.c: Registered icalls for Suspend and Resume.
3289         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3290           Thread.Abort.
3291         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3292         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3293         * process.c: Use WaitForSingleObjectEx.
3294         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3295           checkpoints.
3296         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3297           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3298           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3299           background threads. Added basic support for Abort in Windows.
3300           Start new threads using a managed delegate invoke wrapper. This wrapper
3301           has an interruption checkpoint that is needed since an interruption
3302           can be requested before the thread leaves the unmanaged code that starts 
3303           the thread.
3304         * marshal.c: Added interruption checkpoint after every native call, and
3305           also before managed calls for wrappers called from unmanaged code to
3306           go into managed code.
3307         * object.h: Added new field in MonoThread to keep track of interruption
3308           requests.
3309
3310 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3311
3312         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3313         calls.
3314
3315 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3316
3317         * appdomain.c:
3318         * assembly.c:
3319         * gc.c:
3320         * locales.c:
3321         * mono-config.c:
3322         * rand.c: getenv -> g_getenv (windows!)
3323
3324         * process.c: complete_path is also used on non-windows platforms.
3325
3326 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3327
3328         * icall.c: new signature for Process_Start.
3329
3330         * process.[ch]: new signature for Process_Start. If we're on windows
3331         and UseShellExecute is false, we have to search for the program by
3332         ourselves if we don't get a full path.
3333
3334 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3335
3336         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3337         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3338
3339 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3340
3341         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3342         Fixes bug #58373.
3343
3344 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3345
3346         * process.c: use double quotes to quote program name and arguments on
3347         windows. Fixes bug #58575.
3348
3349 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3350
3351         * file-io.c: don't return "." and ".." when using windows Find*File.
3352
3353 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3354
3355         * marshal.c: Don't pass wrappers to message init because method 
3356         addressed used to lookup metadata. part of remoting[2|3] fix.
3357
3358 2004-05-15  Jackson Harper  <jackson@ximian.com>
3359
3360         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3361         path is essentially the same as MONO_PATH except that it points to
3362         GACs instead of lib directories.
3363         * loader.h: The user gac is gone so we dont need function to
3364         enable/disable it.
3365         * mono-config.c: user gac option is now gone.
3366         
3367 2004-05-15  Jackson Harper  <jackson@ximian.com>
3368
3369         * culture-info.h: Make defines more consistent, add calendar data
3370         to the culture info table.
3371         * culture-info-tables.h: Add basic calendar data. Basically
3372         everyone gets default gregorian until all the data is
3373         updated.
3374         * locales.c: Use the new consistent defines. Set calendar data for
3375         culture info objects.
3376         * object.h: add a field for calendar data to CultureInfo
3377         
3378 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3379
3380         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3381         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3382         a signature.
3383         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3384         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3385         an extra param that is the pointer of the method to invoke. The IL for
3386         the invoke method is no longer specific to the method, but to the
3387         signature of the method. Thus, we can share the same code for multiple
3388         methods. This reduces the number of methods that have to be compiled.
3389
3390 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3391
3392         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3393
3394         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3395
3396         * icall.c: Optimize Buffer.BlockCopy.
3397
3398 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3399
3400         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3401         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3402         quote). Changed them to "MMMM yyyy".
3403
3404 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3405
3406         * rand.c
3407         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3408
3409 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3410
3411         * reflection.h: Updated after changes to managed structures.
3412
3413         * appdomain.c: Bump corlib version.
3414
3415 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3416
3417         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3418         windows.
3419
3420 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3421
3422         * Makefile.am: link to ../os/libmonoos.la on windows.
3423
3424         * assembly.c:
3425                 -If MONO_DEBUG, warn about non-existing directories in
3426                 MONO_PATH.
3427                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3428                 compile time variable.
3429                 -Removed init_default_path and call mono_set_rootdir from
3430                 libmonoos.a instead (windows only).
3431
3432         * assembly.h: declare mono_assembly_getrootdir().
3433
3434         * domain.c:
3435         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3436
3437         * loader.c: s/getenv/g_getenv/
3438
3439 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3440
3441         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3442
3443         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3444
3445         * metadata.h: Add new marshalling conversions.
3446
3447         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3448         function.
3449
3450         * reflection.c (mono_reflection_get_type): Lookup the type in all
3451         modules of a multi-module assembly. Fixes #58291.
3452
3453 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3454
3455         * threads.c: Before aborting a background, set the StopRequested
3456         state.  This avoids throwing the Abort exception.
3457         In mono_thread_manage, don't continue with the shutdown until all
3458         aborted threads have actually stopped.
3459
3460 2004-05-10  Jackson Harper  <jackson@ximian.com>
3461
3462         * locales.c: Remove the modifier from culture names.
3463         
3464 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3465
3466         * Makefile.am: monosn is not installed any more. It has been deprecated
3467         in favor of sn.
3468
3469 2004-05-07  Jackson Harper  <jackson@ximian.com>
3470
3471         * locales.c
3472         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3473         Fix array construction, add bailout if the length is 0.
3474
3475 2004-05-07  Dick Porter  <dick@ximian.com>
3476
3477         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3478         machine doesn't have a DNS entry.  Patch by Urs Muff
3479         (umuff@quark.com), fixes bug 57928.
3480
3481 2004-05-06  Jackson Harper  <jackson@ximian.com>
3482
3483         * reflection.c: Handle null PublicTokens properly. alloc mem for
3484         assembly names culture so we dont crash when freeing it.
3485         
3486 2004-05-06  Jackson Harper  <jackson@ximian.com>
3487
3488         * assembly.c: Check the usergac when loading with partial names.
3489         
3490 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3491
3492         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3493         does nothing for now (not required for Linux/Windows) but the class
3494         library can call it (and a newer or modified runtime could need it).
3495         * icall.c: Registred icall.
3496
3497 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3498
3499         * loader.c: prints a message on module loading error we set MONO_DEBUG
3500         environment variable.
3501
3502 2004-05-05  Jackson Harper  <jackson@ximian.com>
3503
3504         * appdomain.c: Handle PublicKeyToken=null properly.
3505         
3506 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3507
3508         * environment.c|h: Added icall ves_icall_System_Environment_
3509         GetOSVersionString to get the current OS version as a string.
3510         * icall.c: Registred icall.
3511
3512 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3513
3514         * object.c: in mono_object_get_virtual_method(), take into account that
3515         non-virtual methods don't have a slot in the vtable. Check needed when
3516         the object is a proxy.
3517
3518 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3519
3520         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3521         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3522
3523         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3524
3525         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3526         passed when a valuetype is expected.
3527
3528         * object.c (mono_unhandled_exception): Only set the exit code if the
3529         exception happens in the main thread. Fixes thread5.exe.
3530
3531         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3532         invalid names. Fixes #58047.
3533
3534 2004-05-03  Jackson Harper  <jackson@ximian.com>
3535
3536         * assembly.c: This line was committed accidently and is unneeded.
3537         
3538 2004-05-03  Jackson Harper  <jackson@ximian.com>
3539
3540         * icall.c: Add new icall for Assembly::LoadWithPartialName
3541         * assembly.c/.h: new function that probes the GAC to load partial
3542         assembly names by Paolo Molaro.
3543         
3544 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3545
3546         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3547         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3548         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3549         full type name.
3550
3551 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3552
3553         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3554         * reflection.c: fix bug when parsing a full type name and Version is not
3555         the last thing in the string.
3556
3557 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3558
3559         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3560         crashes when it is freed.
3561
3562 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3563
3564         * assembly.c: print the compat warning to stderr.
3565
3566 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3567
3568         * assembly.c (mono_assembly_load_references): Add a compatibility
3569         hack to run old applications that might be still referencing the
3570         3300-based assemblies, only do this for System.xxx.
3571
3572 2004-05-01  Jackson Harper  <jackson@ximian.com>
3573
3574         * appdomain.c: If the culture is neutral we set it to "".
3575         
3576 2004-04-29  Jackson Harper  <jackson@ximian.com>
3577
3578         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3579
3580 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3581  
3582         * string-icalls.c: added low overhead function for copying chars
3583         * icall.c: added needed icall for the above function
3584  
3585 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3586
3587         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3588         Environment.GetLogicalDrives.
3589
3590 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3591
3592         * rand.c: try and talk to egd or prngd
3593         for random bytes if opening devices fail.
3594
3595 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3596
3597         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3598         alignment for the type using the native alignment of its members 
3599         instead of using klass->min_align.
3600
3601         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3602
3603 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3604
3605         * file-io.c:
3606         * socket-io.c: added check for sys/aio.h.
3607
3608 2004-04-28  Dick Porter  <dick@ximian.com>
3609
3610         * threads.c: Don't abort a thread thats already aborting, when
3611         terminating everything.
3612
3613 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3614
3615         * icall.c: added 2 new async calls for Socket.
3616
3617         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3618         IO on *nix systems.
3619
3620         * threadpool.c: removed unused variable.
3621
3622 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3623
3624         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3625
3626 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3627
3628         * locales.c: put back string_invariant_tolower () and
3629         string_invariant_toupper ().
3630
3631 2004-04-26 David Waite <mass@akuma.org>
3632
3633         * file-io.h:
3634         * socket-io.h:
3635         * threads.h:
3636         * unicode.h: remove comma from end of enumeration declarations
3637
3638 2004-04-26 David Waite <mass@akuma.org>
3639
3640         * debug-mono-symfile.h:
3641         * decimal.c:
3642         * mono_debug.h:
3643         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3644
3645
3646 2004-04-26  Jackson Harper  <jackson@ximian.com>
3647
3648         * appdomain.c: Increment version number.
3649         
3650 2004-04-26  Jackson Harper  <jackson@ximian.com>
3651
3652         * appdomain.c: Set assembly references public token value when
3653         PublicKeyToken is specified, not the hash_value. Free public token
3654         values when free assembly name data. Previously the public key
3655         token was hex decoded, however we are using hex encoded public key
3656         tokens, so this is not neccasary.
3657         * assembly.c: Lookup assemblies in the gac if their public token
3658         value is set. Add function to allow enabling user gac
3659         lookups. Specify whether or not the assembly was loaded from the
3660         GAC. Compare full assembly names when checking the cache for
3661         assemblies (Temporarily disabled see comment in code). Remove
3662         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3663         specifies trace-loader they get extra info to stdout on the
3664         loading of assemblies.
3665         * image.h: Add a field for an assembly references public token
3666         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3667         whether an assembly has been loaded from the GAC.
3668         * image.c: Remove a corlib -> mscorlib name mapping.
3669         * loader.h: Add function to enable/disable the user gac.
3670         * mono-config.c: Check if the usergac is enabled in the config
3671         file.
3672         * icall.c: New icall to determine whether or not an assembly has
3673         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3674         * tabldefs.h: Add constant for assemblyref flag that specifies a
3675         full public key is used instead of a public token.
3676         * reflection.c: Remove mscorlib -> corlib mappings. Set
3677         PublicTokenValue instead of hash value. This value is a hex
3678         string so it does not need to be expanded.
3679
3680 2004-04-26  Martin Baulig  <martin@ximian.com>
3681
3682         * mono-debug-debugger.c (mono_debugger_initialize): Set
3683         `mono_debugger_initialized' before calling mono_debug_lock().
3684
3685 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3686
3687         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3688           InternalToUpper/InternalToLower.
3689         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3690           removed invariant culture shortcut.  This is now done in managed code.
3691         * locales.c: (string_invariant_toupper/tolower) removed.
3692
3693 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3694
3695         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3696         Added Poll internal call.
3697
3698         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3699         call for Poll. Select was too heavy for polling a single socket.
3700
3701         * threadpool.[ch]: added mono_threadpool_cleanup.
3702         * threads.c: use it. Don't use Thread_Abort on windows.
3703
3704 2004-04-23  Martin Baulig  <martin@ximian.com>
3705
3706         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3707
3708 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3709
3710         * icall.c: Registred new icalls for key pair protection and added an
3711         icall for Environment.GetFolderPath on Windows.
3712         * security.c|h: Added new icalls for key pair protection.
3713
3714 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3715
3716         * socket-io.c: don't display the non-supported family warning for known
3717         families. Now this is not displayed on windows when checking support
3718         for IPv4/IPv6.
3719
3720 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3721
3722         * class.c: don't display the layout warning for static fields.
3723
3724 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3725
3726         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3727         * locales.c, locales.h: Added new icalls for culture-specific
3728         Char.ToLower and Char.ToUpper.
3729
3730 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3731
3732         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3733         by David Waite.
3734
3735 2004-04-20  Martin Baulig  <martin@ximian.com>
3736
3737         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3738         of the type name before passing it to mono_reflection_type_from_name().
3739
3740 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3741
3742         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3743         encodings here. Fixes #56965.
3744
3745 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3746
3747         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3748         fix test on strstr result not that I can see anything that
3749         relies on the result.
3750
3751 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3752
3753         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3754         Fixes #57081.
3755
3756         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3757
3758         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3759         function to determine which marshalling to use for strings. Fixes
3760         #56965.
3761
3762         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3763
3764         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3765
3766 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3767
3768         * icall.c: #include mono-config.h
3769
3770 2004-04-15  Jackson Harper  <jackson@ximian.com>
3771
3772         * culture-info-tables.h: Fix date formats for en-US culture.
3773         
3774 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3775
3776         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3777         ThreadPool.SetMinThreads.
3778         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3779         ThreadPool.SetMinThreads.
3780
3781 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3782
3783         * mono-config.c: also load the .config file in the directory
3784         where the assembly was found.
3785
3786 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3787
3788         * assembly.c: load per-assembly config files.
3789         * icall.c: decrapified code to get the config dir and moved to
3790         mono-config.c.
3791         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3792         per-assembly config files. When doing a dll map lookup give precedence
3793         to the per-assembly data.
3794
3795 2004-04-14  Martin Baulig  <martin@ximian.com>
3796
3797         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3798         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3799         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3800
3801         * mono-debugger-debugger.c: While the debugger is locked, remember
3802         whether the symbol tables have changes and send one single
3803         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3804
3805 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3806
3807         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3808
3809         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3810         function.
3811
3812         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3813         account when marshalling string arrays. Fixes #56965.
3814
3815 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3816
3817         * icall.c: Add new icalls mapping for security.
3818         * security.c|h: Add internal calls for WindowsIdentity,
3819         WindowsImpersonationContext and WindowsPrincipal.
3820
3821 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3822
3823         * class.c: Added comment to ensure the System.MonoDummy class
3824         is removed when no longer necessary
3825
3826 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3827
3828         * appdomain.c: Pass arguments to the bootstraping exceptions to
3829         minimize JITed methods at boot
3830
3831         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3832         second string to be null.
3833
3834         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3835         Change the protocol to minimize the JIT methods at startup.  Now
3836         it Returns the internal codepage, if the value of "int_code_page"
3837         is 1 at entry, and we can not compute a suitable code page
3838         number, returns the code page as a string.
3839
3840 2004-04-13  Jackson Harper  <jackson@ximian.com>
3841
3842         * culture-info-tables.h: Fix number of decimal digits for all
3843         english locales.
3844
3845 2004-04-13  Jackson Harper  <jackson@ximian.com>
3846
3847         * icall.c: Clairfy out of sync error message. It is not always
3848         your corlib that is out of sync.
3849
3850 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3851
3852         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3853         properties when only the set accessor is overriden. Fixes #55874.
3854
3855 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3856
3857         * assembly.c (mono_assembly_load_references): Make this thread safe.
3858         Fixes #56327.
3859
3860 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3861
3862         * monosn.c: Add missing initialization calls.
3863
3864 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3865
3866         * locales.c:
3867         ves_icall_System_Globalization_CultureInfo_construct_number_format
3868         Fix g_assert so it compiles on fussier compilers re int/ptr
3869         mismatch
3870
3871 2004-04-08  Dick Porter  <dick@ximian.com>
3872
3873         * socket-io.h:
3874         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3875         53992.  Also rearrange the code so that the internal calls return
3876         an error value and exceptions are thrown from managed code.
3877
3878         * icall.c: Add type info to the socket icalls.
3879
3880 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3881
3882         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3883         owes me a beer.
3884
3885 2004-04-07  Martin Baulig  <martin@ximian.com>
3886
3887         * class.c (mono_class_from_generic_parameter): Don't default
3888         `klass->parent' to `mono_defaults.object_type'.
3889
3890 2004-04-07  Martin Baulig  <martin@ximian.com>
3891
3892         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3893         `param->pklass->reflection_info'.       
3894
3895 2004-04-07  Jackson Harper  <jackson@ximian.com>
3896
3897         * culture-info-tables.h: Fix date separator symbol.
3898         
3899 2004-04-07  Martin Baulig  <martin@ximian.com>
3900
3901         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3902         from System.Type to System.MonoType.
3903
3904 2004-04-07  Martin Baulig  <martin@ximian.com>
3905
3906         * reflection.h
3907         (MonoReflectionGenericParam): Added `has_reference_type' and
3908         `has_value_type' fields.
3909
3910         * reflection.c (mono_image_get_generic_param_info): Encode the
3911         correct flags if we have the `class' or `struct' constraint.
3912
3913 2004-04-07  Martin Baulig  <martin@ximian.com>
3914
3915         * reflection.h
3916         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3917
3918 2004-04-07  Jackson Harper  <jackson@ximian.com>
3919
3920         * appdomain.c: Revert extra patches, just wanted to bump the
3921         version number.
3922         
3923 2004-04-07  Jackson Harper  <jackson@ximian.com>
3924
3925         * Makefile.am: Add culture-info private headers.
3926         * icall.c: Add new icalls for contructing locales.
3927         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3928         * locales.h: Declare new culture info construction methods.
3929         * object.h: Add new fields used to avoid the CultureMap to
3930         MonoCultureInfo.
3931         * culture-info.h: Definition of structs used in the culture info
3932         tables.
3933         * culture-info-tables.h: Autogenerated tables that contain culture
3934         info data. This file was generated with the locale-builder tool.
3935         * appdomain.c: Incement corlib version number.
3936         
3937 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3938
3939         * appdomain.c: (mono_runtime_init) move mono_thread_init
3940         to before mono_object_new calls so critical sections
3941         are initialized before use.
3942
3943 2004-04-07  Martin Baulig  <martin@ximian.com>
3944
3945         * icall.c
3946         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3947         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3948         (ves_icall_MonoGenericParam_initialize): Removed.
3949         (monogenericparam_icalls): Removed.
3950         (generictypeparambuilder_icalls): Added new table for
3951         System.Reflection.Emit.GenericTypeParameterBuilder.
3952
3953         * reflection.c
3954         (mono_reflection_define_generic_parameter): Removed.
3955         (mono_reflection_initialize_generic_parameter): This is now called
3956         from GenericTypeParameterBuilder's .ctor.
3957
3958 2004-04-06  Martin Baulig  <martin@ximian.com>
3959
3960         * class.c (mono_class_init): Don't inflate nested classes in a
3961         generic instance.
3962         (mono_type_get_name_recurse): Include the generic arguments for
3963         generic instances and generic type declarations.
3964         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3965         (_mono_class_get_instantiation_name): Removed.
3966         (mono_class_create_generic): Always use `gklass->name' as our name.
3967
3968         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3969
3970         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3971         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3972         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3973         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3974         closed generic methods here.
3975
3976         * reflection.c
3977         (mono_reflection_generic_inst_get_nested_types): Removed.
3978         (inflate_mono_method): Copy the generic parameters from the
3979         MonoMethodHeader into out MonoGenericMethod.
3980
3981 2004-04-06  Martin Baulig  <martin@ximian.com>
3982
3983         * row-indexes.h
3984         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3985
3986         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3987
3988         * reflection.c (build_compressed_metadata): If we have any entries
3989         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3990         set the header version to 1.1.
3991
3992 2004-04-06  Martin Baulig  <martin@ximian.com>
3993
3994         * class.c (mono_class_init): If we're a generic instance,
3995         initialize our nested classes, too.
3996         (_mono_class_get_instantiation_name): Deal with the new `!%d'
3997         suffix. 
3998
3999 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4000
4001         * process.c: quote the argument passed to the shell on windows.
4002
4003 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
4004
4005         * threads.c (mono_alloc_special_static_data): Allow this to be
4006         called during startup.
4007
4008 2004-04-02  Martin Baulig  <martin@ximian.com>
4009
4010         * icall.c
4011         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
4012
4013 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
4014
4015         * icall.c: Fix build.
4016
4017 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
4018
4019         * Makefile.am: Added security.c|h.
4020         * icall.c: Added icall for get_UserName;
4021         * security.c: New file for security related icalls. Added function
4022         get_UserName for System.Environment (fix #56144).
4023         * security.h: New. Header file for security.c
4024
4025 2004-04-02  Dick Porter  <dick@ximian.com>
4026
4027         * icall.c: Deleted the icalls that were obsoleted some time ago
4028         by the ICU string code, and which were mixed into the icall
4029         rearranging.  Fixes bug 55969.
4030
4031         * string-icalls.h: 
4032         * string-icalls.c: Deleted the code that those icalls reference.
4033
4034 2004-04-01  Martin Baulig  <martin@ximian.com>
4035
4036         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
4037
4038         * class.c (mono_class_from_generic_parameter): Don't set 
4039         TYPE_ATTRIBUTE_INTERFACE.
4040         (my_mono_class_from_generic_parameter): Likewise.
4041
4042 2004-04-01  Martin Baulig  <martin@ximian.com>
4043
4044         * loader.c (find_method): Added an optional `MonoClass *ic'
4045         argument to search in a specific interface.
4046         (mono_get_method_constrained): New public function.
4047
4048 2004-04-01  Martin Baulig  <martin@ximian.com>
4049
4050         * reflection.c (mono_image_get_generic_field_token): Use the
4051         `handleref' cache here.
4052
4053 2004-04-01  Martin Baulig  <martin@ximian.com>
4054
4055         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
4056
4057         * reflection.c (create_generic_typespec): Use the `typespec' hash
4058         here, not the `typeref' one.    
4059
4060 2004-04-01  Martin Baulig  <martin@ximian.com>
4061
4062         * class.c (mono_class_inflate_generic_type): Moved the
4063         functionality into a new static inflate_generic_type() which
4064         returns NULL if it didn't do anything.  Only increment the
4065         `mono_stats.inflated_type_count' if we actually inflated
4066         something.
4067         (mono_class_get_full): Check the classes type to see whether we
4068         need to inflate it; also inflate MONO_TYPE_(M)VAR.
4069
4070 2004-04-01  Jackson Harper  <jackson@ximian.com>
4071
4072         * reflection.c: Set culture for assembly references.
4073         
4074 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
4075
4076         * reflection.[ch], icall.[ch], Fix support for pinning variables.
4077
4078 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4079
4080         * assembly.c:
4081         (do_mono_assembly_open): the critical section also covers
4082         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
4083
4084 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4085
4086         * threads.c:
4087         (mono_manage_threads): abort the background threads when finishing.
4088         Fixes bug #47232.
4089
4090 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4091
4092         * gc.c: only close the done_event handle if there was no timeout.
4093         C-ified comments.
4094
4095 2004-03-30  Martin Baulig  <martin@ximian.com>
4096
4097         * icall.c (icall_entries): It's called "System.Activator", not
4098         "System.Activation".    
4099
4100 2004-03-30  Martin Baulig  <martin@ximian.com>
4101
4102         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
4103         (mono_class_create_from_typespec): Likewise.
4104
4105 2004-03-30  Martin Baulig  <martin@ximian.com>
4106
4107         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
4108         `has_ctor_constraint' and `initialized'.
4109
4110 2004-03-30  Martin Baulig  <martin@ximian.com>
4111
4112         * reflection.c (encode_new_constraint): New static function to add
4113         the constructor constraint attribute to a type parameter.
4114         (encode_constraints): Call encode_new_constraint() if necessary.
4115
4116         * reflection.h
4117         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
4118
4119         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
4120         
4121 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
4122
4123         * reflection.c, icall.c: add support for pinning variables. 
4124
4125 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
4126
4127         * marshal.c (mono_marshal_get_managed_wrapper):
4128         init bool local with zero rather than null.
4129
4130 2004-03-29  Martin Baulig  <martin@ximian.com>
4131
4132         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
4133         the "official" behavior here.
4134         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
4135
4136 2004-03-29  Martin Baulig  <martin@ximian.com>
4137
4138         * icall.c: Reflect latest API changes.
4139
4140 2004-03-29  Martin Baulig  <martin@ximian.com>
4141
4142         * loader.c (mono_get_method_from_token): Also call
4143         mono_metadata_load_generic_params () for abstract and interface
4144         methods; replace the type arguments in the method signature with
4145         the ones which are loaded from the metadata.
4146
4147 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
4148
4149         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
4150         of the lock is not the current thread. MS.NET don't do it, in spite of
4151         what the documentation says. See bug #56157.
4152
4153 2004-03-28  Martin Baulig  <martin@ximian.com>
4154
4155         * class.c (mono_class_init): Don't call init_properties() and
4156         init_events() for generic instances; set `prop->parent' when
4157         inflating properties.
4158
4159         * reflection.c (mono_generic_inst_get_object): Call
4160         `mono_class_init (ginst->klass)'.
4161         (mono_type_get_object): Only create a MonoGenericInst if your
4162         generic type is a TypeBuilder.
4163         (do_mono_reflection_bind_generic_parameters): Only set
4164         `ginst->is_dynamic' if our generic type is a TypeBuilder.
4165
4166 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
4167
4168         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
4169         Fixes #56091.
4170
4171 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4172
4173         * icall.c: added Kill_internal icall.
4174         * process.[ch]: added Kill_internal icall.
4175
4176 2004-03-25  Martin Baulig  <martin@ximian.com>
4177
4178         * class.h (MonoStats): Added `generic_instance_count',
4179         `inflated_method_count', `inflated_type_count' and
4180         `generics_metadata_size'.       
4181
4182 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4183
4184         * reflection.c: no warnings now.
4185
4186 2004-03-25  Martin Baulig  <martin@ximian.com>
4187
4188         * class.c (mono_class_get_full): New public function; does a
4189         mono_class_get(), but also takes a `MonoGenericContext *'.
4190
4191         * loader.c (mono_field_from_memberref): Renamed to
4192         `field_from_memberref', made static and added `MonoGenericContext *'
4193         argument.
4194         (mono_field_from_token): Added `MonoGenericInst *' argument.
4195         (method_from_memberef): Likewise.
4196         (mono_get_method_from_token): Likewise.
4197         (mono_get_method_full): New public function; does a
4198         mono_get_method(), but also takes a `MonoGenericContext *'.
4199
4200         * verify.c (mono_method_verify): Get the method's generic context
4201         and pass it to mono_field_from_token(), mono_get_method_full() and
4202         mono_class_get_full().
4203
4204 2004-03-25  Martin Baulig  <martin@ximian.com>
4205
4206         * class.c (mono_class_inflate_generic_type): Take a
4207         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4208         `MonoGenericMethod *'.
4209
4210 2004-03-25  Martin Baulig  <martin@ximian.com>
4211
4212         * loader.h (MonoMethodInflated): Store the MonoGenericContext
4213         instead of the MonoGenericMethod here.
4214
4215 2004-03-25  Martin Baulig  <martin@ximian.com>
4216
4217         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4218         each time we create a new MonoGenericInst, we also create a new
4219         context which points back to us.
4220
4221         * class.c (inflate_method): Use `ginst->context' instead of
4222         creating a new context.
4223
4224         * loader.c (method_from_memberref): Use
4225         `klass->generic_inst->context' instead of creating a new context.
4226
4227 2004-03-25  Martin Baulig  <martin@ximian.com>
4228
4229         * class.h (MonoGenericContext): New struct.
4230         (MonoGenericMethod): Removed `generic_inst'.
4231
4232         * class.c (mono_class_inflate_generic_method): Take a
4233         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4234
4235 2004-03-25  Martin Baulig  <martin@ximian.com>
4236
4237         * loader.h (MonoMethodInflated): New typedef.
4238
4239         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4240         `generic_param_count' consume just 30 bits, added `is_inflated'
4241         and `has_type_parameters' flags (one bit each).
4242
4243         * class.c (mono_class_inflate_generic_method): Create a
4244         MonoMethodInflated instead of a MonoMethodNormal and set
4245         `is_inflated' in the method signature.
4246
4247         * class.h (MonoGenericMethod): Removed `generic_method'.
4248
4249 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4250
4251         * image.c: Make sure the name of a MonoImage is always an absolute path.
4252           This fixes bug #54415.
4253
4254 2004-03-24  Martin Baulig  <martin@ximian.com>
4255
4256         * class.c (mono_class_setup_vtable): If we're a generic instance,
4257         use our generic type's vtable size.
4258
4259 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4260
4261         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4262         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4263         problems.
4264
4265 2004-03-23  Martin Baulig  <martin@ximian.com>
4266
4267         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4268         `MonoEvent *events'.
4269
4270         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4271         (typebuilder_icalls): Added "get_event_info"; calls
4272         mono_reflection_event_builder_get_event_info(). 
4273
4274         * reflection.c (mono_reflection_generic_inst_initialize): Added
4275         `MonoArray *events'.
4276         (mono_reflection_event_builder_get_event_info): New function.
4277
4278 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4279
4280         * object.h: add mono_type_initialization_init
4281
4282         * object.c (mono_runtime_class_init): 
4283         implement class constructor synchronization rules
4284         to cope with threading issues.  
4285         add mono_type_initialization_init
4286
4287         * appdomain.c (mono_runtime_init): call 
4288         mono_type_initialization_init
4289
4290         * class.h: removing initializing field from MonoVTable
4291
4292 2004-03-23  Martin Baulig  <martin@ximian.com>
4293
4294         * class.c (my_mono_class_from_generic_parameter): Use
4295         `param->name' if it's not NULL. 
4296
4297 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4298
4299         * class.c: do not insert non-virtual methods in the vtable.
4300         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4301         that means the method is non-virtual. This never would have
4302         happened before.
4303
4304 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4305
4306         * profiler.c: Added lock for accessing coverage_hash.
4307
4308 2004-03-22  Martin Baulig  <martin@ximian.com>
4309
4310         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4311         `method->method->signature->generic_param_count != 0' to make it
4312         work for interface methods.
4313
4314 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4315
4316         * process.c: quote the string passed to the shell using g_shell_quote.
4317
4318 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4319
4320         * threads.c:
4321         (mono_threads_manage): don't remove the finalizer thread and self
4322         from the threads hash table so that mono_thread_manage can be called
4323         more than once.
4324
4325 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4326
4327         * process.c: quote the arguments when UseShellExecute is true. Fixes
4328         bug #55790.
4329
4330 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4331
4332         * threads.c: set mono_thread_detach as a cleanup routine for every
4333         thread. This way it's always executed upon thread termination, either
4334         aborted or finished normally. No more xsp hangs!
4335
4336 2004-03-17  Martin Baulig  <martin@ximian.com>
4337
4338         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4339         `int count_nested' and a `MonoType **nested'.
4340
4341         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4342         most of the functionality into a new static
4343         do_mono_reflection_bind_generic_parameters() and don't take a
4344         `MonoType *nested_in' argument any more.  Don't compute nested
4345         types here.
4346         (mono_reflection_generic_inst_get_nested_types): New public method
4347         to get nested types.
4348
4349         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4350         we're a nested class.
4351
4352         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4353         mono_reflection_generic_inst_get_nested_types() to compute the
4354         nested types.
4355
4356 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4357
4358         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4359         descriptive error message under windows.
4360         
4361 2004-03-17  Martin Baulig  <martin@ximian.com>
4362
4363         * class.c (dup_type): Added `const MonoType *original' argument;
4364         copy the attrs from the original type.
4365
4366 2004-03-17  Martin Baulig  <martin@ximian.com>
4367
4368         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4369         `m->generic_inst_cache' here.
4370
4371 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4372
4373         * exception.h exception.c: Add stack_overflow_exception.
4374
4375 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4376
4377         * threadpool.c:
4378         (overlapped_callback): call SetEvent *after* invoking the callback.
4379         No need to call CloseHandle.
4380
4381 2004-03-16  Martin Baulig  <martin@ximian.com>
4382
4383         * reflection.c (mono_image_get_fieldref_token): Take a
4384         `MonoReflectionField *' instead of a `MonoClassField *' and a
4385         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4386
4387 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4388
4389         * appdomain.c: don't add the culture to the filename we're looking for
4390         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4391
4392 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4393
4394         * locales.c: don't ignore symbols when doing case insensitive compares.
4395         Thanks Dick! Fixes bug #54046.
4396
4397         * threads.c: surround 'threads' usage with enter/leave in
4398         mono_thread_manage.
4399
4400 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4401
4402         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4403         implicitly marshalled as [Out]. Fixes #55450.
4404
4405         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4406         an exception.
4407
4408 2004-03-16  Martin Baulig  <martin@ximian.com>
4409
4410         * class.c (mono_class_from_generic_parameter): Use the actual
4411         parameter name. 
4412
4413 2004-03-16  Martin Baulig  <martin@ximian.com>
4414
4415         * reflection.c (type_get_signature_size): New static function.
4416         Compues the size of the type in a method signature.
4417         (method_get_signature_size): New static function; calls
4418         type_get_signature_size() to compute the actual size of the
4419         method's signature.
4420         (method_encode_signature): Use method_get_signature_size() to get
4421         the signature's size rather than using `nparams * 10'.
4422
4423 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4424
4425         * file-io.h: define here WapiOverlapped on windows. I don't want the
4426         regular OVERLAPPED one.
4427
4428         * file-io.c:
4429         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4430         Disabling AIO on windows.
4431
4432 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4433
4434         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4435         bug #55385.
4436
4437 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4438
4439         * appdomain.c: upgraded corlib version.
4440
4441         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4442         and BeginWrite. Allow opening files for asynchrnous operations.
4443
4444         * file-io.h: new struct that maps FileStreamAsyncResult.
4445         * icall.c: added new icalls.
4446         * process.[ch]: support setting child process environment variables
4447         and use the SHELL or COMSPEC when UseShellExecute is true.
4448
4449         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4450         callback for async. IO is here and also BindHandle.
4451
4452         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4453         from here.
4454
4455 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4456
4457         * reflection.c (create_custom_attr): Allow len == 0.
4458
4459         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4460         computation on big-endian machines.
4461
4462 2004-03-13  Martin Baulig  <martin@ximian.com>
4463
4464         * class.h (MonoGenericInst): Added `int count_ifaces'.
4465
4466         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4467         `ginst->count_ifaces' instead `klass->interface_count' since we
4468         may get called before the vtable is created.
4469
4470         * loader.c (mono_method_get_param_names): If we're a generic
4471         instance, return and don't initialize the class.
4472
4473         * reflection.c (mono_reflection_setup_generic_class): Don't call
4474         ensure_runtime_vtable().
4475         (mono_reflection_bind_generic_parameters): Set
4476         `ginst->count_ifaces'.
4477
4478 2004-03-11  Jackson Harper <jackson@ximian.com>
4479
4480         * icall.c:
4481         * unicode.c:
4482         * unicode.h: Remove unused System.Char icalls.
4483         
4484 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4485
4486         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4487         code when we P/Invoke the first library in Windows.Forms, instead
4488         of when we first open the assembly.
4489
4490         * assembly.c: Drop the lookup from here.
4491
4492 2004-03-10  Martin Baulig  <martin@ximian.com>
4493
4494         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4495         class for properties, fields and events.  Finally fixes #54945.
4496
4497 2004-03-10  Martin Baulig  <martin@ximian.com>
4498
4499         * metadata.c (mono_metadata_class_equal): New static function;
4500         checks whether two generic instances or two generic parameters are
4501         equal.
4502         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4503         compare classes.        
4504
4505 2004-03-10  Martin Baulig  <martin@ximian.com>
4506
4507         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4508
4509         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4510         argument and write it into the `reflection_info' field.
4511
4512         * icall.c
4513         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4514         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4515
4516 2004-03-09  Jackson Harper  <jackson@ximian.com>
4517
4518         * char-conversions.h: use 8 bits for numeric data its all we need
4519         * icall.c: numeric data is only 8 bits now.
4520
4521 2004-03-09  Martin Baulig  <martin@ximian.com>
4522
4523         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4524
4525         * class.c (init_properties, init_events): Initialize the new
4526         `parent' field.
4527
4528         * reflection.c (typebuilder_setup_properties): Likewise.
4529         (typebuilder_setup_events): Likewise.
4530
4531         * reflection.h (MonoEventInfo): Replaced `parent with
4532         `declaring_type' and `reflected_type'.
4533
4534         * icall.c (ves_icall_get_property_info): Distinguish between
4535         declaring and reflected type.
4536         (ves_icall_get_event_info): Likewise.
4537
4538 2004-03-09  Martin Baulig  <martin@ximian.com>
4539
4540         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4541         (ves_icall_Type_GetField): Correctly set field->klass.
4542
4543 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4544
4545         * loader.h: Fix warning.
4546
4547 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4548
4549         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4550         library routine if present.  Notice that it will still continue
4551         executing even if its missing, for those working on the Gtk#
4552         edition of Windows.Forms.
4553
4554         * assembly.c (do_mono_assembly_open): If loading the
4555         System.Windows.Forms call mono_loader_wini_init.
4556
4557 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4558
4559         * class.h: Added MonoRemoteClass struct.
4560         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4561         function for MonoStrings.
4562         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4563         Added internal call for getting the proxy type.
4564         * marshal.c: Get the type of transparent proxies from its remote_class.
4565         Added methods that generate the IL for type checks and casts:
4566         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4567         mono_marshal_get_proxy_cancast.
4568         * marshal.h: Declaration of the previous new methods.
4569         * object.c: Added new moethods for creating and updating MonoRemoteClass
4570         instances: mono_remote_class, mono_upgrade_remote_class, 
4571         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4572         * verify.c: FIx transparent_proxy_fields layout.
4573         * appdomain.c: Bump corlib version.
4574
4575 2004-03-04  Jackson Harper  <jackson@ximian.com>
4576
4577         * icall.c: Add icall to access char conversion tables.
4578         * char-conversions.h: Character conversion tables.
4579         * Makefile.am: Add char-conversions.h private header file.
4580         
4581 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4582
4583         * appdomain.c (unload_thread_main): Increase unloading timeout to
4584         10 sec as a temporary workaround for Nant problems.
4585
4586 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4587
4588         * gc.c: Add checks for GC_enable and GC_disable.
4589
4590         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4591         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4592         (bug #54988).
4593         
4594 2004-02-27  Martin Baulig  <martin@ximian.com>
4595
4596         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4597         `MonoReflectionType *' instead of a `MonoType *'.
4598
4599 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4600
4601         * gc.c (run_finalize): Avoid finalizing the object representing the
4602         finalizer thread.
4603         (finalizer_thread): Fix warning.
4604
4605 2004-02-25  Martin Baulig  <martin@ximian.com>
4606
4607         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4608         argument for nested types.
4609         (mono_class_create_generic): Added support for nested generictypes.
4610
4611         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4612         `GList *nested'.
4613
4614         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4615
4616         * reflection.c (method_encode_signature): Increase the minimum
4617         value of `size' from 10 to 11.
4618         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4619         and `MonoType **types' arguments instead of the `MonoArray
4620         *types'; added `MonoType *nested_in'.  Recursively instantiate
4621         nested classes. 
4622
4623 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4624
4625         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4626         stack_overflow_ex members which are used by exception handling.
4627
4628         * appdomain.c (mono_runtime_init): Initialize the new members.
4629
4630         * gc.c (mono_gc_enable): New helper function.
4631         * gc.c (mono_gc_disable): New helper function.
4632
4633 2004-02-23  Martin Baulig  <martin@ximian.com>
4634
4635         * icall.c: I must have been really stupid - make it actually work
4636         this time ;-)
4637
4638 2004-02-23  Martin Baulig  <martin@ximian.com>
4639
4640         * loader.c (method_from_memberref): Only inflate the method if
4641         it's in another klass.
4642
4643 2004-02-23  Martin Baulig  <martin@ximian.com>
4644
4645         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4646         (mono_class_init): If we're a generic instance and an interface,
4647         compute `class->interface_id'; also create `class->interfaces'
4648         here and inflate them.
4649
4650         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4651         `ginst->is_open'.
4652         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4653
4654         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4655
4656 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4657
4658         * reflection.c (method_encode_code): Improved the error message
4659         generated by the exception.
4660
4661 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4662
4663         * icall.c: Martin did not do what he said in the ChangeLog for
4664         2004-02-18, but put back the changes for properties and events.
4665         Commenting those changes out again and adding comment to bug #54518.
4666         
4667         * process.c: removed warning.
4668
4669 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4670
4671         * marshal.c (emit_struct_conv): Print an error message instead of
4672         asserting when a type does not have the StructLayout attribute.
4673
4674 2004-02-20  Martin Baulig  <martin@ximian.com>
4675
4676         * reflection.c (mono_type_get_object): Also use the cache for
4677         generic instances.
4678         (mono_reflection_bind_generic_parameters): Always compute
4679         `ginst->ifaces'.        
4680
4681 2004-02-20  Martin Baulig  <martin@ximian.com>
4682
4683         * class.h (MonoGenericMethod): Removed `klass'.
4684
4685         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4686         *klass' argument.
4687
4688 2004-02-20  Martin Baulig  <martin@ximian.com>
4689
4690         * reflection.c (method_encode_methodspec): Actually use the
4691         uninflated signature for the memberref.
4692
4693 2004-02-20  Martin Baulig  <martin@ximian.com>
4694
4695         * class.h (MonoGenericMethod): Removed `declaring'.
4696
4697         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4698         is NULL, compute it here.
4699
4700 2004-02-20  Martin Baulig  <martin@ximian.com>
4701
4702         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4703
4704         * metadata.c (mono_metadata_generic_inst_hash): New method.
4705         (mono_metadata_generic_inst_equal): New method.
4706
4707         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4708         `klass->image->generic_inst_cache' cache to avoid creating
4709         duplicate MonoGenericInst's.
4710
4711         * class.c (mono_class_inflate_generic_type): Use the cache.
4712
4713 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4714
4715         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4716
4717 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4718
4719         * icall.c: added Socket.WSAIoctl icall.
4720
4721         * socket-io.[ch]: implemented
4722         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4723
4724 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4725
4726         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4727
4728 2004-02-18  Urs C Muff  <umuff@quark.com>
4729
4730         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4731         this work on PPC and other big-endian architectures.
4732
4733         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4734         fields with an underscore to make sure they're only accessed by
4735         the read32() macro.
4736
4737 2004-02-18  Martin Baulig  <martin@ximian.com>
4738
4739         * icall.c: Put the klass->refclass changes back for methods and
4740         fields, but not for properties and events.  We're currently not
4741         distinguishing between DeclaringType and ReflectedType for
4742         properties and events, that's what caused the regressions.
4743
4744 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4745
4746         * object.c:
4747         (mono_async_result_new): the handle can be NULL.
4748
4749         * threadpool.c: Use an event instead of a semaphore, don't initialize
4750         it until needed. This saves quite a few semaphores from being created
4751         when using the threadpool.
4752
4753 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4754
4755         * object.c (mono_string_is_interned_lookup): Fix interning of long
4756         strings. Fixes #54473.
4757
4758         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4759
4760         * icall.c: Revert the klass->refclass changes since they introduce
4761         regressions (bug #54518).
4762
4763 2004-02-18  Martin Baulig  <martin@ximian.com>
4764
4765         * class.c (mono_class_init): If we're a generic instance and don't
4766         come from a TypeBuilder, inflate our members here.
4767         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4768         (mono_class_create_generic): New public method.
4769         (mono_class_initialize_generic): Removed.
4770         (get_instantiation_name): Renamed to
4771         _mono_class_get_instantiation_name() and made it public.
4772
4773 2004-02-18  Martin Baulig  <martin@ximian.com>
4774
4775         * class.c (mono_class_inflate_generic_type): Clear the new
4776         instance's `nginst->klass' when inflating a generic instance.
4777         (mono_class_is_subclass_of): Added (basic) support for generic
4778         instances.
4779
4780 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4781
4782         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4783         MonoMempool to hold compiled native code.
4784
4785 2004-02-17  Martin Baulig  <martin@ximian.com>
4786
4787         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4788         `properties'.
4789
4790         * reflection.c (mono_reflection_generic_inst_initialize): Added
4791         `MonoArray *properties' argument.
4792
4793         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4794
4795 2004-02-17  Martin Baulig  <martin@ximian.com>
4796
4797         * icall.c (ves_icall_Type_GetFields): Renamed to
4798         ves_icall_Type_GetFields_internal() and added a
4799         `MonoReflectionType *rtype' argument; pass it to
4800         mono_field_get_object() to set the field's "reflected" type.
4801         (ves_icall_Type_GetConstructors): Likewise.
4802         (ves_icall_Type_GetEvents): Likewise.
4803         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4804         argument; pass it to mono_method_get_object() to set the method's
4805         "reflected" type.       
4806
4807 2004-02-17  Martin Baulig  <martin@ximian.com>
4808
4809         * class.h (MonoDynamicGenericInst): New type.
4810         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4811
4812         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4813         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4814         (ves_icall_MonoGenericInst_GetFields): New interncall.
4815
4816         * class.c (mono_class_from_generic): Don't call
4817         mono_class_initialize_generic() if this is a dynamic instance;
4818         ie. it's being created from a TypeBuilder.
4819         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4820         `class->byval_arg.type'.
4821
4822         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4823         to `inflate_method' and made static.
4824         (mono_reflection_inflate_field): Removed.
4825         (mono_reflection_generic_inst_initialize): New public method.
4826
4827         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4828         `ctors' and `fields'; added `initialized'.
4829
4830 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4831
4832         * debug-helpers.c (mono_method_full_name): Fix output for empty
4833         namespaces.
4834
4835 2004-02-12  Martin Baulig  <martin@ximian.com>
4836
4837         * class.h (MonoClassField): Added `MonoType *generic_type'.
4838
4839         * reflection.c (mono_image_get_fieldref_token): Added support for
4840         instantiated generic types.
4841         (field_encode_inflated_field): Removed.
4842         (mono_image_get_inflated_field_token): Removed.
4843         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4844
4845         * reflection.h (MonoReflectionInflatedField): Removed.
4846
4847 2004-02-12  Martin Baulig  <martin@ximian.com>
4848
4849         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4850         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4851
4852         * reflection.c (mono_image_get_methodspec_token): Take a
4853         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4854         (mono_image_create_token): Check whether we have a
4855         `method->signature->gen_method' and call
4856         mono_image_get_methodspec_token() if appropriate.
4857         (inflated_method_get_object): Removed.
4858         (mono_reflection_bind_generic_method_parameters): Return a
4859         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4860         (mono_reflection_inflate_method_or_ctor): Likewise.
4861
4862         * reflection.h (MonoReflectionInflatedMethod): Removed.
4863
4864 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4865
4866         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4867         for custom valuetype marshalling.
4868
4869         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4870
4871 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4872
4873         * icall.c: fixed WSAGetLastError_internal name.
4874
4875 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4876
4877         * threads.c (mono_thread_attach): Allow this to be called multiple
4878         times for a thread.
4879         
4880         * threads.c (build_wait_tids): Do not wait for ourselves.
4881
4882         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4883         appdomain list is empty.
4884
4885         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4886         memory returned by mono_string_builder_to_utf16, since it points into
4887         managed memory. Thanks to Bernie Solomon for noticing this.
4888
4889         * icall.c: Add AppDomainSetup icalls.
4890
4891         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4892
4893         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4894         types.
4895
4896         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4897         custom attributes to the method_aux struct. Also fix array indexes etc.
4898
4899         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4900         
4901 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4902
4903         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4904         (both static and runtime) and reduce startup time.
4905
4906 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4907
4908         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4909         AsAny marshalling conversion instead of crashing.
4910
4911         * marshal.c: Fix warnings.
4912
4913 2004-02-09  Martin Baulig  <martin@ximian.com>
4914
4915         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4916
4917         * reflection.h (MonoReflectionInflatedMethod): Removed the
4918         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4919
4920         * reflection.c (method_encode_methodspec): Removed the `method'
4921         argument; we get it from `gmethod->declaring'.
4922         (inflated_method_get_object): Removed the `declaring' argument.
4923
4924 2004-02-09  Martin Baulig  <martin@ximian.com>
4925
4926         * class.h (MonoGenericMethod): New type.
4927         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4928         `generic_method'.
4929
4930         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4931         a `MonoGenericMethod *gen_method' one.
4932
4933         * class.c (mono_class_inflate_generic_type): Take an additional
4934         `MonoGenericMethod * argument.  This is only non-NULL if we're
4935         inflating types for a generic method.   
4936         (mono_class_inflate_generic_signature): Renamed to
4937         inflate_generic_signature() and made static; take a
4938         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4939         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4940         instead of a `MonoGenericInst *' one.
4941         (mono_class_inflate_generic_method): Likewise.
4942
4943         * reflection.c (encode_generic_method_sig): Take a
4944         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4945         (method_encode_methodspec): Likewise.
4946         (inflated_method_get_object): Likewise. 
4947
4948         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4949         field with a `MonoGenericMethod *gmethod' one.  
4950
4951 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4952
4953         * class.h (mono_class_has_parent): add parens to expansion
4954         so you can ! this.
4955
4956 2004-02-08  Martin Baulig  <martin@ximian.com>
4957
4958         * image.h (MonoImage): Removed `generics_cache'.
4959
4960         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4961         instead of a `MonoType *' argument; removed the `inflate_methods'
4962         argument.  Don't inflate methods here.
4963
4964         * loader.c (find_method): If it's a generic instance, call
4965         mono_class_init() on the `sclass->generic_inst->generic_type'.
4966
4967         * metadata.c (mono_type_size): Make this work on uninitialized
4968         generic instances; call it on the `ginst->generic_type's class.
4969
4970         * reflection.c (mono_reflection_bind_generic_parameters): Call
4971         mono_class_from_generic() to create the `ginst->klass'.
4972
4973 2004-02-08  Martin Baulig  <martin@ximian.com>
4974
4975         * class.h (MonoClass): Changed type of `generic_inst' from
4976         `MonoType *' to `MonoGenericInst *'.
4977
4978 2004-02-08  Martin Baulig  <martin@ximian.com>
4979
4980         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4981         mono_type_get_object(), this is now creating a `MonoGenericInst'
4982         for MONO_TYPE_GENERICINST.
4983         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4984         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4985
4986         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4987         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4988         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4989         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4990         and reflected type.
4991
4992         * reflection.h (MonoReflectionInflatedMethod): Removed
4993         `declaring_type' and `reflected_type'.
4994
4995 2004-02-08  Martin Baulig  <martin@ximian.com>
4996
4997         * class.h (MonoGenericInst): Added `MonoType *parent' and
4998         `MonoType **ifaces'.
4999
5000         * reflection.h (MonoReflectionGenericInst): Removed `klass',
5001         `parent' and `interfaces'.
5002
5003         * reflection.c (mono_reflection_bind_generic_parameters): Take a
5004         `MonoType *' argument and return a `MonoType *'.
5005
5006         * icall.c
5007         (ves_icall_MonoGenericInst_GetParentType): New interncall.
5008         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
5009
5010 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5011
5012         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
5013         valuetype marshalling.
5014
5015 2004-02-06  Martin Baulig  <martin@ximian.com>
5016
5017         * class.c
5018         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
5019         (my_mono_class_from_generic_parameter): Likewise.
5020
5021 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5022
5023         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
5024         contents of the symbol files lazily.
5025
5026         * object.h (MonoThread): Add 'name' and 'name_len' fields.
5027
5028         * threads.h threads.c icall.c: New icalls for getting and setting the
5029         threads name.
5030
5031 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
5032
5033         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
5034         Raise an exception when the domain is not found.
5035
5036 2004-02-03  Martin Baulig  <martin@ximian.com>
5037
5038         * reflection.c (mono_image_get_methodspec_token): Use the
5039         uninflated signature; fixes gen-33.
5040
5041 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
5042
5043         * gc.c threads.c: Make the finalizer thread a normal managed thread so
5044         the finalizer code can use thread functionality.
5045
5046         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
5047         the finalizer thread.
5048
5049         * threads.c: Make some functions more robust.
5050
5051         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
5052
5053         * metadata.h: Add new marshalling conventions.
5054
5055         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
5056         stringbuilder marshalling. Fixes #53700.
5057
5058         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
5059
5060         * reflection.c (mono_image_get_type_info): Save declarative security
5061         info.
5062
5063         * reflection.c (mono_image_get_field_info): Handle uninitialized 
5064         unmanaged fields as well.
5065
5066         * appdomain.c: Bump corlib version.
5067
5068 2004-02-01  Martin Baulig  <martin@ximian.com>
5069
5070         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
5071         method type arguments.  
5072
5073 2004-01-30  Duncan Mak  <duncan@ximian.com>
5074
5075         * marshal.h: Add prototype for
5076         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
5077         and
5078         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
5079         fix the build.
5080
5081 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
5082
5083         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
5084         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
5085
5086 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5087
5088         * marshal.c (mono_marshal_get_native_wrapper): Add support for
5089         custom marshalling of valuetypes.
5090
5091         * marshal.c: Fix some warnings.
5092
5093 2004-01-29  Martin Baulig  <martin@ximian.com>
5094
5095         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
5096         for generic method parameters.
5097
5098         * reflection.c (method_encode_methodspec): Write the uninflated
5099         signature into the methodspec table.
5100         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
5101         is always the uninflated method.
5102         (reflection_methodbuilder_to_mono_method): Copy the generic
5103         parameters from the MethodBuilder into `header->gen_params'.
5104
5105 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5106
5107         * class.c (mono_class_from_generic_parameter): Fix warning.
5108
5109 2004-01-27  Martin Baulig  <martin@ximian.com>
5110
5111         * class.c (mono_class_from_generic_parameter): Don't create
5112         `klass->methods' here.  
5113
5114 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
5115
5116         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
5117         extension since it does not work with libraries named lib<FOO>.dll.so.
5118
5119 2004-01-25  Martin Baulig  <martin@ximian.com>
5120
5121         * class.c (mono_class_inflate_generic_type): Added support for
5122         MONO_TYPE_GENERICINST.
5123
5124         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
5125         inflate methods on open constructed types.      
5126
5127 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5128
5129         * object.c: fire ProcessExit event in the root AppDomain after running
5130         Main. Fixes bug #53299.
5131
5132 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
5133
5134         * socket-io.c: include the new socket-wrappers.h header.
5135         Use the wrappers instead of the unix socket functions to make the code
5136         more clear.
5137
5138 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
5139
5140         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
5141
5142         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5143         Fixes #22532.
5144
5145 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
5146
5147         * reflection.c (mono_image_create_pefile): Handle the case when the
5148         entry point is not a MethodBuilder.
5149
5150         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5151         field to ReflectionMethod since it is not allways a builder.
5152
5153         * reflection.c (type_get_fully_qualified_name): New helper function to
5154         return the fully qualified name of a type.
5155
5156         * reflection.c (encode_marshal_blob): Always emit the fully qualified
5157         type name for custom marshallers.
5158
5159         * reflection.c (mono_marshal_spec_from_builder): Ditto.
5160
5161         * class.c (mono_class_setup_vtable): If a parent class already 
5162         implements an interface, use the implementing methods from that class.
5163         Fixes #53148.
5164
5165 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5166
5167         * threadpool.c: just return instead of ExitThread to allow for thread
5168         clean up earlier.
5169
5170 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
5171
5172         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
5173         when closing resource modules.
5174
5175         * reflection.c (mono_image_create_pefile): Handle the case when the
5176         entry point is not a MethodBuilder.
5177
5178         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5179         field to ReflectionMethod since it is not allways a builder.
5180
5181 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5182
5183         * marshal.c (mono_marshal_get_managed_wrapper): 
5184         mono_marshal_alloc takes native int so CONV_I
5185         the arg for 64bits.
5186
5187 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
5188
5189         * reflection.c (fixup_cattrs): New function to fixup the methoddef
5190         tokens in the cattr table. Fixes #53108.
5191
5192 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5193
5194         * loader.c: don't trim ".dll" before looking up in the config file.
5195         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5196
5197 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5198
5199         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
5200         Return the module which contains the resource as well.
5201         (ves_icall_System_Reflection_Module_Close): New icall.
5202
5203         * appdomain.c: Bump corlib version number.
5204
5205         * image.c (mono_image_addref): New public function.
5206
5207         * assembly.c: Call mono_image_addref.
5208
5209         * reflection.c (mono_module_get_object): Increase reference count of 
5210         the image.
5211
5212         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5213         Fixes #22532.
5214
5215         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5216         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5217         proper exceptions on DllImport problems.
5218
5219 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5220
5221         * class.c, metadata.c: eliminate CSIZE macro.
5222
5223 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5224
5225         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5226         * object.h: Added async_callback field in MonoAsyncResult.
5227         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5228         * verify.c: Added async_callback in MonoAsyncResult layout.
5229
5230 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5231
5232         * reflection.c (mono_reflection_get_custom_attrs): Add support
5233         for Modules.
5234
5235 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5236
5237         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5238         marshalling.
5239         (mono_marshal_method_from_wrapper): Add null pointer check.
5240
5241 2004-01-16  Martin Baulig  <martin@ximian.com>
5242
5243         * debug-mono-symfile.h: Set version number to 36 and reflect
5244         latest symbol writer changes.
5245
5246 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5247
5248         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5249         multi-dimensional arrays.
5250         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5251         (mono_class_from_mono_type): Use bounded_array_class_get.
5252         
5253         * class.c (mono_bounded_array_class_get): New function which takes
5254         a 'bounded' bool argument to distinguish vectors from one dimensional
5255         arrays.
5256
5257         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5258         bounded_array_class_get if the array has bounds.
5259
5260         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5261         Search modules loaded using AssemblyBuilder:AddModule as well.
5262
5263 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5264
5265         * appdomain.c: increased corlib version.
5266         * filewatcher.c: removed g_print.
5267         * icall.c:
5268         (get_property_info): only allocate what is actually requested.
5269         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5270
5271 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5272
5273         * Makefile.am: added filewatcher.[ch]
5274         * filewatcher.[ch]: FileSystemWatcher runtime support.
5275         * icall.c: added new FSW icalls.
5276
5277 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5278
5279         * string-icalls.c: fix stringbuilder regression as suggested by
5280         Iain McCoy <iain@mccoy.id.au>.
5281
5282 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5283
5284         * process.c (process_read_stringtable_block): Recognize '007f' as
5285         a language neutral stringtable block.
5286
5287 2004-01-12  Patrik Torstensson
5288
5289         * object.h (MonoStringBuilder) : Changed layout to support our
5290         new stringbuilder class.
5291         * marshal.c: Change marshalling to support the new layout of 
5292         string builder.
5293         * appdomain.c: increased version number because new layout of
5294         string builder.
5295
5296 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5297
5298         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5299         assembly name as an string instead of an AssemblyName, since it is
5300         easier to extract info from it.
5301
5302         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5303         the culture subdirectories too. Fixes #52231.
5304
5305 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5306
5307         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5308         It takes 2 new parameters with an optional name for the method to look
5309         for and case ignoring info.
5310
5311         * threadpool.c: removed unused variable.
5312
5313 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5314
5315         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5316         It takes 2 new parameters with an optional name for the property to look
5317         for and case ignoring info.
5318         Fixes bug #52753.
5319
5320 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5321
5322         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5323         Fix #52451.
5324
5325 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5326
5327         * appdomain.c:
5328         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5329         Fixes bug #52630.
5330
5331 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5332
5333         * reflection.c: Add support for more than one unmanaged resource.
5334
5335         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5336         in field->def_value, as done in all other cases.
5337
5338         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5339         TypeBuilders.
5340
5341         * reflection.c (mono_reflection_create_runtime_class): Remove 
5342         errorneous assignment to klass->element_class, since it is already
5343         done in mono_reflection_setup_internal_class.
5344
5345 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5346
5347         * gc.c: added missing LeaveCriticalSection.
5348         * icall.c: indented a couple of lines.
5349         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5350         if we call EndInvoke inside a callback. Fixes bug #52601.
5351
5352 2004-01-07  Martin Baulig  <martin@ximian.com>
5353
5354         * mono-debug-debugger.h
5355         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5356
5357 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5358
5359         * appdomain.c: Use messages in NotImplementedException.
5360
5361         * exception.c (mono_get_exception_not_implemented): Now this takes
5362         a message argument.
5363
5364         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5365         exception instead of g_asserting an aborting when something is not
5366         implemented.
5367
5368         Add some inline docs.
5369
5370 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5371
5372         * reflection.h: Update after changes to object layout.
5373
5374         * reflection.c: Implement saving of unmanaged aka win32 resources.
5375
5376         * appdomain.c: Bump version number.
5377
5378         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5379         Handle missing domains gracefully.
5380
5381 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5382
5383         * file-io.c : On Windows, there are much more invalid_path_chars.
5384
5385 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5386
5387         * class.h, object.c: prepare for GetType () speedup.
5388
5389 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5390
5391         * profiler.c: workaround for --profile null reference exception on
5392           cygwin. Patch by Patrik Torstensson.
5393
5394 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5395
5396         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5397         make work for unaligned access.
5398
5399 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5400
5401         * class.c: small cleanup (class->fields [i] -> field).
5402         * image.c: check address of metadata is valid.
5403
5404 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5405
5406         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5407         search the list of loaded assemblies.
5408
5409         * reflection.c (mono_reflection_type_from_name): Use 
5410         mono_assembly_loaded instead of mono_image_loaded.
5411
5412         * reflection.c: Fix warnings.
5413
5414 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5415
5416         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5417         is dynamic. This is needed since an assembly can contain both dynamic and
5418         non-dynamic images.
5419
5420         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5421         assembly->dynamic.
5422
5423         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5424
5425         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5426         to store modules loaded using AddModule.
5427
5428         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5429         on Modules.
5430
5431         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5432
5433         * reflection.c (mono_image_fill_export_table_from_module): New function to
5434         fill out the EXPORTEDTYPES table from a module.
5435
5436         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5437         into a separate function. Also handle loaded non-dynamic modules.
5438
5439         * reflection.c (mono_image_basic_init): Fix memory allocation.
5440
5441         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5442
5443         * assembly.c (mono_assembly_load_references): Make this public.
5444
5445 2003-12-19  Martin Baulig  <martin@ximian.com>
5446
5447         * class.c (mono_class_initialize_generic): Made this static, take
5448         a `MonoGenericInst *' instead of a `MonoClass *'.
5449         (mono_class_from_generic): Call mono_class_initialize_generic()
5450         unless we're already initialized or being called from
5451         do_mono_metadata_parse_generic_inst().
5452
5453         * class.h (MonoGenericInst): Added `initialized' and
5454         `init_pending' flags.
5455
5456         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5457         `mono_class_init (gklass)' or mono_class_initialize_generic()
5458         here; set `generic_inst->init_pending' while parsing the
5459         `type_argv'.
5460
5461 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5462
5463         * locales.c: include string.h for memxxx prototypes
5464
5465 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5466
5467         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5468         constructor when accessing literal fields.
5469
5470 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5471
5472         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5473
5474         * reflection.c (assembly_add_resource_manifest): New function to fill
5475         the MANIFESTRESOURCE table.
5476
5477         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5478
5479         * reflection.h: Update to changes in class layout.
5480
5481         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5482         Reenable call to mono_runtime_is_shutting_down ().
5483
5484         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5485         determine if the runtime is shutting down.
5486
5487 2003-12-16  Jackson Harper <jackson@ximian.com>
5488
5489         * icall.c: comment out call to mono_runtime_is_shutting_down to
5490         fix build.
5491         
5492 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5493
5494         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5495         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5496
5497 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5498
5499         * reflection.c: move definition of swap_with_size
5500         to before its first call
5501
5502 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5503
5504         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5505
5506         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5507         icall.
5508
5509         * object.c: Fix warnings.
5510
5511         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5512         members if FlattenHierarchy is set.
5513
5514         * reflection.c (mono_image_add_decl_security): New function to emit
5515         declarative security.
5516
5517         * reflection.h reflection.c: Add support for declarative security.
5518
5519         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5520         
5521 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5522
5523         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5524         
5525         * appdomain.c verify.c: Moved corlib version checking into its own
5526         function in appdomain.c since it needs to create vtables etc.
5527
5528 2003-12-13  Patrik Torstensson <p@rxc.se>
5529
5530         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5531         instead of unwrapped server.
5532
5533 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5534
5535         * verify.c (check_corlib): Fix field index.
5536
5537 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5538
5539         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5540         GetGacPath icall.
5541
5542 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5543
5544         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5545         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5546         cope with sizeof(size_t) != sizeof(guint32).
5547
5548 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5549
5550         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5551         in case of failure.
5552
5553 2003-12-10  Mark Crichton <crichton@gimp.org>
5554
5555         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5556         in managed code.
5557
5558         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5559
5560 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5561
5562         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5563         marked as deleted.
5564
5565 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5566
5567         * verify.c (check_corlib): Handle the case when the version field is 
5568         initialized by a static constructor.
5569
5570 2003-12-08  Patrik Torstensson  <p@rxc.se>
5571
5572     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5573
5574 2003-12-08  Martin Baulig  <martin@ximian.com>
5575
5576         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5577         a MonoReflectionGenericParameter, also take the parameter index
5578         and name as arguments.
5579         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5580         (ves_icall_MonoGenericParam_initialize): New interncall.
5581         (ves_icall_Type_make_byref_type): New interncall.
5582
5583         * reflection.h (MonoReflectionGenericParam): Derive from
5584         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5585         `index' fields.
5586
5587         * reflection.c (mono_reflection_define_generic_parameter): Create
5588         and return a new MonoReflectionGenericParam; don't initialize the
5589         constraints here.
5590         (mono_reflection_initialize_generic_parameter): New public method;
5591         initializes the constraints and creates the `param->pklass'.
5592
5593 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5594
5595         * reflection.h reflection.c: Use the new fields 'num_types', 
5596         'num_fields' and 'num_methods' to track the number of types etc.
5597
5598         * verify.c (check_corlib): Check corlib version number.
5599
5600 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5601
5602         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5603         function works on all methods.
5604
5605 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5606
5607         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5608         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5609         the custom_type_info flag of the transparent proxy.
5610         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5611         objects that supports IRemotingTypeInfo.
5612         * object.h: Added custom_type_info field in transparent proxy.
5613
5614 2003-12-06  Martin Baulig  <martin@ximian.com>
5615
5616         * class.c (mono_class_create_from_generic): Removed.
5617         (mono_class_from_generic): Check `ginst->klass' before doing
5618         anything else.  This is important to fully support "recursive"
5619         generic types.
5620
5621         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5622         empty `generic_inst->klass' before doing anything else.
5623
5624 2003-12-06  Dick Porter  <dick@ximian.com>
5625
5626         * verify.c: 
5627         * object.h:
5628         * icall.c:
5629         * locales.c: Use C structs to access class fields.  Don't do a
5630         conversion between MonoString and UChar because both are
5631         platform-endian UTF-16.  Compare now takes startindex and count
5632         parameters.  Add a char overload for IndexOf.  Speed up the
5633         invariant string IndexOf.
5634
5635 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5636
5637         * Makefile.am (monosn_LDADD): Fix parallel build.
5638
5639 2003-12-04  Martin Baulig  <martin@ximian.com>
5640
5641         * icall.c
5642         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5643         (ves_icall_Type_make_array_type): New interncall.       
5644
5645 2003-12-04  Martin Baulig  <martin@ximian.com>
5646
5647         * locales.c: also change it in the !HAVE_ICU case.
5648
5649 2003-12-04  Dick Porter  <dick@ximian.com>
5650
5651         * icall.c:
5652         * locales.c: construct_compareinfo is now in CompareInfo, not
5653         CultureInfo.
5654
5655 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5656
5657         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5658         image->files array.
5659
5660         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5661         table as well.
5662
5663         * assembly.c (mono_assembly_load_references): Only load references
5664         once.
5665
5666         * class.c (mono_class_from_name): Avoid linear search of the 
5667         EXPORTEDTYPE table.
5668
5669         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5670
5671 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5672
5673         * image.h (MonoImage): Add 'field_cache' field.
5674
5675         * loader.c (mono_field_from_token): Cache field lookups.
5676         
5677         * reflection.c (mono_module_get_object): Fix name property.
5678
5679         * icall.c (ves_icall_get_enum_info): Update after changes to 
5680         mono_metadata_get_constant_index ().
5681
5682         * icall.c: Get rid of get_type_info icall, use a separate icall for
5683         each type property to avoid needless memory allocations. Fixes #51514.
5684
5685         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5686         to avoid needless binary searches.
5687
5688         * class.c (class_compute_field_layout): Move the initialization of
5689         field->def_value to mono_class_vtable ().
5690
5691         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5692         non-corlib types.
5693
5694         * object.c (mono_object_allocate): Make it inline.
5695
5696         * object.c (mono_object_allocate_spec): Make it inline.
5697         
5698 2003-12-02  Dick Porter  <dick@ximian.com>
5699
5700         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5701         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5702
5703 2003-12-01  Dick Porter  <dick@ximian.com>
5704
5705         * threads.c: Fix signature and call in CreateMutex and
5706         CreateEvent.
5707
5708 2003-12-01  Dick Porter  <dick@ximian.com>
5709
5710         * icall.c: 
5711         * locales.c: Implement string compares and searching
5712
5713         * object.h: Add extra Thread field
5714
5715 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5716
5717         * reflection.c (fixup_method): Add support for MonoCMethod.
5718
5719 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5720
5721         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5722
5723         * reflection.c (assembly_name_to_aname): Allow extra characters in
5724         assembly names. Fixes #51468.
5725
5726 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5727
5728         * exception.c (mono_exception_from_name_domain): New helper function.
5729
5730         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5731         exception object in the correct domain.
5732
5733         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5734         formatting + make a copy a the input data.
5735
5736         * loader.c (mono_get_method_from_token): Methods which contain
5737         native code do not have entries in the ImplMap.
5738
5739         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5740         Thanks to Gonzalo for spotting this.
5741         
5742         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5743         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5744
5745         * assembly.h (mono_assembly_load_from): Split the second part of 
5746         assembly loading into a new public function.
5747
5748         * exception.h (mono_get_exception_bad_image_format): New function.
5749
5750 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5751
5752         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5753         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5754         
5755         * icall.c: Add new icall for creating dynamic methods.
5756
5757         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5758
5759         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5760
5761         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5762         create a dynamic method.
5763
5764         * reflection.c (resolve_object): New helper function.
5765
5766         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5767         which manipulate it so they can also work on dynamic methods.
5768
5769         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5770         creating the MonoReflectionMethodAux structure if it is not needed.
5771         
5772         * reflection.h verify.c: Update after changes to object layout.
5773
5774         * reflection.c (method_builder_encode_signature): Fix compilation on
5775         gcc 2.95.x.
5776
5777 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5778
5779         * appdomain.h: Added support for context static fields. Added static_data
5780           field to MonoAppContext and renamed thread_static_fields to a more
5781           generic special_static_fields in MonoAppDomain, since it can now contain
5782           context static fields.
5783         * domain.c: Updated hashtable name.
5784         * object.c: Replaced field_is_thread_static() for a more generic
5785           field_is_special_static() which also checks for context static attribute.
5786           In mono_class_vtable(), added support for static context fields.
5787         * threads.c: Changed methods that manage thread static fields to more
5788           generic methods so they can be reused both for thread and context static
5789           data.
5790         * threads.h: Declared some new methods.
5791
5792 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5793
5794         * reflection.h: Update after changes to the managed types.
5795
5796         * reflection.c (encode_custom_modifiers): New helper function.
5797
5798         * reflection.c (method_encode_signature): Emit custom modifiers.
5799
5800         * reflection.c (field_encode_signature): Emit custom modifiers.
5801
5802 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5803
5804         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5805
5806         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5807         implementation.
5808
5809         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5810         icall.
5811
5812         * object.c (mono_field_get_value_object): New function.
5813
5814         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5815         specific.
5816
5817 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5818
5819         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5820         return a preallocated out-of-memory exception instance.
5821
5822         * object.c (out_of_memory): Use the new function.
5823
5824         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5825         flag is before the custom modifiers. Fixes #49802.
5826
5827 2003-11-16  Martin Baulig  <martin@ximian.com>
5828
5829         * class.c (mono_class_is_open_constructed_type): Implemented the
5830         MONO_TYPE_GENERICINST case.
5831
5832 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5833
5834         * assembly.c (mono_assembly_fill_assembly_name): New function to
5835         fill out the MonoAssemblyName structure.
5836         (mono_assembly_open): Use the new function.
5837
5838         * icall.c (fill_reflection_assembly_name): New helper function.
5839
5840         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5841         new function.
5842
5843         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5844
5845 2003-11-15  Martin Baulig  <martin@ximian.com>
5846
5847         * class.c (mono_class_is_open_constructed_type): New public
5848         function; checks whether a type is an open constructed type,
5849         ie. whether it still contains type parameters.
5850         (mono_class_inflate_generic_type): If we're a type parameter and
5851         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5852         type.
5853
5854         * class.h (MonoGenericInst): Added `guint32 is_open'.
5855
5856         * loader.c (method_from_methodspec): Check whether we're an open
5857         or closed constructed type and set `ginst->is_open'.
5858
5859         * reflection.c (mono_reflection_bind_generic_parameters): Check
5860         whether we're an open or closed constructed type and set
5861         `ginst->is_open'.
5862         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5863         from open constructed types.
5864
5865 2003-11-15  Martin Baulig  <martin@ximian.com>
5866
5867         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5868         a generic instance (instead of a generic type declaration) with
5869         unbound generic parameters, bind them to our actual types.
5870
5871 2003-11-14  Martin Baulig  <martin@ximian.com>
5872
5873         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5874
5875         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5876         an interface type, populate `res->interfaces' with instantiated
5877         versions of all the interfaces we inherit.
5878
5879 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5880
5881         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5882         when MONO_PATH is set but doesn't contain the install dir.
5883
5884 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5885
5886         * icall.c:
5887         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5888         it's also implemented in base classes. Fixes bug #50927.
5889
5890 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5891
5892         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5893         if this method is called from a finalizer. Fixes #50913.
5894
5895 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5896
5897         * threads.c: Implement VolatileRead/VolatileWrite
5898
5899         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5900
5901 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5902
5903         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5904         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5905         2.95.3.
5906
5907         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5908         from Peter Ross (pro@missioncriticalit.com).
5909         
5910 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5911
5912         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5913
5914 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5915
5916         * assembly.c (mono_assembly_load_references): Disable check because it
5917         triggers on older corlibs which lots of people have.
5918
5919 2003-11-12  Jackson Harper  <jackson@ximian.com>
5920
5921         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5922         load corlib.dll if mscorlib.dll is not found.
5923         * assembly.h: Remove corlib name define.
5924         * class.c:
5925         * domain.c:
5926         * image.c: Change corlib name to mscorlib.
5927         
5928 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5929
5930         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5931
5932 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5933
5934         * appdomain.h: Added loader_optimization here to sync with the C#
5935         code, and add disallow_binding_redirects field.
5936
5937 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5938
5939         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5940
5941         * reflection.c (mono_image_build_metadata): Fix crash on modules
5942         with no types.
5943
5944         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5945
5946         * icall.c (ves_icall_get_method_info): Return callingConvention as
5947         well.
5948
5949         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5950         namespaces from the EXPORTEDTYPE table as well.
5951
5952         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5953         from all modules inside the assembly.
5954         
5955 2003-11-11  Martin Baulig  <martin@ximian.com>
5956
5957         * reflection.c (mono_reflection_bind_generic_parameters): Make
5958         this work for interfaces.
5959
5960 2003-11-11  Martin Baulig  <martin@ximian.com>
5961
5962         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5963
5964 2003-11-11  Martin Baulig  <martin@ximian.com>
5965
5966         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5967         "MonoInflatedMethod" and "MonoInflatedCtor".
5968
5969 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5970
5971         * reflection.c (resolution_scope_from_image): Use the assembly table
5972         from the manifest module, since other modules don't have it.
5973
5974         * debug-helpers.c (mono_type_full_name): New helper function.
5975
5976         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5977
5978         * image.c (mono_image_load_file_for_image): New public function which
5979         is a replacement for the load_file_for_image in class.c.
5980
5981         * assembly.c (mono_assembly_load_module): A wrapper for the function
5982         above which does assembly association and reference loading too.
5983
5984         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5985
5986 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5987
5988         * appdomain.c: not all of the attributes for the full assembly name
5989         are required and the order doesn't matter. Fixes bug #50787.
5990
5991 2003-11-10  Dick Porter  <dick@ximian.com>
5992
5993         * locales.c: Use platform-endian UTF16
5994
5995 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5996
5997         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5998         
5999 2003-11-10  Martin Baulig  <martin@ximian.com>
6000
6001         * metadata.c
6002         (mono_metadata_load_generic_params): Make this actually work.
6003
6004         * reflection.c (mono_reflection_bind_generic_parameters): If our
6005         parent is a generic instance, pass all the `types' to it, no
6006         matter whether it has the same number of type parameters or not.
6007
6008 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6009
6010         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6011
6012         * assembly.c (mono_assembly_load_references): Move the image<->assembly
6013         assignment code to this function so it gets called recursively for all
6014         modules.
6015
6016         * image.c (load_modules): Remove the assembly assignment since it is
6017         now done by mono_assembly_load_references.
6018         
6019         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
6020         Add 'module' argument.
6021         (mono_module_get_types): New helper function.
6022         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
6023
6024 2003-11-08  Martin Baulig  <martin@ximian.com>
6025
6026         * class.c (mono_class_inflate_generic_method): Interface method
6027         don't have a header.
6028
6029         * reflection.c (mono_image_get_methodspec_token): Take an
6030         additional `MonoGenericInst *' argument instead of reading it from
6031         the header; this is necessary to support interfaces.
6032         (mono_image_create_token): Pass the `MonoGenericInst *' from the
6033         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
6034         (inflated_method_get_object): Take an additional `MonoGenericInst *'
6035         argument.
6036
6037         * reflection.h (MonoReflectionInflatedMethod): Added
6038         `MonoGenericInst *ginst'.
6039
6040 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
6041
6042         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
6043
6044 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
6045
6046         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
6047
6048 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
6049
6050         * reflection.c 
6051         (reflection_methodbuilder_from_method_builder):
6052         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
6053         initialize a ReflectionMethodBuilder structure.
6054         (mono_image_get_methodbuilder_token):
6055         (mono_image_get_ctorbuilder_token): New functions to emit memberref
6056         tokens which point to types in another module inside the same assembly.
6057
6058         * reflection.c: Use the new helper functions.
6059         
6060         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
6061
6062         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
6063         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
6064
6065         * reflection.c (resolution_scope_from_image): Emit a moduleref if
6066         neccesary.
6067
6068         * reflection.c (mono_image_build_metadata): Emit metadata only for the
6069         current module. Emit the manifest only for the main module.
6070
6071         * reflection.c (mono_image_create_token): Add assertion when a 
6072         memberref needs to be created.
6073
6074         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
6075
6076         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
6077         larger buffer for the custom attribute blob. Fixes #50637.
6078         
6079 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6080
6081         * threadpool.c: notify listener on async processing handles after
6082         invoking the async callback. Thanks to Zoltan.
6083
6084 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6085
6086         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
6087         avoid code duplication.
6088
6089         * reflection.h (MonoDynamicImage): New type which is currently unused,
6090         but will be used through the ref.emit code in place of 
6091         MonoDynamicAssembly.
6092
6093         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6094         object layout.
6095
6096         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
6097         a MonoDynamicImage instead of just a MonoImage.
6098         
6099         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
6100         icalls to ModuleBuilder but keep their semantics, so they will work
6101         with moduleb->assemblyb. This will change later.
6102         
6103 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6104
6105         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6106         object layout.
6107
6108         * reflection.c (mono_image_build_metadata): Avoid creation of a default
6109         main module, since it is now done by the managed code.
6110
6111 2003-11-03  Martin Baulig  <martin@ximian.com>
6112
6113         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
6114         `ginst->klass' here.
6115         (method_encode_methodspec): Don't use the `ginst->generic_method's
6116         klass if it's a generic instance, use `ginst->klass' in this case.
6117
6118 2003-11-03  Martin Baulig  <martin@ximian.com>
6119
6120         * reflection.c (mono_image_get_generic_method_param_info):
6121         Removed, use mono_image_get_generic_param_info() instead.
6122         (mono_image_get_type_info): Write the GenericParam table before
6123         the Method table.  This is neccessary because in the GenericParam
6124         table, type parameters of the class (ie. '!0' etc.) must come
6125         before the ones from its generic methods (ie. '!!0' etc).
6126
6127 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6128
6129         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
6130
6131 2003-11-02  Martin Baulig  <martin@ximian.com>
6132
6133         * reflection.c (create_generic_typespec): Take a
6134         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
6135         the generic parameters from it.
6136
6137 2003-11-02  Martin Baulig  <martin@ximian.com>
6138
6139         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
6140         instead of a `MonoClassField *' since we just need the type.
6141         (create_generic_typespec): New static function.  Creates a
6142         TypeSpec token for a generic type declaration.
6143         (mono_image_get_generic_field_token): New static function.
6144         (mono_image_create_token): If we're a FieldBuilder in a generic
6145         type declaration, call mono_image_get_generic_field_token() to get
6146         the token.
6147
6148 2003-11-02  Martin Baulig  <martin@ximian.com>
6149
6150         * reflection.h
6151         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
6152         `MonoReflectionGenericInst *declaring_type' and
6153         `MonoReflectionGenericInst *reflected_type' fields.
6154
6155         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
6156         `MonoReflectionGenericInst *declaring_type' and a
6157         `MonoReflectionGenericInst *reflected_type' argument instead of a
6158         single `MonoReflectionGenericInst *type' one.  Set
6159         `res->declaring_type' and `res->reflected_type' from them.
6160         (mono_reflection_inflate_field): Likewise.      
6161
6162 2003-11-02  Martin Baulig  <martin@ximian.com>
6163
6164         * class.c (mono_class_setup_vtable): Don't store generic methods
6165         in the vtable.  
6166
6167 2003-11-02  Martin Baulig  <martin@ximian.com>
6168
6169         * reflection.h (MonoReflectionGenericInst): Added
6170         `MonoReflectionType *declaring_type'.
6171
6172         * reflection.c (mono_reflection_bind_generic_parameters): Use
6173         `if (tb->parent)' instead of `klass->parent'.
6174
6175 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
6176
6177         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
6178         with an empty ASSEMBLY table.
6179
6180         * reflection.c (mono_image_build_metadata): Avoid using the same loop
6181         variable in the inner and outer loops.
6182
6183 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
6184
6185         * metadata.h (mono_metadata_make_token): Put parentheses around macro
6186         argument.
6187
6188         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
6189         
6190         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
6191         icalls. Instead, do everything in managed code. This is needed since
6192         it is hard to restore the original domain etc. in unmanaged code in the
6193         presence of undeniable exceptions.
6194
6195         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
6196         New icalls to push and pop appdomain refs.
6197
6198 2003-10-31  Martin Baulig  <martin@ximian.com>
6199
6200         * class.c (inflate_generic_type): Renamed to
6201         mono_class_inflate_generic_type() and made it public.
6202
6203         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6204         New interncall.
6205
6206         * loader.c (mono_field_from_memberref): Also set the retklass for
6207         typespecs.
6208
6209         * fielder.c (mono_image_get_inflated_field_token): New static
6210         method; creates a metadata token for an inflated field.
6211         (mono_image_create_token, fixup_method): Added support for
6212         "MonoInflatedField".
6213         (fieldbuilder_to_mono_class_field): New static function.
6214         (mono_reflection_inflate_field): New public function.
6215
6216         * reflection.h
6217         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6218         (MonoReflectionInflatedField): New typedef.     
6219
6220 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6221
6222         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6223         for Solaris and other platforms without s6_addr16
6224
6225 2003-10-30  Martin Baulig  <martin@ximian.com>
6226
6227         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6228         argument instead of two.
6229         (mono_class_inflate_generic_signature): Likewise.
6230         (inflate_generic_header): Likewise.
6231         (mono_class_inflate_generic_method): Likewise.  In addition, if
6232         `ginst->klass' is set, it becomes the new `method->klass'.
6233
6234         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6235         field.
6236
6237         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6238         first byte. [FIXME]
6239         (method_encode_methodspec): If we have generic parameters, create
6240         a MethodSpec instead of a MethodRef.
6241         (fixup_method): Added support for "MonoInflatedMethod" and
6242         "MonoInflatedCtor".
6243         (mono_image_create_token): Added support for "MonoInflatedMethod"
6244         and "MonoInflatedCtor".
6245         (inflated_method_get_object): New static function; returns a
6246         managed "System.Reflection.MonoInflatedMethod" object.
6247         (mono_reflection_bind_generic_method_parameters): Return a
6248         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6249         (mono_reflection_inflate_method_or_ctor): Likewise.
6250         (mono_image_get_generic_method_param_info): Initialize unused
6251         fields to zero.
6252         (mono_image_get_generic_param_info): Likewise.
6253
6254         * reflection.h (MonoReflectionInflatedMethod): New public
6255         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6256         "S.R.MonoInflatedCtor" classes.
6257
6258         * loader.c (method_from_memberref): If we're a TypeSpec and it
6259         resolves to a generic instance, inflate the method.
6260
6261 2003-10-28  Dick Porter  <dick@ximian.com>
6262
6263         * object.c (mono_runtime_run_main): Convert command-line arguments
6264         into utf8, falling back to the user's locale encoding to do so.
6265
6266 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6267
6268         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6269         at this time.
6270
6271         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6272
6273         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6274         up icalls at method definition time. Partially fixes #33569.
6275
6276 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6277
6278         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6279         marshalling of arrays. Fixes #50116.
6280
6281         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6282
6283         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6284         points to a vtable in the dying appdomain.
6285
6286         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6287         listeners into unmanaged code inside the lock.
6288
6289         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6290         domains and add some comments.
6291
6292 2003-10-25  Martin Baulig  <martin@ximian.com>
6293
6294         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6295
6296         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6297
6298         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6299         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6300         currently parsing.  Create the generic class and store it in
6301         `generic_inst->klass' before parsing the type arguments.  This is
6302         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6303         for an example.
6304         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6305         to support recursive typespec entries.
6306
6307         * class.c (mono_class_setup_parent): If our parent is a generic
6308         instance, we may get called before it has its name set.
6309         (mono_class_from_generic): Splitted into
6310         mono_class_create_from_generic() and mono_class_initialize_generic().
6311
6312 2003-10-25  Martin Baulig  <martin@ximian.com>
6313
6314         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6315         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6316         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6317         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6318
6319         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6320         (create_typespec): Likewise.
6321         (mono_reflection_bind_generic_parameters): Return a
6322         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6323         (mono_reflection_inflate_method_or_ctor): New public function.
6324
6325         * reflection.h (MonoReflectionGenericInst): New typedef.        
6326
6327 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6328
6329         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6330         inside the domain lock. Fixes #49993.
6331         
6332         * object.c (mono_class_vtable): When typed allocation is used, 
6333         allocate vtables in the GC heap instead of in the mempool, since the
6334         vtables contain GC descriptors which are used by the collector even
6335         after the domain owning the mempool is unloaded.
6336
6337         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6338
6339         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6340         reflect what it does. Also invalidate mempools instead of freeing
6341         them if a define is set.
6342
6343         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6344         of the appdomain.
6345         
6346         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6347         hold the finalizable objects in this domain.
6348
6349         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6350         appdomain.
6351
6352         * appdomain.c (mono_domain_set): New function to set the current
6353         appdomain, but only if it is not being unloaded.
6354
6355         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6356         appdomain which is being unloaded.
6357         
6358         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6359         unloading of the root appdomain.
6360
6361         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6362         icall to execute a method in another appdomain. Intended as a 
6363         replacement for InternalSetDomain, which can confuse the code 
6364         generation in the JIT.
6365
6366         * appdomain.c (mono_domain_is_unloading): New function to determine
6367         whenever an appdomain is unloading.
6368
6369         * appdomain.c (mono_domain_unload): New function to correctly unload
6370         an appdomain.
6371
6372         * assembly.c (mono_assembly_load_references): Check that an assembly
6373         does not references itself.
6374
6375         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6376         domain manually, it asks the finalizer thread to do it, then waits for
6377         the result. Also added a timeout.
6378
6379         * icall.c: Register the new icalls.
6380
6381         * threads.h threads.c: Export the mono_gc_stop_world and 
6382         mono_gc_start_world functions.
6383         
6384         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6385         function to fill out the mempool with 0x2a.
6386
6387 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6388
6389         * reflection.h (MonoReflectionMethodAux): New structure to store
6390         information which is rarely used, thus is not in the MonoMethod
6391         structure.
6392
6393         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6394         store the aux info.
6395
6396         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6397         and marshalling info into the aux structure.
6398
6399         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6400         from the aux structure.
6401
6402         * loader.c (mono_method_get_param_names): Retrieve the param names from
6403         the aux structure.
6404         
6405 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6406
6407         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6408         warning.
6409
6410 2003-10-21  Dick Porter  <dick@ximian.com>
6411
6412         * socket-io.c
6413         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6414         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6415
6416 2003-10-21  Martin Baulig  <martin@ximian.com>
6417
6418         * reflection.c (mono_reflection_bind_generic_parameters):
6419         `klass->parent' is NULL for interfaces.
6420
6421 2003-10-21  Martin Baulig  <martin@ximian.com>
6422
6423         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6424
6425 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6426
6427         * exception.c (mono_exception_from_name_msg): New helper function for
6428         creating exceptions and initializing their message field.
6429
6430         * exception.c: Simplify functions using the new helper.
6431
6432         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6433         New function.
6434
6435         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6436         mono_raise_exception, since otherwise gcc doesn't generate the function
6437         epilog for raise_exception, confusing the stack unwinding in the JIT.
6438         Fixes #45043.
6439
6440         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6441         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6442         Fixes #49499.
6443
6444 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6445
6446         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6447         utf8.
6448
6449 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6450
6451         * icall.c: Removed GetUninitializedObject method because
6452           AllocateUninitializedClassInstance does the same.
6453
6454 2003-10-18  Martin Baulig  <martin@ximian.com>
6455
6456         * class.c (inflate_generic_signature): Renamed to
6457         mono_class_inflate_generic_signature() and made it public.
6458         (my_mono_class_from_generic_parameter): New static function; if we
6459         don't already have the generic parameter's MonoClass, create a
6460         very simple one which is just used internally in the runtime and
6461         not passed back to managed code.
6462
6463         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6464
6465         * metadata.h (MonoMethodSignature): Moved the
6466         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6467         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6468
6469         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6470         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6471         interncall on the MonoMethod class, not on MethodInfo.
6472         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6473         calling mono_reflection_bind_generic_method_parameters() directly.
6474
6475         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6476         return the already computed `method->signature'.
6477         (method_from_methodspec): New static function to load a method
6478         from a MethodSpec entry.
6479         (mono_get_method_from_token): Call the new method_from_methodspec()
6480         for MethodSpec tokens.  
6481         (mono_get_method_from_token): If we're a generic method, load the
6482         type parameters.
6483
6484         * reflection.c (mono_image_get_memberref_token): Allow
6485         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6486         table.
6487         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6488         (mono_image_create_token): First check whether it's a generic
6489         method (so we'd need to create a MethodSpec), then do the other
6490         two alternatives.
6491         (mono_reflection_bind_generic_method_parameters): Return a
6492         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6493         called directly from the interncall.
6494
6495 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6496
6497         * reflection.c (load_public_key): Move loading of the public key
6498         into managed code.
6499
6500         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6501
6502         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6503         fields.
6504
6505         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6506         culture, hash_alg and public_key. Fixes #49555.
6507
6508 2003-10-17  Martin Baulig  <martin@ximian.com>
6509
6510         * class.h (MonoGenericInst): Moved this declaration here and added
6511         `MonoMethod *generic_method'.
6512
6513         * icall.c
6514         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6515         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6516
6517         * metadata.c (mono_metadata_type_equal): Two types of
6518         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6519         index; ie. don't compare the address of the `MonoGenericParam'
6520         structure.
6521         (mono_metadata_load_generic_params): Removed the `MonoMethod
6522         *method' argument.
6523
6524         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6525         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6526
6527         * reflection.c (method_encode_signature): Encode the number of
6528         generic parameters.
6529         (encode_generic_method_sig): New static function.
6530         (method_encode_methodspec): New static function; creates an entry
6531         in the MethodSpec table for a generic method.
6532         (mono_image_get_methodspec_token): New static function.
6533         (mono_image_create_token): Call mono_image_get_methodspec_token()
6534         for generic methods.
6535         (mono_reflection_bind_generic_method_parameters): New public
6536         function.  Instantiates a generic method.
6537
6538 2003-10-16  Martin Baulig  <martin@ximian.com>
6539
6540         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6541         *gen_params' here from MonoMethodHeader.
6542
6543         * metadata.c (mono_metadata_parse_method_signature): If we have
6544         generic parameters, initialize `method->gen_params' and then set
6545         the correct `type->data.generic_param' in all the parameters.
6546
6547 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6548
6549         * threads.c (mono_threads_get_default_stacksize): New function to 
6550         return the default stacksize.
6551
6552         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6553         termination of the finalizer thread, since the previous method had
6554         race conditions. Fixes #49628.
6555
6556         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6557         as for the other managed threads.
6558
6559 2003-10-16  Martin Baulig  <martin@ximian.com>
6560
6561         * class.c (inflate_generic_signature): Copy `generic_param_count'
6562         and `gen_params'.
6563
6564         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6565         New interncall.
6566
6567         * metadata.c (mono_metadata_parse_method_signature): Actually set
6568         the `method->generic_param_count' here.
6569         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6570
6571 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6572
6573         * object.h: Add a new field to TypedRef to simplify the implementation
6574         of the REFANY opcodes in the JIT.
6575
6576         * icall.c: Make use of the new field.
6577
6578         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6579         dynamically.
6580
6581 2003-10-15  Martin Baulig  <martin@ximian.com>
6582
6583         * class.c (mono_class_from_gen_param): Renamed to
6584         mono_class_from_generic_parameter() and moved most of the
6585         functionality from mono_reflection_define_generic_parameter()
6586         here; ie. we create a "real" class here.
6587         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6588         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6589         previously been called.
6590
6591         * class.h (MonoGenericParam): Moved the declaration of this struct
6592         here from metadata.h and added `MonoMethod *method'.
6593
6594         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6595         interncall.
6596
6597         * loader.c (mono_get_method_from_token): If we have any generic
6598         parameters, call mono_metadata_load_generic_params() to read them
6599         from the MONO_TABLE_GENERICPAR.
6600
6601         * metadata.c (mono_metadata_load_generic_params): Added
6602         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6603
6604         * metadata.h (MonoMethodSignature): Replaced
6605         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6606         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6607
6608         * reflection.c (mono_reflection_define_generic_parameter): Moved
6609         most of the functionality into the new
6610         mono_class_from_generic_parameter(); set the `method' field if
6611         we're a method parameter.       
6612
6613 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6614
6615         * marshal.c (emit_struct_conv): if native size is 0
6616         emit no code.
6617
6618 2003-10-14  Martin Baulig  <martin@ximian.com>
6619
6620         * icall.c: The generics API has changed in the spec since it was
6621         added to System.Type; these modifications make it match the spec
6622         again.
6623         (ves_icall_Type_GetGenericParameters): Renamed to
6624         `ves_icall_Type_GetGenericArguments'.
6625         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6626         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6627         `ves_icall_MonoType_get_HasGenericArguments'.
6628         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6629         `ves_icall_MonoType_get_IsGenericParameter'.
6630         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6631         this is no interncall anymore.
6632         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6633         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6634
6635 2003-10-14  Martin Baulig  <martin@ximian.com>
6636
6637         * reflection.c (mono_reflection_bind_generic_parameters): Also
6638         inflate generic methods if we're reading the class from IL.
6639
6640 2003-10-13  Martin Baulig  <martin@ximian.com>
6641
6642         * reflection.c (mono_reflection_define_generic_parameter): This
6643         method isn't called directly from the icall anymore; take a
6644         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6645         method generic parameters.
6646         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6647         (method_builder_encode_signature): Encode generic parameters.
6648         (mono_image_get_method_info): Write generic params to the
6649         MONO_TABLE_GENERICPARAM table.
6650
6651         * reflection.h (MonoReflectionMethodBuilder): Added
6652         `MonoArray *generic_params'.
6653
6654         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6655
6656         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6657         wrapper for mono_reflection_define_generic_parameter().
6658         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6659
6660 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6661
6662         * marshal.h: Add missing function to fix build.
6663
6664         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6665         the SetLastError pinvoke attribute.
6666
6667         * marshal.c (mono_marshal_set_last_error): New helper function called
6668         by the generated code.
6669         
6670         * marshal.c (mono_mb_emit_branch): New helper function.
6671
6672         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6673
6674         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6675         classes as parameters and return values of delegates. Fixes #29256. 
6676
6677 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6678
6679         * locales.c: use gint32 in non HAVE_ICU case
6680
6681 2003-10-11  Martin Baulig  <martin@ximian.com>
6682
6683         * mono-debug.c (mono_debug_add_method): Added a workaround for
6684         bug #48591.
6685
6686 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6687
6688         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6689         delegates passed to native code must use the STDCALL calling 
6690         convention. Fixes #35987.
6691
6692 2003-10-10  Martin Baulig  <martin@ximian.com>
6693
6694         * class.c (inflate_generic_type): If we're inflating for a generic
6695         type instance (and not for a generic method), return
6696         MONO_TYPE_MVAR unchanged.
6697
6698 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6699
6700         * string-icalls.c: Join ignores null strings in the source array.
6701         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6702         * threads.c: GetAvailableTheads is slightly more accurate.
6703
6704 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6705
6706         * threads.h threads.c : add mono_threads_set_default_stacksize
6707         and pass default to CreateThread calls.
6708
6709 2003-10-09  Dick Porter  <dick@ximian.com>
6710
6711         * icall.c:
6712         * locales.h:
6713         * locales.c: Internal calls for constructing CultureInfo and
6714         related objects from libicu (if its available.)
6715
6716 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6717
6718         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6719
6720 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6721
6722         * threadpool.c: added an argument to async_invoke_thread that is the
6723         item to process, pass the MonoAsyncResult to the thread start function
6724         when creating a new thread. This way we don't need to acquire any lock
6725         when we're creating a new thread. Readded a semaphore for faster
6726         response times (instead of that Sleep i added).
6727
6728 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6729
6730         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6731         get daylight change dates better on Windows, fix handling
6732         of platforms without tm_gmtoff.
6733
6734 2003-10-06  Martin Baulig  <martin@ximian.com>
6735
6736         * class.c (inflate_generic_method): Renamed to
6737         mono_class_inflate_generic_method() and made public.
6738         (mono_class_init): Don't inflate the generic methods here.
6739         (mono_class_from_generic): Added `gboolean inflate_methods'
6740         argument.  Inflate the methods here.
6741
6742         * loader.c (mono_method_get_param_names): Ignore instances of
6743         generic types for the moment.
6744
6745         * reflection.c (fixup_method): Added support for inflated methods.
6746         (mono_image_create_token): Use mono_image_get_methodref_token()
6747         for inflated methods.
6748         (mono_custom_attrs_from_param): Ignore instances of generic types
6749         for the moment.
6750         (mono_reflection_bind_generic_parameters): New public function.
6751         Moved all the functionality from
6752         ves_icall_Type_BindGenericParameters() here and added support for
6753         dynamic types.
6754         (mono_reflection_define_generic_parameter): Initialize
6755         `klass->methods' here.
6756
6757         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6758         functionality into mono_reflection_define_generic_parameter().
6759         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6760         TypeBuilder, return that TypeBuilder.
6761
6762 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6763
6764         * appdomain.c: removed mono_delegate_semaphore.
6765
6766         * threadpool.c:
6767         (mono_thread_pool_add): moved hash table creation inside and the thread 
6768         creation outside of the critical region.
6769         (mono_thread_pool_finish): removed obsolete code.
6770         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6771         continue or exit the thread depending on the queue.
6772
6773 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6774
6775         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6776         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6777         handle more bool marshalling options
6778
6779 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6780
6781         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6782         arrays of structs. Also add a more descriptive error message when
6783         a structure member is marshalled as LPArray.
6784
6785 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6786
6787         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6788         marshalling arrays of complex types. Fixes #29098. Also remove an
6789         usused and incomplete function.
6790
6791 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6792
6793         * gc.c: report heap_size - free_bytes as total memory allocated
6794         (bug#49362).
6795
6796 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6797
6798         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6799         fix timezone handling problems on Windows.
6800         
6801         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6802         asserts when the year is outside the range handled by ms the functions.
6803
6804         * class.c (setup_interface_offsets): If the class is an interface,
6805         fill out its interface_offsets slot.
6806
6807 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6808
6809         * threadpool.c: mark threadpool threads as background.
6810
6811 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6812
6813         * decimal.c - define DECINLINE to nothing if not using GCC
6814
6815 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6816
6817         * assembly.c: More refcount fixes.
6818
6819 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6820
6821         * string-icalls.c: if we're not trimming, return the same string.
6822         When not splitting, don't create a new string.
6823
6824 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6825
6826         * image.c:
6827         (mono_image_open): increment the ref_count inside the critical section.
6828
6829 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6830
6831         * image.c (mono_image_open): Fix reference counting bug.
6832
6833 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6834
6835         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6836         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6837         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6838         mono_lookup_pinvoke_call throws.        
6839
6840 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6841
6842         * reflection.c (mono_reflection_parse_type): Fix #49114.
6843
6844         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6845         temporary workaround for cygwin header problem.
6846
6847         * object.c (mono_object_isinst): Synchronize this with the code
6848         generated by the JIT for casts.
6849
6850 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6851
6852         * reflection.c (encode_type): Fix #38332.
6853
6854 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6855
6856         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6857         the original method from the wrapper method.
6858
6859 2003-09-25  Martin Baulig  <martin@ximian.com>
6860
6861         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6862         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6863         (ves_icall_Type_get_IsGenericInstance): New interncall.
6864
6865 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6866
6867         * object.c: fix cast warning in big endian code.
6868
6869 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6870
6871         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6872         
6873 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6874
6875         * assembly.c: don't call check_env from mono_assembly_load. It's
6876         already done once in mono_assemblies_init and may cause headaches when
6877         multiple threads are loading assemblies.
6878
6879 2003-09-19  Martin Baulig  <martin@ximian.com>
6880
6881         * reflection.c (mono_reflection_define_generic_parameter): Don't
6882         allocate `klass->methods', set `klass->flags' to
6883         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6884
6885 2003-09-18  Martin Baulig  <martin@ximian.com>
6886
6887         * class.c (mono_class_init): Don't create `class->methods' if it's
6888         already initialized.
6889
6890         * metadata.c (mono_metadata_load_generic_params): Make this
6891         actually work.
6892
6893         * reflection.c (mono_reflection_define_generic_parameter): Set
6894         parent class and interfaces from the constraints.
6895
6896         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6897         to keep this struct in sync with the declaration in TypeBuilder.cs.
6898
6899 2003-09-17  Martin Baulig  <martin@ximian.com>
6900
6901         * metadata.h (MonoType): Replaced the data's `int type_param'
6902         field with `MonoGenericParam *generic_param'.
6903         (MonoGenericParam): Added `MonoClass *klass'.
6904
6905         * class.c (mono_class_from_gen_param): Removed the
6906         `MonoImage *image' and `int type_num' arguments.
6907
6908         * metadata.c (mono_metadata_parse_generic_param): New static
6909         method; creates a MonoGenericParam which just contains the index.
6910         (do_mono_metadata_parse_type): Call
6911         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6912         MONO_TYPE_MVAR.
6913
6914         * reflection.c (mono_image_typedef_or_ref): Generic type
6915         parameters may be in the same assembly, but never use a typedef
6916         for them.
6917         (mono_reflection_define_generic_parameter): We're now creating a
6918         "real" class for the type parameter; it's now safe to call
6919         mono_class_from_mono_type() on the class'es type, it'll do the
6920         right thing.
6921
6922 2003-09-16  Martin Baulig  <martin@ximian.com>
6923
6924         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6925         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6926         the `symfile' data structure must be fully initialized before it
6927         gets added to the table.
6928
6929 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6930
6931         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6932
6933         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6934         class init trampolines.
6935
6936 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6937
6938         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6939         to the built-in profiler to turn off time and allocation profiling
6940         respectively.
6941
6942 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6943
6944         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6945         g_direct_equal.
6946
6947         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6948         in human readable form.
6949
6950 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6951
6952         * reflection.c icall.c: Fixed warnings.
6953
6954         * image.c (load_class_names): Use a temporary hash table to hold the
6955         namespaces in order to avoid doing many string comparisons.
6956
6957         * image.h: Fix typo.
6958
6959         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6960         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6961         since the NULL case is short-circuited inside g_hash_table_lookup, 
6962         leading to better performance.  
6963
6964         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6965         obtain the first custom attribute for a given index. Depends on the
6966         CustomAttribute table being sorted by the parent field.
6967
6968         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6969         for better performance.
6970
6971 2003-09-07  Martin Baulig  <martin@ximian.com>
6972
6973         * class.c (mono_class_init): If we're a generic instance, inflate
6974         all our methods instead of loading them from the image.
6975         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6976
6977 2003-09-07  Martin Baulig  <martin@ximian.com>
6978
6979         * mono-debug-debugger.c: Added support for constructors.
6980
6981 2003-09-06  Martin Baulig  <martin@ximian.com>
6982
6983         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6984         New interncall.
6985
6986         * reflection.c (mono_reflection_setup_generic_class): Call
6987         ensure_runtime_vtable() to create the vtable.
6988
6989 2003-09-05  Martin Baulig  <martin@ximian.com>
6990
6991         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6992         MONO_TYPE_MVAR.
6993
6994 2003-09-04  Martin Baulig  <martin@ximian.com>
6995
6996         * reflection.c (mono_reflection_define_generic_parameter): Generic
6997         parameters start with zero.
6998
6999 2003-09-04  Martin Baulig  <martin@ximian.com>
7000
7001         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
7002
7003         * reflection.h (MonoReflectionGenericParam): New typedef.
7004         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
7005         the generic parameters from the managed TypeBuilder.
7006
7007         * reflection.c (mono_reflection_define_generic_parameter): New function.
7008         (mono_reflection_create_runtime_class): Encode generic parameters.
7009         (mono_reflection_setup_generic_class): New function; this is
7010         called after adding adding all generic params to the TypeBuilder.
7011         (encode_type): Added MONO_TYPE_VAR.
7012
7013 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
7014
7015         * class.h class.c (mono_class_needs_cctor_run): Moved this method
7016         here from the JIT.
7017
7018         * assembly.h assembly.c: Moved the AOT loading code into an assembly
7019         load hook.
7020
7021 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
7022
7023         * reflection.h reflection.c class.h class.c: Delete duplicate 
7024         definition of mono_type_get_name () from reflection.c and export the
7025         one in class.c.
7026
7027         * class.c: Class loading fixes from Bernie Solomon 
7028         (bernard@ugsolutions.com).
7029
7030         * reflection.c: Endianness fixes from Bernie Solomon 
7031         (bernard@ugsolutions.com).
7032         
7033 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
7034
7035         * assembly.h assembly.c: Define a file format version for AOT
7036         libraries.
7037         
7038         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
7039
7040         * appdomain.h (MonoJitInfo): New field to determine whenever the
7041         code is domain neutral.
7042         
7043 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
7044
7045         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
7046
7047 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
7048
7049         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
7050         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
7051         Avoid caching the result since strings must be domain specific. Fixes
7052         #48050.
7053
7054 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
7055
7056         * marshal.c (mono_marshal_init): Make this callable multiple times
7057         since it is hard to find a correct place to call it.
7058
7059         * object.c (mono_runtime_class_init): Execute static constructors in
7060         the correct appdomain.
7061
7062         * image.c (build_guid_table): Handle the case when multiple images have
7063         the same GUID.
7064
7065 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7066
7067         * icall.c: added a couple of icalls for System.Web.
7068
7069 2003-08-28  Martin Baulig  <martin@ximian.com>
7070
7071         * icall.c (ves_icall_Type_BindGenericParameters): Use
7072         `klass->generic_inst' instead of `&klass->byval_arg' in the
7073         mono_type_get_object() call.  The returned type must be
7074         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
7075
7076 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
7077
7078         * NOTES: New file.
7079
7080         * object.c (mono_class_proxy_vtable): Make it thread safe.
7081
7082         * pedump.c: Fix warning.
7083
7084         * object.c appdomain.h: Get rid of metadata_section. 
7085         It is no longer needed and it was causing deadlocks with domain->lock.
7086
7087         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
7088
7089 2003-08-26  Martin Baulig  <martin@ximian.com>
7090
7091         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
7092
7093 2003-08-26  Martin Baulig  <martin@ximian.com>
7094
7095         * pedump.c (main): Call mono_metadata_init(),
7096         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
7097         and mono_loader_init().
7098
7099 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
7100
7101         * loader.h: Add missing include to fix build.
7102
7103         * image.h: mono_image_load_references is no more.
7104
7105         * assembly.c: Reworked assembly loading to make it really thread safe.
7106         After these changes, the assembly returned by mono_assembly_open is
7107         fully initialized, i.e. all its references assemblies are loaded.
7108
7109         * assembly.c (mono_image_load_references): Renamed to 
7110         mono_assembly_load_references, and made private, since clients no
7111         longer need to call it.
7112
7113         * class.c: Removed calls to mono_assembly_load_references, since it was
7114         a source of deadlocks.
7115
7116         * loader.h loader.c class.h class.c: Protect data structures using a 
7117         new lock, the loader lock.
7118
7119         * class.c (mono_class_setup_vtable): Create temporary hash tables and
7120         GPtrArrays only when needed.
7121
7122         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
7123         into empty structures by mcs. Fixes pinvoke7.cs.
7124         
7125         * domain.c (mono_init): Call a new initialization function.
7126
7127         * appdomain.c (mono_runtime_init): Call the new initializer function
7128         of the marshal module.
7129
7130         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
7131         inserted into empty structures by mcs. Fixes pinvoke7.cs.
7132
7133         * marshal.h marshal.c: Added locks around the wrapper caches to make
7134         this module thread safe.
7135
7136         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
7137         this argument. Fixes pinvoke1.exe.
7138
7139 2003-08-25  Lluis Sanchez <lluis@ximian.com>
7140
7141         * object.h: Added call_type field to MonoMethodMessage and the corresponding
7142         enumeration of values. Removed fields to store remote call output values in
7143         MonoAsyncResult. Not needed any more.
7144         * object.c: Initialize call_type and async_result fields in mono_message_init.
7145         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
7146         dispatching the message.
7147         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
7148         async call to finish. To do it use a message with EndInvoke call type.
7149
7150 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
7151
7152         * loader.h loader.c (mono_method_hash_marhal_info): New function which
7153         determines whenever a method has marshalling info.
7154
7155 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7156
7157         * assembly.c: fix the build on windows.
7158
7159 2003-08-22 Lluis Sanchez <lluis@ximian.com>
7160
7161         * object.cs: Fixed bug #47785.
7162
7163 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
7164
7165         * string-icalls.c (StringReplace): If their are no occurances of
7166         the old string found return a reference to the supplied
7167         string. This saves some memory and matches MS behavoir.
7168         
7169 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7170
7171         * socket-io.c: fixed compilation for systems that define AF_INET6
7172         and don't define SOL_IP/SOL_IPV6.
7173
7174 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
7175
7176         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
7177         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
7178
7179         * rawbuffer.c rawbuffer.h: Make this module thread safe.
7180
7181         * domain.c: Make this module thread safe.
7182
7183         * domain.c (mono_init): Call new initialization function.
7184
7185         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
7186         reference types too. Fixes #38812.
7187
7188         * image.c (mono_image_init): Fixed warnings.
7189
7190         * class.c (mono_class_from_typeref): Handle assembly load failure
7191         correctly.
7192
7193         * appdomain.c (add_assemblies_to_domain): Handle the case when
7194         the references of an assembly are not yet loaded.
7195
7196         * metadata.c image.c assembly.c: Moved initialization of global
7197         variables to a separate function called at startup since lazy 
7198         initialization of these variables is not thread safe.
7199         
7200         * image.c assembly.c: Made this module thread safe by adding locks in 
7201         the appropriate places.
7202
7203         * domain.c (mono_init): Call the new initialization functions of the
7204         three modules.
7205
7206 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
7207
7208         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7209           make a direct call. It is proxy's work to make the call asynchronous.
7210           mono_delegate_end_invoke(): If the targe is a proxy, just collect
7211           the return values.
7212         * object.cs: mono_method_call_message_new(): read AsyncResult and
7213           state object from parameters list, if this info is requested.
7214         * object.h: Added fields to store remote call output values in
7215           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7216
7217 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7218
7219         * object.h: add needed fields to MonoThread.
7220         * threads.c, threads.h: allow registering a function to cleanup data
7221         allocated per thread by the JIT.
7222
7223 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7224
7225         * loader.h: portability fix by Bernie Solomon
7226         * <bernard@ugsolutions.com>.
7227
7228 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7229
7230         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7231         return a MonoArray. This simplifies the code and also ensures that
7232         the cache allways contains an object reference as a value.
7233
7234         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7235         function.
7236
7237 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7238
7239         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7240         fixes a problem with byte ordering when getting the address family for
7241         a socket.
7242
7243 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7244
7245         * .cvsignore: Added monosn.
7246
7247         * reflection.h reflection.c loader.c: Added support for parameter
7248         marshalling to dynamically created types. Fixes #47295.
7249
7250 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7251
7252         * rand.c: remove useless warnings.
7253
7254 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7255
7256         * class.c: implemented ldtoken for methods and fieldrefs.
7257
7258 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7259
7260         * threadpool.c: when mono_async_invoke was called, no one took care of
7261         monitoring the queue. So if the method invoked took some time and we
7262         got new async invoke requests after 500 ms (the thread created waited
7263         that long in WaitForSingleObject), the new async invoke was not called
7264         until the previous one finished.
7265
7266         This is fixed now. Thanks to Totte for helping with it.
7267
7268 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7269
7270         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7271
7272 2003-08-11  Martin Baulig  <martin@ximian.com>
7273
7274         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7275
7276 2003-08-06  Martin Baulig  <martin@ximian.com>
7277
7278         * mono-debug-debugger.c: Added support for static fields,
7279         properties and methods.
7280
7281 2003-08-06  Martin Baulig  <martin@ximian.com>
7282
7283         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7284         make this work for applications with multiple application domains.
7285
7286 2003-08-04  Martin Baulig  <martin@ximian.com>
7287
7288         * mono-debug-debugger.c: Completely reworked the type support; the
7289         most important thing is that we're now just using one single
7290         `MonoType' instance per type.
7291
7292 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7293
7294         * mono-endian.h, mono-endian.c, icall.c: Added icall
7295         ves_icall_System_Double_AssertEndianity to assert double word endianity
7296         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7297
7298 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7299
7300         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7301         support, icalls and fixes.
7302
7303 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7304
7305         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7306         classes that are a punctuation character in .NET is not the same a
7307         g_unichar_ispunct.
7308
7309 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7310
7311         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7312
7313 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7314
7315         * icall.c: Add new MemCopy internalcall.
7316         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7317         Simplified code; It is not necessary to handle all the cases here,
7318         as the C# code takes care of it.  Only handle the case of the name
7319         resource embedded into the assembly.
7320
7321         Changed signature to return the data pointer and the size of the
7322         data. 
7323
7324 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7325
7326         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7327         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7328
7329 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7330
7331         * socket-io.c: ignore EINTR error in select.
7332
7333 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7334
7335         * class.h, class.c: removed unused subclasses field in MonoClass.
7336
7337 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7338
7339         * icall.c: improve fix of get_base_definition(). If the parent class
7340           doesn't have the mehod, look at the parent of the parent.
7341         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7342           to check if a parameter is an in or out parameter
7343           (PARAM_ATTRIBUTE_IN is not set by default).
7344           mono_method_return_message_restore(): Use mono_class_value_size to
7345           get the size of a value type. mono_type_stack_size (parameterType)
7346           does not return the correct value if parameterType is byRef.
7347           mono_load_remote_field(), mono_load_remote_field_new(),
7348           mono_store_remote_field(), mono_store_remote_field_new():
7349           raise exception if the remote call returns an exception.
7350
7351 2003-07-28  Martin Baulig  <martin@ximian.com>
7352
7353         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7354         method.  This is a wrapper around mono_runtime_invoke() which
7355         boxes the instance object if neccessary.
7356
7357 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7358
7359         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7360         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7361
7362 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7363
7364         * icall.c: disable mcs bug workaround.
7365
7366 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7367
7368         * object.c (mono_runtime_class_init): Take the metadata_section
7369         mutex before obtaining the domain mutex.
7370
7371         * appdomain.h: Added definition of metadata_section mutex here. 
7372
7373         * object.c: define metadata_mutex here.
7374
7375 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7376
7377         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7378         fixed.
7379
7380 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7381
7382         * reflection.c: Fix bug #46669
7383
7384 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7385
7386         * exception.c:
7387         * exception.h:
7388         * icall.c:
7389         * object.h: fill in the type name for TypeLoadException.
7390
7391 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7392
7393         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7394         relationship between TypeBuilders while compiling corlib) and bug
7395         45993 (Array types returned from the runtime while compiling
7396         corlib were from the loaded corlib).
7397
7398 2003-07-22  Martin Baulig  <martin@ximian.com>
7399
7400         * mono-debug-debugger.c: Reworked the type support a bit more;
7401         distinguish between types and classes.
7402
7403 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7404
7405         * icall.c: add IsArrayImpl icall.
7406
7407 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7408
7409         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7410         initializing real_size only once. Also fix bug #46602.
7411
7412 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7413
7414         * object.c: Renamed mono_metadata_section to metadata_section.
7415
7416 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7417
7418         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7419           empty array if the type is an array. Fixed.
7420           ves_icall_MonoMethod_get_base_definition: if the base method
7421           is abstract, get the MethodInfo from the list of methods of
7422           the class.
7423         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7424           and it was 1-based. Fixed in mono_param_get_objects.
7425
7426 2003-07-20  Martin Baulig  <martin@ximian.com>
7427
7428         * mono-debug.h: Set version number to 31.
7429         (mono_debug_init): Added `MonoDomain *' argument.
7430
7431         * mono-debug-debugger.c: Reworked the type support; explicitly
7432         tell the debugger about builtin types; pass the `klass' address to
7433         the debugger.
7434
7435 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7436
7437         * image.c: Allow new metadata tables to be loaded without a
7438         warning. Also update the warning message to give the new constant value.
7439                 
7440 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7441
7442         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7443         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7444         array type representation changes.
7445
7446 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7447
7448         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7449         on Environment.Exit () call.
7450
7451 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7452
7453         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7454         requires a matching corlib.
7455
7456 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7457
7458         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7459           Committed again without the CRs.
7460         
7461 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7462
7463         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7464           getting it from the "this" socket instance. Did not work
7465           if the socket is a subclass of Socket.
7466           Also fixed bug #35371.
7467
7468 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7469
7470         * metadata.c: fixed size for TypedByRef.
7471         * loader.c: when searching for a method, consider the vararg amrker.
7472         * unicode.c, decimal.c: constify some arrays.
7473
7474 2003-07-15  Dick Porter  <dick@ximian.com>
7475
7476         * socket-io.c: Fixed compilation for gcc < 3.2.
7477
7478         Fixed compilation for machines that don't have AF_INET6 (thanks to
7479         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7480
7481         Fixed compile warnings.
7482         
7483         Fixed formatting and line endings.
7484
7485 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7486
7487         * socket-io.h:
7488         * socket-io.c: Added IPv6 support.
7489
7490 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7491
7492         * class.c (mono_class_is_assignable_from): New function to implement
7493         the is_assignable_from logic. Used by mono_object_isinst, 
7494         Type::IsAssignableFrom () and the interpreter.
7495
7496         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7497         Object, even interfaces.
7498         
7499         * object.c (mono_object_isinst): Implement in terms of 
7500         is_assignable_from.
7501
7502         * icall.c (ves_icall_type_is_assignable_from): New icall.
7503
7504 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7505
7506         * domain.c (foreach_domain): fix compiler warning.
7507
7508 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7509
7510         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7511         not available on all plattforms
7512
7513 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7514
7515         * image.h image.c: Store the metadata version string in MonoImage.
7516         * icall.c: New icall to retrieve the image version.
7517         * reflection.c (create_dynamic_image): Fill in the image version field
7518         * reflection.c (build_compressed_metadata): Use the image version
7519         from the image structure.
7520
7521 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7522
7523         * appdomain.c: modified comment.
7524         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7525         That will be its last iteration when mono_gc_cleanup is called from
7526         mono_runtime_cleanup and before the domain is unloaded.
7527
7528         Fixes bug #45962.
7529
7530 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7531
7532         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7533         attributes.
7534
7535 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7536
7537         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7538         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7539         Bernie Solomon <bernard@ugsolutions.com>.
7540
7541 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7542
7543         * object.c, object.h: provide mono_object_new_fast() for faster
7544         allocation in some special cases.
7545
7546 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7547
7548         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7549         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7550
7551 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7552
7553         * threadpool.c: fix leaks.
7554
7555 2003-07-01  Dick Porter  <dick@ximian.com>
7556
7557         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7558         using MonoGHashTables.  Fixes threadpool bug posted to list.
7559
7560 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7561
7562         * image.h, image.c: added support to load an assembly from a byte array.
7563         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7564         assembly bundle support.
7565
7566 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7567
7568         * threadpool.c (mono_thread_pool_add): keep a reference to the
7569         AsyncResult to prevent GC
7570
7571 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7572
7573         * class.c: leak fix.
7574
7575 2003-06-25  Dick Porter  <dick@ximian.com>
7576
7577         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7578         for the async object, the WaitHandle object will close the handle.
7579         Fixes bug 45321.
7580
7581 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7582
7583         * class.c: in mono_array_class_get (), lookup from the hash with the
7584         same type we insert: this works around a bug in
7585         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7586         lluis. The real fix will have to wait for after the release.
7587
7588 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7589
7590         * icall.c: fix memory leak when getting type members.
7591
7592 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7593
7594         * reflection.c: added more pubtoken special cases.
7595
7596 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7597
7598         * class.c: handle field offset correctly when class size
7599         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7600
7601 2003-06-20  Martin Baulig  <martin@ximian.com>
7602
7603         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7604         *image' field.
7605
7606 2003-06-20  Martin Baulig  <martin@ximian.com>
7607
7608         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7609
7610 2003-06-20  Martin Baulig  <martin@ximian.com>
7611
7612         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7613         just distinguish between variables in registers and variables at
7614         an offset relative to a register.
7615
7616 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7617
7618         * icall.c: #ifdef out latest changes until mcs is fixed.
7619
7620 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7621
7622         * icall.c: return members in metadata order.
7623
7624 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7625
7626         * icall.c: avoid infinite loop in GetTimeZoneData.
7627
7628 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7629
7630         * icall.c: added Marshal.Prelink/All icalls.
7631
7632 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7633
7634         * object.c, object.h: fix warnings and do some overflow checking
7635         when creating arrays.
7636
7637 2003-06-17  Dick Porter  <dick@ximian.com>
7638
7639         * file-io.h:
7640         * file-io.c: File attributes need to be tweaked slightly when
7641         passed from the managed to the w32 world.
7642
7643 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7644         * profiler.h profiler-private.h profiler.c: Rework last patch
7645         based on suggestion by Paolo.
7646         
7647 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7648
7649         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7650         instruction level coverage data collection.
7651         * profiler.h profiler.c (: Added new callback function which can be
7652         used by the profiler to limit which functions should have coverage
7653         instrumentation.
7654         * profiler.c (mono_profiler_load): Call g_module_build_path to
7655         generate the file name of the profiler library.
7656
7657 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7658
7659         * profiler.c, profiler.h, profiler-private.h: added basic block 
7660         coverage profiling API.
7661
7662 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7663
7664         * reflection.c (mono_reflection_create_runtime_class): Add support
7665         for events in dynamically generated code.
7666
7667         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7668         not allocated.
7669
7670 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7671
7672         * icall.c: when getting timezone info, return reasonable values if we
7673         can't get the actual data.
7674
7675 2003-06-14  Dick Porter  <dick@ximian.com>
7676
7677         * threads.c (start_wrapper): Remove the reference to the thread
7678         object in the TLS data, so the thread object can be finalized.
7679         This won't be reached if the thread threw an uncaught exception,
7680         so those thread handles will stay referenced :-( (This is due to
7681         missing support for scanning thread-specific data in the Boehm GC
7682         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7683
7684 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7685
7686         * reflection.c: ensure streams and tables are first allocated with
7687         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7688
7689 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7690
7691         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7692
7693 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7694
7695         * reflection.c (mono_reflection_create_runtime_class): Add support for
7696         properties to dynamically created classes.
7697         * reflection.c: Fix a few places where non-MonoObjects were inserted
7698         into the tokens hashtable.
7699
7700 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7701
7702         * object.c: some support to handle out of memory exceptions.
7703
7704 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7705
7706         * marshal.c (mono_marshal_get_native_wrapper): support reference
7707         return types
7708
7709 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7710
7711         * object.h, object.c: more portability stuff from Bernie Solomon.
7712         Unexport mono_object_allocate(). Added mono_object_unbox ().
7713         Set exitcode when an unhandled exception is thrown.
7714
7715 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7716
7717         * marshal.c (mono_marshal_get_native_wrapper): use custom
7718         marshaler for return types.
7719
7720 2003-06-10  Dick Porter  <dick@ximian.com>
7721
7722         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7723         ip_mreq is available
7724
7725 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7726
7727         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7728         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7729         by Bernie Solomon <bernard@ugsolutions.com>.
7730
7731 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7732
7733         * gc.c (mono_gc_init): Avoid error message on shutdown when
7734         GC_DONT_GC=1 is used.
7735
7736         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7737         New icall to return the GUID of a module.
7738
7739 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7740
7741         * class.c: ensure instance size always includes the parent's size
7742         even whem class size is set explicitly (fixes bug#44294).
7743
7744 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7745
7746         * profiler.h, profiler.c: made the simple profiler thread-safe,
7747         get more accurate timing info. Allow the loading of an
7748         externally-developed profiler module.
7749
7750 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7751
7752         * marshal.c (mono_marshal_get_native_wrapper): improved
7753         class/byref arguments.
7754         (mono_marshal_get_native_wrapper): better string marshaling support.
7755
7756 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7757
7758         * class.c: ensure .pack and .size are handled correctly and
7759         simplified layout of static fields.
7760
7761 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7762
7763         * appdomain.c
7764         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7765
7766         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7767         current directory (fix bug 44008)
7768
7769 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7770
7771         * marshal.c (mono_marshal_get_native_wrapper): started support for
7772         custom marshalers.
7773         (mono_delegate_to_ftnptr): consider marshalling specifications
7774
7775 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7776
7777         * reflection.c, reflection.h: emit custom marshal info.
7778
7779 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7780
7781         * object.c: free the GError.
7782         * icall.c: added CloseEvent_internal.
7783         * threads.[ch]:
7784         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7785         call.
7786
7787 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7788
7789         * loader.c (mono_method_get_signature): Add support for dynamic
7790         assemblies.
7791
7792 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7793
7794         * reflection.c: fixed bug #43905.
7795
7796 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7797
7798         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7799         handling TypedReference and ArgIterator.
7800         * loader.c, loader.h: added function to get signature at call site.
7801
7802 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7803
7804         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7805         data readonly. Buglets and warning fixes. Some MethodSpec support.
7806
7807 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7808
7809         * class.h, class.c, object.c: remove relative numbering support.
7810
7811 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7812
7813         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7814         free the string, until we get a chance to fix Gtk#
7815
7816 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7817
7818         * marshal.c: revert last patch.
7819
7820 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7821
7822         * icall.c: updates for new mono_class_vtable() not calling
7823         the type constructor anymore.
7824
7825 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7826
7827         * object.h, object.c: separate vtable creation from type
7828         initialization. Make running the .cctor thread safe.
7829
7830 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7831
7832         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7833
7834 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7835
7836         * loader.c (mono_get_method): consider calling convention
7837
7838 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7839
7840         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7841         to return the invisible global type for a module.
7842
7843         * reflection.c (mono_image_build_metadata): Emit global fields too.
7844
7845 2003-05-20  Peter Williams  <peterw@ximian.com>
7846
7847         * loader.c (mono_lookup_internal_call): Add a few newlines.
7848
7849 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7850
7851         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7852         literal strings.
7853
7854         * appdomain.c (set_domain_search_path): Recalculate search path when
7855         AppDomainSetup.PrivateBinPath changes.
7856
7857         * object.c (mono_class_compute_gc_descriptor): It turns out some
7858         parts of the class libs (like System.Thread) holds pointers to
7859         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7860         to treat native int a pointer type here.
7861         
7862 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7863
7864         * appdomain.h, domain.c: add hashtable for jump target resolution.
7865
7866 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7867
7868         * reflection.h reflection.c icall.c: Added new icalls 
7869         GetManifestResourceInfoInternal, GetModulesInternal and support
7870         infrastructure.
7871
7872 2003-05-16  Dick Porter  <dick@ximian.com>
7873
7874         * icall.c:
7875         * file-io.h:
7876         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7877
7878 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7879
7880         * object.c: mono_store_remote_field: little fix to previous patch.
7881
7882 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7883
7884         * class.c: add constructors to array classes.
7885         * icall.c: special case array construction for InternalInvoke (),
7886
7887 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7888
7889         * class.h class.c reflection.c object.c: Added support for field
7890         defaults in dynamically generated classes.
7891
7892 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7893
7894         * reflection.c: properly encode charset for ddlimport.
7895
7896 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7897
7898         * threads.c: allow compiling without GC.
7899
7900 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7901
7902         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7903         handling of thread static data.
7904
7905 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7906
7907         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7908
7909 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7910
7911         * class.c (mono_array_class_get): always set the serializable flags
7912         (mono_array_class_get): always set the SEALED attribute for array types
7913
7914 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7915
7916         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7917         attributes (fix for bug 42021).
7918
7919 2003-05-12  Dick Porter  <dick@ximian.com>
7920
7921         * gc.c: Don't run finalizers when the finalizer thread is
7922         finishing up, because the default domain has already been
7923         destroyed.
7924
7925 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7926
7927         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7928         value is null, we should throw an exception.   This is slightly
7929         different than the other conventions used for the constructor.
7930
7931 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7932
7933         * socket-io.c: fixed windows build.
7934
7935 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7936
7937         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7938
7939 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7940
7941         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7942         compilers.
7943
7944 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7945
7946         * class.c (mono_class_layout_fields): Add experimental GC aware
7947         auto layout facility. Requires class library changes to work correctly.
7948
7949         (mono_class_setup_vtable): Avoid overriding explicit interface
7950         method implementations. Fixes iface3.exe test.
7951
7952         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7953         object reference.
7954         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7955         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7956
7957         * metadata.h: Add new type classification macro which determines
7958         whenever the type holds an object reference.
7959
7960 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7961
7962         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7963
7964 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7965
7966         * gc.c (finalizer_thread): Work around a GC bug.
7967
7968 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7969
7970         * marshal.c (emit_struct_conv): allow unions
7971
7972         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7973
7974 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7975
7976         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7977
7978 2003-05-06  Martin Baulig  <martin@ximian.com>
7979
7980         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7981
7982 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7983
7984         * socket-io.c:
7985         (Select_internal): allow NULLs, don't create arrays if not needed.
7986         Coupled with Socket.cs changes.
7987
7988         * threadpool.c:
7989         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7990         register a finalizer for it that will close the semaphore handle. This
7991         fixes the leak and make Lupus' test run with > 4080 loops.
7992
7993 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7994
7995         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7996         Jerome Laban (bug #42287)
7997
7998 2003-05-02  Martin Baulig  <martin@ximian.com>
7999
8000         * debug-mono-symfile.h
8001         (MonoSymbolFile): Moved declaration into mono-debug.h.
8002         (MonoDebugMethodJitInfo): Likewise.
8003         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
8004         argument.
8005         (_mono_debug_address_from_il_offset): Take a
8006         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
8007
8008         * mono-debug.h
8009         (MonoDebugDomainData): New struct.
8010         (mono_debug_get_domain_data): New function.
8011         (mono_debug_add_method): Take an additional `MonoDomain *'
8012         argument.
8013         (mono_debug_source_location_from_address): Likewise.
8014         (mono_debug_il_offset_from_address): Likewise.
8015         (mono_debug_address_from_il_offset): Likewise.
8016
8017 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
8018
8019         * reflection.c: one more check for null type in custom attrs.
8020
8021 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8022
8023         * reflection.c: avoid warning (comparison is always false due to limited
8024         range of data type).
8025
8026 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8027
8028         * icall.c: throw an exception in Type.GetField if the argument 'name'
8029         is NULL.
8030
8031 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
8032
8033         * reflection.c: fixed handling of enums in named arguments to custom
8034         attributes (bug #42123).
8035
8036 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
8037
8038         * reflection.c: use the right array element type and handle
8039         a null for a Type argument, too.
8040
8041 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
8042
8043         * reflection.c: handle arrays as arguments to custom attributes.
8044
8045 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
8046
8047         * reflection.c: handle a string value in a custom attr
8048         ctor that takes an object.
8049
8050 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
8051
8052         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
8053         (fix bug #42063)
8054
8055 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
8056
8057         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
8058
8059 2003-04-27  Martin Baulig  <martin@ximian.com>
8060
8061         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
8062         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
8063         MONO_DEBUGGER_EVENT_BREAKPOINT.
8064         (mono_breakpoint_trampoline_code): Removed.
8065         (mono_debugger_event_handler): The last argument is now a
8066         `guint32'.
8067         (mono_debugger_insert_breakpoint_full): Removed the
8068         `use_trampoline' argument.
8069         (mono_debugger_method_has_breakpoint): Likewise.
8070         (mono_debugger_trampoline_breakpoint_callback): Renamed to
8071         mono_debugger_breakpoint_callback(); take the method and
8072         breakpoint number as arguments.
8073
8074 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
8075
8076         * metadata.c: fix off by one when loading parameters attributes.
8077
8078 2003-04-24  Martin Baulig  <martin@ximian.com>
8079
8080         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
8081
8082 2003-04-24  Martin Baulig  <martin@ximian.com>
8083
8084         * mono-debug-debugger.c: Moved all code which interacts with the
8085         Mono Debugger here.
8086
8087         * debug-mono-symfile.c: This code now just deals with the symbol
8088         file itself, the debugger code is now in mono-debug-debugger.c.
8089
8090 2003-04-23  Martin Baulig  <martin@ximian.com>
8091
8092         * mono-debug.c (mono_debug_source_location_from_il_offset):
8093         New method; like mono_debug_source_location_from_address(), but
8094         takes an IL offset instead of a machine address.
8095
8096 2003-04-23  Martin Baulig  <martin@ximian.com>
8097
8098         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
8099         `line' field; this is now computed by the debugger.
8100
8101 2003-04-23  Martin Baulig  <martin@ximian.com>
8102
8103         * mono-debug.[ch]: New files.  This is the new debugging interface.
8104
8105         * mono-debug-debugger.[ch]: New files.  Moved all code which
8106         interacts with the Mono Debugger here.
8107
8108 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
8109
8110         * domain.c (mono_init): initialize mono_defaults.monitor_class
8111
8112 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
8113
8114         * reflection.c (method_encode_code): Add a spicy exception to help
8115         future compiler authors.
8116
8117 2003-04-21  Martin Baulig  <martin@ximian.com>
8118
8119         * icall.c
8120         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8121         Make this work with relative pathnames; g_filename_to_uri() needs
8122         an absolute filename.
8123
8124 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
8125
8126         * icall.c: Track name changes in Object and ValueType.
8127
8128 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
8129
8130         * metadata.c (mono_type_stack_size): size should be a multiple of
8131         sizeof (gpointer)
8132
8133 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8134
8135         * gc.c:
8136         (internal_domain_finalize): moved into mono_domain_finalize. No need
8137         to create another thread because the finalizers will be run in the
8138         finalizer thread.
8139         
8140         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
8141         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
8142         to be run (MS does this too).
8143
8144 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
8145
8146         * object.c (mono_class_compute_gc_descriptor): Update comment.
8147
8148         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
8149
8150         * image.h: Add synchronized wrapper cache.
8151
8152         * image.c (do_mono_image_open): Initialize cache.
8153
8154         * reflection.c (create_dynamic_mono_image): Initialize cache.
8155
8156 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8157
8158         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
8159         ves_icall_System_Buffer_ByteLengthInternal.
8160
8161 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
8162
8163         * reflection.c: setup klass->nested_in earlier. Allow
8164         a dash in the assembly name.
8165
8166 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
8167
8168         * metadata.c (mono_type_to_unmanaged): dont access
8169         type->data.klass for MONO_TYPE_OBJECT
8170         (mono_type_to_unmanaged): consider System.Delegate class
8171
8172 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
8173
8174         * class.c: just setup supertypes in the proper place instead of
8175         initializing the full element class for arrays.
8176
8177 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
8178
8179         * class.c: ensure the element class of arrays is initialized.
8180         Setup the supertype info for array classes, too.
8181
8182 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
8183
8184         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
8185
8186 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8187
8188         * Makefile.am: re-added -m option when running cygpath. This way,
8189         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
8190         separator.
8191         * mono-config.c: same codepath for locating mono config file for WIN32
8192         and the rest.
8193         * assembly.c: if mono_assembly_setrootdir is called, don't override
8194         the value set.
8195
8196 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8197
8198         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8199         MONO_ASSEMBLIES variable.
8200
8201 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8202
8203         * icall.c: added Assembly::GetNamespaces() icall.
8204
8205 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8206
8207         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8208
8209 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
8210
8211         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8212         * object.c: fixed bug in the construction of vtable for proxies
8213
8214 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8215
8216         * object.c (mono_array_new): Mark mono_array_new as an icall.
8217
8218 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8219
8220         * class.c: fixed test for public method when overriding interfaces.
8221         Closes bug #40970.
8222
8223 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8224
8225         * appdomain.h, domain.c: added mono_domain_foreach() to
8226         be able to access the currently loaded appdomains.
8227         * object.c: make string interning work across sppdomains.
8228         Mark some functions for use as icalls.
8229
8230 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8231
8232         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8233
8234         * reflection.h reflection.c: Allocate long living data using 
8235         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8236
8237         * reflection.c: Double the allocation size in streams instead of
8238         increasing it, to prevent unneccesary copying on large assemblies.
8239         
8240         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8241         creation if the assembly does not have the Run flag set.
8242
8243 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8244
8245         * class.h: avoid the C++ keywords in header files (Jerome Laban
8246         spotted and fixed this).
8247
8248 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8249
8250         * object.c:
8251         (mono_unhandled_exception): fill in the arguments for the
8252         UnhandledException event. Only trigger that event for the default
8253         domain (as MS does).
8254
8255 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8256
8257         * object.c: Improve typed allocation stuff based on suggestions from
8258         Paolo. Also turn it on if the GC library supports it.
8259
8260 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8261
8262         * object.c object.h class.h: Added experimental typed allocation
8263         facility using the interfaces in gc_gcj.h.
8264
8265         * os/gc_wrapper.h: Added new include files.
8266         
8267 2003-04-03  Martin Baulig  <martin@ximian.com>
8268
8269         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8270         which is not yet enabled by default.
8271
8272         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8273         functions.
8274         (mono_gc_lock, mono_gc_unlock): New static functions.
8275
8276         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8277         functions; stop/start the world for the garbage collector.  This
8278         is using the windows API; we need to complete the SuspendThread()/
8279         ResumeThread() implementation in the io-layer to make this work on Unix.
8280         (mono_gc_push_all_stacks): New public function; tells the garbage
8281         collector about the stack pointers from all managed threads.
8282
8283 2003-04-03  Martin Baulig  <martin@ximian.com>
8284
8285         * object.h (MonoThread): Added `gpointer stack_ptr'.
8286
8287         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8288
8289 2003-04-03  Martin Baulig  <martin@ximian.com>
8290
8291         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8292
8293 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8294
8295         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8296         field.last.
8297
8298 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8299
8300         * loader.c (mono_lookup_internal_call): Report the corlib that is
8301         out of sync.
8302
8303 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8304
8305         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8306         System.DBNull (it's class not valuetype).
8307
8308 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8309
8310         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8311         if the array method was already assigned a token (fixes bug#40646).
8312
8313 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8314
8315         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8316         if no assembly is given.
8317
8318 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8319
8320         * metadata.h: Added the new tables.
8321
8322         * row-indexes.h: Added definitions for new tables.
8323
8324         * metadata.c: Add schemas for new tables, and add support for
8325         computing the sizes of them.
8326
8327         * class.c: Update for handling the new type cases.
8328
8329 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8330
8331         * metadata.h (MONO_TYPE_IS_VOID): new macro
8332
8333 2003-03-31  Martin Baulig  <martin@ximian.com>
8334
8335         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8336
8337         * threads.c (mono_thread_new_init): Call `thread_created' in the
8338         mono_thread_callbacks.
8339
8340 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8341
8342         * loader.h: added marshalbyrefobject_class to mono_defaults
8343         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8344         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8345           generation of output parameters.
8346           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8347         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8348           contextbound and the target object belongs to the context of the caller.
8349         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8350         * object.c: Implemented support for interfaces and abstract classes
8351           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8352           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8353
8354 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8355
8356         * class.h class.c (mono_class_is_subclass_of): New function.
8357         
8358         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8359         routines for most common case (calls from ArrayList::ToArray).
8360
8361         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8362         routine so programs which call Environment::Exit() can be profiled.
8363
8364         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8365         Added MONO_ARCH_SAVE_REGS.
8366
8367         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8368
8369 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8370
8371         * blob.h: Add a couple of new MonoType types definitions.
8372
8373         * tabledefs.h: Add a couple of new call convs.
8374
8375 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8376
8377         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8378         the layout of the class.
8379
8380         * reflection.c (alloc_table): double the size on overflow to avoid
8381         unnecessary copying.
8382
8383         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8384         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8385         null so it can be garbage collected.
8386         
8387 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8388
8389         * reflection.c (mono_reflection_get_type): Return the resolved type
8390         only if it is in the assembly we searched.
8391
8392         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8393
8394         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8395         method.
8396
8397 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8398
8399         * appdomain.c:
8400         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8401         the right one is 'file:///blah', but MS allows it.
8402         * assembly.c:
8403         (mono_assembly_open): allow 'file://blah'
8404
8405         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8406
8407 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8408
8409         * socket-io.c: fixes bug #40310.
8410
8411 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8412
8413         * reflection.c (mono_reflection_parse_type): handle deeply nested
8414         types correctly.
8415
8416         * reflection.c (mono_image_create_token): Use unique token values
8417         since they will be put into a hash table.
8418
8419         * class.c (mono_class_setup_vtable): If a method occurs in more than
8420         one place in the vtable, and it gets overriden, then change the
8421         other occurances too.
8422
8423         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8424         object as return type.
8425
8426 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8427
8428         * icall.c: Deleted "ToString" implementation for double and float
8429         because they are full implemented in managed code.
8430
8431 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8432
8433         * reflection.c, reflection.h: implemented and exported functions
8434         to retrieve info about custom attributes.
8435
8436 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8437
8438         * appdomain.c: moved Uri handling to assembly.c
8439         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8440         work when using a file Uri in *nix and windows.
8441
8442         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8443         GetReferencedAssemblies.
8444
8445 2003-03-18  Dick Porter  <dick@ximian.com>
8446
8447         * icall.c: Rename a couple of internal calls
8448
8449         * threads.c: Set the thread state to Stopped when a thread exits.
8450         Fixes bug 39377.
8451
8452 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8453
8454         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8455         New icall.
8456
8457         * object.c (mono_class_vtable): fix warning.
8458
8459 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8460
8461         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8462
8463         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8464         memory.
8465         (method_encode_clauses): Create exception info structures in the right
8466         order.
8467         (mono_reflection_setup_internal_class): Initialize supertypes field.
8468
8469         * class.c object.c: Handle interfaces which implement other interfaces 
8470         correctly.
8471
8472         * class.h class.c: Move the supertypes array initialization code into 
8473         a separate function so it can be used for dynamic types too. Also call
8474         it earlier, in mono_class_init(), since it can be used before the
8475         type is initialized.
8476
8477 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8478
8479         * Makefile.am:
8480         * assembly.c:
8481         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8482
8483         * appdomain.c:
8484         * appdomain.h:
8485         * marshal.c:
8486         * object.c: remove warnings.
8487
8488 2003-03-13  Martin Baulig  <martin@ximian.com>
8489
8490         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8491         (MonoDebugLexicalBlockEntry): New types.
8492
8493         * debug-mono-symfile.c
8494         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8495
8496 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8497
8498         * process.c: ret can be any non-zero value accroding to MS doc.
8499
8500 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8501
8502         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8503         fixing a warning for a miss-used prototype, would have cause
8504         random memory corruption.
8505
8506 2003-03-07  Martin Baulig  <martin@ximian.com>
8507
8508         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8509         getting really annoying ....
8510
8511 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8512
8513         * reflection.c (fixup_method): added support for array methods.
8514
8515 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8516
8517         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8518         (pointed out by Michael Adams).
8519
8520 2003-03-04  Dick Porter  <dick@ximian.com>
8521
8522         * icall.c: Temporarily reverted the Double and Single ToString()
8523         change, because it broke nunit.
8524
8525 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8526
8527         * object.h, threads.h: make include files compatible with C++
8528         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8529
8530 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8531
8532         * icall.c: Erased ToString helper functions for Double and Single.
8533         Now, that implementations ar all in managed code (Double and Single
8534         Formatters).
8535
8536 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8537
8538         * appdomain.c: Added method for initializing the default context of
8539         a domain. Added internal call for getting the default context.
8540         * appdomain.h: Added context variable in MonoDomain struct.
8541         * domain.c: mono_domain_set also sets the default context of the domain
8542         * icall.c: Mapped internal method InternalGetDefaultContext.
8543         * object.c: mono_object_get_virtual_method returns always a remoting
8544         wrapper if the object is a transparent proxy.
8545         mono_runtime_invoke_array: when creating an object by calling the
8546         constructor, if the created object is a proxy, then the constructor should
8547         be called using the a remoting wrapper.
8548
8549 2003-03-03  Dick Porter  <dick@ximian.com>
8550
8551         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8552         variable so it compiles on solaris.  Problem spotted by
8553         Christopher Taylor <ct@cs.clemson.edu>
8554
8555 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8556
8557         * appdomain.c:
8558         (get_info_from_assembly_name): don't leak value.
8559
8560         * icall.c:
8561         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8562         result.
8563
8564 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8565
8566         * assembly.c: export mono_image_load_references ().
8567         * class.c: handle function pointers. mono_class_from_name() now
8568         supports nested type names directly.
8569
8570 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8571
8572         * reflection.h reflection.c: Encode already created dynamic methods 
8573         and fields correctly as a DEF instead of a REF.
8574
8575         * reflection.c: Get rid of the force_ref argument to 
8576         mono_image_typedef_or_ref since it was wrong in the first place.
8577
8578         * string-icalls.c: add error checking to string constructors according
8579         to the MSDN docs.
8580
8581         * reflection.c: Emit types in the order their TypeBuilders were 
8582         created. Previously, a new table index was assigned to each type before
8583         the tables were emitted. This was wrong because the signature blob
8584         might already refer to a type by its original table index.
8585
8586 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8587
8588         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8589         change.
8590         
8591 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8592
8593         * Makefile.am: make assemblies dir have \ instead of / on windows.
8594
8595 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8596
8597         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8598         iterate over the NESTEDCLASS table using a linear search since the
8599         table is not guaranteed to be sorted by the secondary key.
8600
8601         * class.c (mono_class_create_from_typedef): fixed up call to
8602         mono_metadata_nesting_typedef.
8603         
8604 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8605
8606         * marshal.c (mono_string_to_byvalstr): clear the memory as
8607         suggested by Jerome Laban <jlaban@wanadoo.fr>
8608
8609 2003-02-26  Dick Porter  <dick@ximian.com>
8610
8611         * process.c: Cope with padding in .rsrc blocks
8612
8613 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8614
8615         * metadata.h: reverted the filter_len change, it breaks reflection
8616         
8617 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8618
8619         * metadata.h: added a new field to store the filter_len
8620         
8621
8622 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8623
8624         * reflection.c: handle custom attributes for types and members
8625         created with Reflection.Emit (bug#38422).
8626
8627 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8628
8629         * reflection.c: define RTSpecialName automatically for constructors for
8630         compatibility with MS.NET.
8631
8632         * reflection.c (mono_reflection_create_runtime_class): initialize
8633         nested_in field of dynamically created classes.
8634
8635 2003-02-22  Martin Baulig  <martin@ximian.com>
8636
8637         * debug-mono-symfile.h: Incremented version number.
8638
8639 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8640
8641         * object.h icall.c process.c: fix warnings.
8642
8643 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8644
8645         * appdomain.h appdomain.c:
8646         (mono_domain_try_type_resolve): split the 
8647         name_or_tb argument into a name and a tb argument.
8648         (mono_domain_has_type_resolve): new function to check whenever the
8649         application has registered a TypeResolve event handler.
8650         
8651         * icall.c reflection.h reflection.c: move the type resolve logic into
8652         mono_reflection_get_type () so it will be invoked when 
8653         Assembly::GetType () is called.
8654
8655         * reflection.c:
8656         (mono_reflection_get_type): renamed to get_type_internal.
8657         (mono_reflection_get_type): fixed type name generation so it works 
8658         for nested types too.
8659         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8660         costly type name generation if there is no resolve event handler.
8661
8662 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8663
8664         * class.c, image.c: load exported types from file references.
8665
8666 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8667
8668         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8669           used to cache the managed methods used to create proxies and make 
8670           remote invocation of methods.
8671         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8672           to be remotely created.
8673         * object.c: Modified the method mono_class_vtable(). It now initializes 
8674           the remote flag of the vtable. Modified mono_object_new_specific(), 
8675           so now it checks the remote flag.
8676         * icall.c: Added a couple of internal methods, one for enabling instance 
8677           creation interception for a type, and one for creating objects bypassing
8678           the remote check.
8679
8680 2003-02-18  Martin Baulig  <martin@ximian.com>
8681
8682         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8683         New interncall to get a method's metadata token.
8684
8685         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8686         New interncall for the debugger.
8687
8688 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8689
8690         * class.c (mono_class_setup_vtable): allocate supertype array
8691
8692 2003-02-18  Martin Baulig  <martin@ximian.com>
8693
8694         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8695
8696 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8697
8698         * reflection.c:
8699         (assembly_name_to_aname): jump over unknown properties (i've found
8700         something like: 'type, assembly, version=xxx, custom=null, public...',
8701         so now will ignore custom=null and still get the rest of the values).
8702
8703 2003-02-17  Dick Porter  <dick@ximian.com>
8704
8705         * threads.c: Have Thread.Start() wait for a semaphore to signal
8706         that the thread has set up all its local data.  This fixes bug
8707         34323, where Abort() raced the new thread's TLS data.
8708
8709         Also removes the handle_store() call from start_wrapper, because
8710         threads are now always created suspended and there is no longer a
8711         race between the parent and child threads to store the info.
8712
8713 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8714
8715         * image.c: explain the #- heap issue in a message, hopefully
8716         avoiding FAQs on mono-list.
8717
8718 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8719
8720         * icall.c:
8721         (GetEntryAssembly): if the domain has not invoked
8722         AppDomain.ExecuteAssembly yet, return the assembly of the default
8723         AppDomain.
8724
8725 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8726
8727         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8728
8729 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8730
8731         * metadata.c, reflection.c: simple speedup to type hash
8732         and equals code.
8733
8734 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8735
8736         * image.c, image.h, class.c, assembly.c: move module loading
8737         to MonoImage. When loading metadata, consider alignemnet from
8738         the start of metadata, not from the metadata address in memory.
8739
8740 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8741
8742         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8743         AssemblyBuilder objects. Factored out custom attribute creation into
8744         a separate function.
8745         (create_custom_attr): new function to create custom attributes.
8746
8747 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8748
8749         * Makefile.am: Got tired of typing the full pathname to pedump.
8750         Until there is another option, am installing this.
8751
8752 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8753
8754         * class.c (class_compute_field_layout): always set field->parent 
8755         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8756
8757 2003-02-11  Dick Porter  <dick@ximian.com>
8758
8759         * threads-types.h:
8760         * monitor.c: Rewrote Monitor, making lock much faster and
8761         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8762         creates them as needed.
8763
8764         * exception.c: Added SynchronizationLockException
8765
8766         * threads.c: Deleted old Monitor implementation.  The new one is
8767         in a new file.
8768
8769 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8770
8771         * class.c: handled TypedReference type code. Set the correct size for
8772         class data. Setup interface_offsets for interface classes, too.
8773
8774 2003-02-09  Martin Baulig  <martin@ximian.com>
8775
8776         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8777
8778 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8779
8780         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8781         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8782         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8783         * verify.c: check for code that runs after the end of the method.
8784
8785 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8786
8787         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8788         "System.Math::Round2".
8789         * sysmath.h: Added Floor, Round and Round2 definitions.
8790         * sysmath.c: Modified certain functions that were not 100% compliant
8791         with MS.NET (math precision) and added the implementation of Floor,
8792         Round and Round2.
8793
8794 2003-02-07  Martin Baulig  <martin@ximian.com>
8795
8796         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8797
8798 2003-02-07  Martin Baulig  <martin@ximian.com>
8799
8800         * debug-mono-symfile.c: Reflected latest symwriter changes.
8801         (mono_debug_create_mono_symbol_file): Removed.
8802         (mono_debug_open_mono_symbol_file): Take an argument which
8803         specifies whether to create a dynamic symbol file.
8804
8805 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8806
8807         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8808
8809 2003-02-05  Martin Baulig  <martin@ximian.com>
8810
8811         * reflection.c (mono_image_build_metadata): Make this public,
8812         protect it against being called multiple times, don't create
8813         resources and don't build the compressed metadata here.
8814         (mono_image_create_pefile): Do this here.
8815
8816         * icall.c
8817         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8818
8819 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8820
8821         * socket-io.c: fixed bug #36322.
8822
8823 2003-02-06  Piers Haken <piersh@friskit.com>
8824
8825         * appdomain.[ch]:
8826         * class.h:
8827         * debug-mono-symfile.c:
8828         * icall.c:
8829         * loader.c:
8830         * mono-config.c:
8831         * monosn.c:
8832         * reflection.c:
8833         * socket-io.c: warning cleanups
8834
8835 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8836
8837         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8838         function. works like remoting invoke, but does a check for the Proxy first.
8839
8840 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8841
8842         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8843
8844 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8845
8846         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8847         array of pointers.
8848         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8849         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8850
8851         * object.c (mono_store_remote_field_new): used by the new jit
8852         instead of mono_store_remote_field
8853         (mono_load_remote_field_new): used by the new jit
8854         instead of mono_load_remote_field
8855
8856 2003-02-05  Patrik Torstensson
8857
8858         * appdomain.c: changed unload to take the domain id instead
8859         of domain
8860         
8861         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8862
8863
8864 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8865
8866         * appdomain.c: don't look for assemblies in ApplicationBase if
8867         PrivateBinPathProbe is set.
8868
8869 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8870
8871         * object.c: make the first argument in main_args contain the absolute
8872         path to the assembly. Fixes bug #37511.
8873
8874 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8875
8876         * icall.c: get correct UTC offset for countries not using daylight
8877         time saving. Fixes bug #30030.
8878
8879 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8880
8881         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8882         and 1 are the family).
8883
8884 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8885
8886         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8887
8888         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8889
8890 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8891
8892         * reflection.c: added support for SignatureHelper tokens, which is
8893         needed by the Calli opcode.
8894
8895         * reflection.h: track changes to SignatureHelper class.
8896
8897         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8898
8899 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8900
8901         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8902
8903 2003-02-03  Patrik Torstensson
8904         * appdomain.[c|h], domain.c : 
8905          - Added support for getting a domain via domain id
8906          - Support for setting and getting domain from System.AppDomain 
8907            (used in cross appdomain channel)
8908          - Added support for get/set for a MonoAppContext on a thread 
8909            (Context class in System.Runtime.Remoting.Contexts),
8910          - Removed hack in Get/SetData and ExecuteAssembly.
8911         
8912         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8913         the managed world to get control when a proxy is created.
8914
8915         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8916         
8917 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8918
8919         * icall.c
8920         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8921         Populate the codebase field as well.
8922
8923 2003-02-02  Martin Baulig  <martin@ximian.com>
8924
8925         * debug-mono-symfile.c
8926         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8927         (mono_debug_symfile_add_method): Allow interncalls.
8928
8929 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8930
8931         * icall.c: throw parse exception if strtod fails or the string is empty.
8932
8933 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8934
8935         * marshal.c: handle object type separately from defined
8936         class types.
8937
8938 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8939
8940         * marshal.c: handle NATIVE_LPSTR for strings when it's
8941         explicitly specified.
8942
8943 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8944
8945         * reflection.c, reflection.h, icall.c: setup the reflection
8946         handle cache for ModuleBuilders and AssemblyBuilders.
8947
8948 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8949
8950         * reflection.c (reflection_methodbuilder_to_mono_method): set
8951         pinvoke flag
8952
8953 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8954
8955         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8956
8957 2003-01-29  Dick Porter  <dick@ximian.com>
8958
8959         * threads.c: No need for the fake_thread kludge now that Thread
8960         doesn't run a class constructor
8961         
8962 2003-01-29  Dick Porter  <dick@ximian.com>
8963
8964         * threads.c: Use g_direct_hash instead of the rather bogus
8965         g_int_hash
8966
8967 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8968
8969         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8970         (fix pinvoke12.exe)
8971         (mono_marshal_get_struct_to_ptr): generate valid IL code
8972         (mono_marshal_get_ptr_to_struct): generate valid IL code
8973         (*): correctly set sig->pinvoke, we need to memdup the signature
8974         to do that
8975
8976 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8977
8978         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8979         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8980
8981 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8982
8983         * profiler.c: provide more callers information.
8984
8985 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8986
8987         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8988
8989         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8990
8991         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8992
8993 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8994
8995         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8996         exception instead of going into an infinite loop on dates which it 
8997         can't yet handle.
8998
8999         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
9000         out-of-range exception if needed.
9001
9002         * class.c (mono_class_setup_vtable): allow a virtual method to provide
9003         an implementation for an interface method and to override an inherited
9004         method at the same time. 
9005         Imagine a scenario when a virtual method is used to override a
9006         virtual abstract method in a parent class, and this same method 
9007         provides an implementation for an method inherited from an interface. 
9008         In this case, the interface resolution code will set im->slot, which 
9009         means that the virtual method override pass will skip this method 
9010         which means a pointer to the abstract method inherited from the parent
9011         will remain in the vtable of this non-abstract class.
9012
9013         * class.c: (mono_class_setup_vtable): continue search for a real 
9014         method if only an abstract method is found.     
9015
9016 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
9017
9018         * reflection.c: add size to encoding for ByValStr and ByValArray
9019         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
9020
9021 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9022
9023         * class.c (mono_class_setup_vtable): pass the override info as an
9024         argument.
9025
9026         * class.c (mono_class_setup_vtable): set the slot of overriding methods
9027         correctly.
9028         
9029         * reflection.c (ensure_runtime_vtable); add support for method 
9030         overrides.
9031         
9032 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9033
9034         * reflection.c (resolution_scope_from_image): Hack to work to work with
9035         dynamic assemblies.
9036
9037         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
9038         added a 'force_ref' argument to force this function to allways return 
9039         a TypeRef. This is needed by mono_image_get_memberref_token ().
9040         
9041 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9042
9043         * reflection.c (mono_image_get_type_info): interfaces really don't have
9044         a parent.
9045
9046         * reflection.c (mono_image_basic_init): fill out missing fields of
9047         image structure.
9048
9049         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
9050         dynamic assemblies. This is required so dynamic assemblies show up in
9051         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
9052         Type::GetType() etc. This is consistent with MS behaviour.
9053
9054         * image.c image.h reflection.c: add newly created classes to the name 
9055         cache so mono_class_get () will find them.      
9056
9057 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9058
9059         First part of changes to get IKVM.NET running under mono.
9060         
9061         * appdomain.h, appdomain.c: added new function 
9062         mono_domain_try_type_resolve() which will emit TypeResolve events. 
9063         This function will call AppDomain::DoTypeResolve to do the actual work.
9064
9065         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
9066         moved existing code dealing with dynamic tokens to a new function 
9067         called mono_reflection_lookup_dynamic_token (). This function will 
9068         raise TypeResolve events when appropriate. Since reflection.c is not 
9069         part of libmetadata, a new hook function called 
9070         mono_lookup_dynamic_token() is added to class.c which will call this.
9071
9072         * assembly.h assembly.c: make the invoke_load_hook function public,
9073         so it can be called for dynamic assemblies.
9074
9075         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
9076
9077         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
9078         type isn't found.
9079
9080         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
9081         MonoGHashTable, since it contains pointers to objects which the GC 
9082         needs to track.
9083
9084         * assembly.c (search_loaded): remove unused variable.
9085         
9086 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
9087
9088         * object.c: fixed issue exposed by gcc-generated IL programs
9089         that use RVA data for pointers.
9090
9091 2003-01-25  Martin Baulig  <martin@ximian.com>
9092
9093         * threads.c (start_wrapper): Moved the initialization of
9094         `start_func' above the mono_new_thread_init() call to which we
9095         pass it as argument.
9096
9097 2003-01-24  Martin Baulig  <martin@ximian.com>
9098
9099         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
9100         the MonoThread pointer.
9101
9102 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
9103
9104         * icall.c: Rename `PowImpl' to Pow.
9105
9106 2003-01-23  Dick Porter  <dick@ximian.com>
9107
9108         * threads.c (start_wrapper): Create a Thread object if needed, so
9109         the Main() thread can do the class initialisation in a subthread
9110         that has been set up to allow managed code execution.
9111
9112         Pass the thread ID instead of the MonoThread pointer to the thread
9113         start and attach callbacks.  This change is required, because the
9114         jit thread start callback must be called _before_ the Thread
9115         object can be created.
9116         
9117         (mono_thread_init): Removed much object creation code that is no
9118         longer needed.  No managed code is called from here now.
9119
9120         * object.c (mono_runtime_exec_managed_code): Create a subthread
9121         for Main, and call back to the runtime to use it.
9122         Set the exit code when Main exits.
9123
9124         * gc.c: Make sure domain finalisation happens in a subthread.
9125         Re-enable threaded GC, fixing bug 31333 (again).
9126
9127         * environment.c: System.Environment internall calls (so far just
9128         ExitCode is here, the others are still in icall.c)
9129
9130         * appdomain.c (mono_runtime_cleanup): All threads running managed
9131         code should have finished before mono_runtime_cleanup() is
9132         reached, so no need to clean up threads.
9133
9134 2003-01-22  Martin Baulig  <martin@ximian.com>
9135
9136         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
9137         `gpointer func' arguments.      
9138         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
9139         but added `MonoThread *thread' argument.
9140         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
9141
9142         * threads.c (mono_new_thread_init): Added `gpointer func' argument
9143         and pass it to the mono_thread_start_cb callback.
9144         (mono_install_thread_callbacks): New public function to install a
9145         set of callbacks which are set by the debugger.
9146         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
9147
9148 2003-01-22  Martin Baulig  <martin@ximian.com>
9149
9150         * Makefile.am: Install debug-mono-symfile.h.
9151
9152 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
9153
9154         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
9155
9156 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
9157
9158         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
9159         * class.c (mono_ptr_class_get): correctly set access levels of pointers
9160         (mono_array_class_get): correctly set access levels of arrays
9161
9162 2003-01-20      Patrik Torstensson
9163         * image.h (MonoAssemblyName): changed major, minor, build, revision
9164         from signed to unsigned.
9165
9166 2003-01-20  sean kasun <skasun@azstarnet.com>
9167
9168         * reflection.c (load_cattr_value): Now this handles
9169         MONO_TYPE_SZARRAY.  Fixes bug #35629
9170
9171 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
9172
9173         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
9174         integer value
9175
9176 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9177
9178         * decimal.c: fixed bug #26056.
9179
9180 2003-01-17  Martin Baulig  <martin@ximian.com>
9181
9182         * gc.c: Raise an ExecutionEngineException instead of using g_error().
9183
9184 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9185
9186         * exception.[ch]:
9187         (mono_get_exception_type_initialization): new function.
9188
9189         * object.c: throw a TypeInitializationException when an exception is
9190         thrown invoking the class constructor.
9191
9192 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9193
9194         * reflection.c: fixed attribute reading.
9195
9196 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9197
9198         * icall.c:
9199         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9200         provided, look for the type in the calling assembly and then in
9201         mscorlib; if the assembly name is provided, only try that one.
9202
9203 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9204
9205         * object.c: register the vtable before there is a chance it's
9206         queried again recursively.
9207
9208 2003-01-13  Duncan Mak  <duncan@ximian.com>
9209
9210         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9211         gc-internal.h. 
9212         
9213 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9214
9215         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9216
9217 2003-01-11  Martin Baulig  <martin@ximian.com>
9218
9219         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9220         this to 20 for the release.
9221
9222 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9223
9224         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9225
9226         * loader.c (mono_method_get_marshal_info): bug fix
9227
9228         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9229         structures with explicit layout
9230
9231 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9232
9233         * profiler.c: made the output more readable (and sorted). 
9234         Added caller information for the allocation profiler.
9235
9236 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9237
9238         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9239
9240 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9241
9242         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9243         to get value types.
9244         
9245 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9246
9247         * object.c, profiler.h, profiler.c, profiler-private.h:
9248         Added object allocation profiler.
9249
9250 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9251
9252         * reflection.h, reflection.c: handle global methods.
9253         Compress blob entries.
9254
9255 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9256
9257         * marshal.c: fix compilation.
9258
9259 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9260
9261         * loader.c (mono_method_get_marshal_info): impl.
9262
9263         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9264
9265 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9266
9267         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9268         for reference types.
9269
9270 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9271
9272         * loader.c: fixed off by one error in loaded parameter names.
9273
9274 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9275
9276         * marshal.c (mono_marshal_get_icall_wrapper): like
9277         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9278         instead of a MonoMethod.
9279
9280 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9281
9282         * decimal.c: fixed bug #36537.
9283
9284 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9285
9286         * marshal.c: throw a missing method exception if a
9287         P/Invoke method is not found.
9288
9289 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9290
9291         * icall.c: allow a null this for constructors.
9292
9293 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9294
9295         * icall.c: raise the proper exceptions if the arguments to the
9296         internal Invoke are incorrect.
9297
9298 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9299
9300         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9301
9302 2003-01-03  Martin Baulig  <martin@ximian.com>
9303
9304         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9305
9306 2002-12-31  Martin Baulig  <martin@ximian.com>
9307
9308         * debug-mono-symfile.c: Completely rewrote the type section.
9309         Instead of using individual malloc()ed fields, we use one big
9310         continuous memory area and offsets into this area.
9311         See the comments in the source code for details.
9312
9313 2002-12-30  Martin Baulig  <martin@ximian.com>
9314
9315         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9316
9317 2002-12-30  Martin Baulig  <martin@ximian.com>
9318
9319         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9320         line number table in this data blob instead of using an external
9321         pointer.
9322
9323 2002-12-28  Martin Baulig  <martin@ximian.com>
9324
9325         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9326
9327 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9328
9329         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9330         as a boxed return type.
9331
9332 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9333
9334         * appdomain.c
9335         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9336         g_build_filename to properly get separators on the filename created.
9337
9338         * object.h: Small change, introduce MonoMarshalByRefObject to
9339         track the layout of that structure in the C# universe as we make
9340         changes there.
9341
9342 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9343
9344         * object.c: removed assert to allow static fields on interfaces.
9345         * loader.c: a TypeSpec may be used for any type, not just arrays.
9346
9347 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9348
9349         * class.c, class.h: added mono_class_array_element_size ().
9350         Ignore static methods in interfaces.
9351
9352 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9353
9354         * threads.c: fixed the build under cygwin.
9355
9356 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9357
9358         * reflection.c: handle nullref constants. Allocate keys for
9359         reflection handles with the GC.
9360
9361 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9362
9363         * threads.c, threads.h: added mono_thread_get_abort_signal()
9364         to get a suitable signal for thread abort.
9365
9366 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9367
9368         * metadata.c: fix handling of ExportedType table.
9369
9370 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9371
9372         * icall.c: added WriteWindowsDebugString internal call.
9373
9374 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9375
9376         * reflection.h: added fields to match C# implementation.
9377
9378 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9379
9380         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9381
9382 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9383
9384         * gc.h, gc-internal.h: Rename header for GC internal calls to
9385         gc-internal.h from gc.h as to not clash with Boehm GC having its
9386         header installed as <gc.h> in outside include paths.
9387         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9388         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9389
9390 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9391
9392         * icall.c: assign minor, build and revision in FillName.
9393
9394 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9395
9396         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9397         Added support for running code generated by Reflection.Emit.
9398
9399 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9400
9401         * appdomain.c: check for NULL argument in LoadFrom.
9402
9403 2002-12-10  Dick Porter  <dick@ximian.com>
9404
9405         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9406
9407 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9408
9409         * appdomain.c: fix buglet when building exe file name.  Handle full
9410         assembly name (needed after latest changes to AssemblyName).
9411         * image.c:
9412         (mono_image_close): free some hashtables.
9413
9414 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9415
9416         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9417         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9418         on some systems (redhat 7.3) 
9419
9420 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9421
9422         * threads.c: delete the critical section of a sync block,
9423         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9424
9425 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9426
9427         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9428
9429 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9430
9431         * appdomain.[ch]: handle the assembly preload event to try loading the
9432         assemblies using the paths we have in the current domain.
9433
9434         * assembly.[ch]: created an assembly preload hook that is called to try
9435         loading the assembly by other means that the ones provided here.
9436
9437         * domain.c: initialize the domain search path.
9438
9439         From now on, assemblies (TODO: except corlib and System) are loaded
9440         according to these rules when using mono_assembly_load ():
9441
9442                 1. It tries to load the assembly from the ApplicationBase
9443                 of the current domain appending .dll and .exe (TODO: have to
9444                 try loading from name/name.dll and name/name.exe).
9445
9446                 2. It tries the search path specified in PrivateBinPath for the
9447                 current domain (if any).
9448
9449                 3. Previous behavior.
9450
9451 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9452
9453         * icall.c: implemented GetInterfaceMap() related icall.
9454         * domain.c, loader.h: load MethodInfo in mono_defaults.
9455
9456 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9457
9458         * gc.c: disable the finalizer thread for now, untill all the issues
9459         with it are resolved.
9460
9461 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9462
9463         * string-icalls.c: handle embedded nulls in string ctor when the
9464         length is specified.
9465
9466 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9467
9468         * class.c: look for explicit interface implementation in parent
9469         classes, too.
9470
9471 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9472
9473         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9474
9475 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9476
9477         * gc.c: protect handles with a critical section.
9478
9479 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9480
9481         * icall.c:
9482         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9483         parameters. If no assembly specified, try getting the type from all
9484         the assemblies in the current domain, else, load the assembly and get
9485         the type from it.
9486
9487 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9488
9489         * marshal.c: applied patch from Aleksey Demakov that fixes
9490         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9491
9492 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9493
9494         * icall.c: fixed get_location.
9495
9496 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9497
9498         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9499         declarations to make it work with older gcc. 
9500
9501         * loader.c (mono_get_method): set signature->pinvoke for native calls
9502
9503 2002-11-20  Dick Porter  <dick@ximian.com>
9504
9505         * threads.c (mono_thread_init): Set the main thread's handle
9506
9507 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9508
9509         * gc.c: allow compilation without GC support. Changed to match the
9510         mono coding style.
9511
9512 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9513
9514         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9515
9516 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9517
9518         * reflection.c: set a public key token on the core assemblies.
9519
9520 2002-11-18  Dick Porter  <dick@ximian.com>
9521
9522         * threads.c: Split out some thread initialisation so that other
9523         files can set the start callback function.
9524
9525         * gc.c: Run finalisers in a separate thread, to avoid stack
9526         overflow.  Fixes bug 31333.
9527
9528         * appdomain.c: Set up GC finalisation thread.
9529
9530         * reflection.c: 
9531         * object.c: 
9532         * domain.c: Use gc.h macros for GC_malloc
9533         
9534 2002-11-15  Dick Porter  <dick@ximian.com>
9535
9536         * threadpool.c: 
9537         * threads.c:
9538         * appdomain.c: Removed mono_runtime_init_with_attach(),
9539         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9540         merging the extra parameter with the existing function.  Removed
9541         unneeded code in mono_thread_attach().
9542
9543 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9544
9545         * image.c (mono_image_loaded_by_guid): a method to get loaded
9546         images by guid. 
9547         (load_metadata_ptrs): we store the guid as string.
9548
9549 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9550
9551         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9552
9553         * metadata.c (mono_guid_to_string): imported method form Zoltan
9554         Varga (slightly modified)
9555
9556         * assembly.c (mono_assembly_open): load precompiled code
9557
9558         * loader.h (MonoMethod): we store the method token for use in the
9559         aot compiler. 
9560
9561 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9562
9563         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9564         the hook function called when an assembly is loaded.
9565         
9566         * domain.c: Modified file.
9567         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9568
9569         Fixes bug #33196.
9570
9571 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9572
9573         * reflection.c: Map PEFileKind to the value expected by the WinNT
9574         image loader. 
9575
9576 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9577
9578         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9579         Read until the buffer is filled completely.
9580
9581 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9582
9583         * icall.c: implemented MonoType.InternalGetEvent ().
9584
9585 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9586
9587         * appdomain.c: implemented InitAppDomainSetup. Delayed
9588         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9589         the entry_assembly.
9590
9591         * assembly.c: base_dir is now an absolute path ending with
9592         G_DIR_SEPARATOR.
9593
9594         * icall.c: modified get_location according to the above changes.
9595
9596         * object.c: init AppDomain.SetupInformation for the default domain after
9597         we have the entry assembly.
9598
9599         * domain.c: when unloading a domain, setup = NULL.
9600
9601 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9602
9603         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9604
9605 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9606
9607         * object.h, object.c: introduced mono_object_get_virtual_method ()
9608         to lookup the method invoked on an object when a callvirt is done on
9609         a method.
9610         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9611
9612 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9613
9614         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9615         current domain when loaded an assembly and failed to load it.
9616
9617         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9618
9619 2002-10-31  Dick Porter  <dick@ximian.com>
9620
9621         * icall.c: 
9622         * file-io.h: 
9623         * file-io.c: Return the error status in a parameter, as the
9624         GetLastError() value has long since been blown away if we try and
9625         look it up in a subsequent internal call invocation.  Delete the
9626         GetLastError() internal call, because it's useless.
9627
9628 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9629
9630         * class.[ch]: added cast_class to fix bug 29517
9631
9632 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9633
9634         * marshal.c: create valid IL code in the filter clause:
9635         the new JIT is less forgiving:-)
9636
9637 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9638
9639         * icall.c: removed get_property internal call.
9640
9641 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9642
9643         * appdomain.h domain.c: Added an ID to appdomains.
9644         
9645         * threads.c threads.h icall.c: Implement icall
9646         Thread:GetDomainID(), and remove unused icall 
9647         CurrentThreadDomain_internal.
9648
9649 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9650
9651         * icall.c: Don't recurse through the base types in GetConstructor.
9652         Fixes bug #32063. 
9653
9654 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9655
9656         * mempool.h, mempool.c: added mono_mempool_empty() and
9657         mono_mempool_stats().
9658
9659 2002-10-23  Dick Porter  <dick@ximian.com>
9660
9661         * file-io.c: 
9662         * file-io.h: 
9663         * icall.c: Added MonoIO.GetFileType internal call
9664
9665 2002-10-17  Dick Porter  <dick@ximian.com>
9666
9667         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9668         delegate semaphore before waiting for all threads to finish,
9669         because new threads can also call async delegates.  Fixes bug
9670         32004.
9671
9672         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9673         of 3 seconds, in case another async job is queued.  (This part is
9674         needed because the bug fix reintroduced the 3s exit lag.)  This
9675         makes the mono_runtime_shutdown flag superfluous.
9676
9677 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9678
9679         * reflection.c: include ehader size in method section headers.
9680         Really check for suplicated modules entries.
9681
9682 2002-10-17  Martin Baulig  <martin@gnome.org>
9683
9684         * debug-mono-symfile.c: Added back support for locals.
9685
9686 2002-10-14  Martin Baulig  <martin@gnome.org>
9687
9688         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9689         MONO_TYPE_VOID.
9690
9691 2002-10-14  Martin Baulig  <martin@gnome.org>
9692
9693         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9694         mono_class_get() instead of looking in the class cache. 
9695
9696 2002-10-13  Martin Baulig  <martin@gnome.org>
9697
9698         * debug-mono-symfile.c: Set version number to 28, include the
9699         signature in method names.
9700
9701 2002-10-13  Martin Baulig  <martin@gnome.org>
9702
9703         * debug-mono-symfile.h: Set version number to 27.
9704
9705 2002-10-11  Martin Baulig  <martin@gnome.org>
9706
9707         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9708
9709 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9710
9711         * metadata.c, metadata.h: added helper function to allocate signatures.
9712
9713 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9714
9715         * icall.c: added internal call to get the location of machine.config.
9716
9717 2002-10-08  Martin Baulig  <martin@gnome.org>
9718
9719         * debug-mono-symfile.c: Ignore classes with a pending init for the
9720         moment.
9721
9722 2002-10-03  Dick Porter  <dick@ximian.com>
9723
9724         * threads.c: Freebsd pthread_t is a pointer
9725
9726 2002-10-03  Dick Porter  <dick@ximian.com>
9727
9728         * socket-io.c: Implemented GetHostName_internal
9729
9730 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9731
9732         * mono-config.c:
9733         (mono_config_parse_file): don't leak the text.
9734
9735 2002-10-02  Martin Baulig  <martin@gnome.org>
9736
9737         * debug-mono-symfile.c: Added support for methods.
9738
9739 2002-10-01  Martin Baulig  <martin@gnome.org>
9740
9741         * debug-mono-symfile.c: Don't emit methods and line numbers for
9742         the dynamic symbol file, just write the type table.  We can easily
9743         have an external helper program which creates a symbol file for an
9744         IL file.        
9745
9746 2002-10-01  Dick Porter  <dick@ximian.com>
9747
9748         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9749         Only add the handle to the cleanup array when we're about to
9750         launch the thread.  Bug 31425 deadlocked when the test was run on
9751         mono under w32.
9752
9753 2002-10-01  Martin Baulig  <martin@gnome.org>
9754
9755         * debug-mono-symfile.c: Added support for properties.
9756
9757 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9758
9759         * reflection.c: unaligned store fix from Mark Crichton
9760         <crichton@gimp.org>.
9761
9762 2002-09-27  Martin Baulig  <martin@gnome.org>
9763
9764         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9765         New interncall.
9766
9767 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9768
9769         * assembly.h, assembly.c: use a sane API to hook into the assembly
9770         loading process instead of a useless special-purpouse hack
9771         (ngen needs a hook, too, for example).
9772
9773 2002-09-27  Dick Porter  <dick@ximian.com>
9774
9775         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9776         io-layer can set up some process handle info.  Not needed on w32,
9777         but doesn't hurt either.
9778
9779         * process.c: Pass the program name in the second parameter to
9780         CreateProcess, so the path is searched.  Include the working
9781         directory. Implemented process name, process enumeration, and some
9782         process detail internal calls.
9783         
9784         * icall.c: Added internal calls for process lookup, and some
9785         process details
9786
9787 2002-09-26  Martin Baulig  <martin@gnome.org>
9788
9789         * assembly.c (mono_install_open_assembly_hook): New global
9790         function to install a function to be invoked each time a new
9791         assembly is loaded.
9792         (mono_assembly_open): Run this callback function if set.
9793
9794         * debug-mono-symfile.c: Put back line numbers for the dynamic
9795         symbol file and also record the .il file as source file.  This
9796         allows us to install the temporary symbol file as `file.dbg' just
9797         like a compiler-generated one.
9798
9799 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9800
9801         * Corrected typo in gc.c (BOHEM vs BOEHM).
9802
9803 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9804
9805         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9806         GetProperties. Also avoid calling g_slist_length in GetProperties and
9807         GetMethods.
9808
9809 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9810
9811         * reflection.c: avoid unaligned stores (bug spotted by
9812         Mark Crichton  <crichton@gimp.org>).
9813
9814 2002-09-25  Martin Baulig  <martin@gnome.org>
9815
9816         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9817         instead of guint64 for addresses and added prologue/epilogue info.
9818
9819 2002-09-25  Martin Baulig  <martin@gnome.org>
9820
9821         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9822         store line number info.  For the dynamic symbol file, we only need
9823         to provide the JIT generated dynamic line number info for the dynamic
9824         symbol file.
9825
9826 2002-09-25  Martin Baulig  <martin@gnome.org>
9827
9828         * debug-mono-symfile.h: Incremented version number.
9829
9830 2002-09-24  Martin Baulig  <martin@gnome.org>
9831
9832         * class.c (mono_debugger_class_init_func): New global function
9833         pointer variable.
9834         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9835         call it.
9836
9837         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9838         function.  This is called via the mono_debugger_class_init_func
9839         hook to add all types to the dynamic type table.
9840         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9841         from its metadata token.
9842
9843         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9844         New interncall for the debugger.
9845
9846 2002-09-24  Nick Drochak <ndrochak@gol.com>
9847
9848         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9849         before using it in case it is null.
9850         
9851 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9852
9853         * metadata.c: allow custom modifiers in local var signatures
9854         (bug spotted by Zoltan Varga).
9855
9856 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9857
9858         * class.c: deal with the <Module> class that may have a NULL vtable.
9859         Eliminate warnings.
9860
9861 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9862
9863         * image.c, image.h: more strong name helpers.
9864         * monosn.c: more work: convert pem keys to cryptoapi format.
9865
9866 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9867
9868         * string-icalls.c: speedup IndexOf.
9869
9870 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9871
9872         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9873
9874 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9875
9876         * icall.c: cleanup: use mono_object_domain ().
9877
9878 2002-09-23  Martin Baulig  <martin@gnome.org>
9879
9880         * debug-mono-symfile.c: Improved type support.
9881
9882 2002-09-22  Martin Baulig  <martin@gnome.org>
9883
9884         * debug-mono-symfile.c: Added support for reference types and strings.
9885
9886 2002-09-22  Martin Baulig  <martin@gnome.org>
9887
9888         * debug-mono-symfile.c: Started to work on the type table.
9889
9890 2002-09-21  Martin Baulig  <martin@gnome.org>
9891
9892         * debug-mono-symfile.c: Largely reworked the symbol table format.
9893         The symbol table is now incrementally updated each time a new
9894         method is added.  We're now also using our own magic and version
9895         so that you don't need to recompile all your classes if the
9896         dynamic table changes.
9897         (mono_debug_update_mono_symbol_file): Removed.
9898         (mono_debug_symfile_add_method): New function to add a method.
9899
9900 2002-09-21  Martin Baulig  <martin@gnome.org>
9901
9902         * icall.c
9903         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9904         New interncall.
9905
9906         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9907         New interncall to get a method from its metadata token.
9908
9909 2002-09-21  Martin Baulig  <martin@gnome.org>
9910
9911         * debug-mono-symfile.c: Create type table.
9912
9913 2002-09-20  Martin Baulig  <martin@gnome.org>
9914
9915         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9916
9917 2002-09-20  Martin Baulig  <martin@gnome.org>
9918
9919         * debug-mono-symfile.c: Provide information about params and locals.
9920
9921 2002-09-20  Martin Baulig  <martin@gnome.org>
9922
9923         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9924         New interncall.
9925
9926         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9927         interncall to get a method from its metadata token.
9928
9929 2002-09-20  Martin Baulig  <martin@gnome.org>
9930
9931         * debug-mono-symfile.c: Added a few checks for method->header
9932         being non-NULL.  This should never happen, but for the moment
9933         let's use a g_warning() rather than a g_assert().
9934
9935 2002-09-19  Mark Crichton  <crichton@gimp.org>
9936
9937         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9938         even if support for it isn't present.  Added an #ifdef to fix this.
9939
9940         * socket-io.c: Added checks back for Solaris support.
9941
9942 2002-09-19  Martin Baulig  <martin@gnome.org>
9943
9944         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9945         changes in the symbol file format.
9946
9947 2002-09-18  Martin Baulig  <martin@gnome.org>
9948
9949         * debug-mono-symfile.c: Set version number to 21.
9950
9951 2002-09-18  Dick Porter  <dick@ximian.com>
9952
9953         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9954         on netbsd.  Fixes bug 30051.
9955
9956 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9957
9958         * reflection.c:
9959         (set_version_from_string): little fix.
9960
9961 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9962
9963         * monosn.c, Makefile.am: added strong name utility.
9964         * reflection.h, reflection.c: implemented delayed signing,
9965         locale, version and hash id assembly attributes.
9966
9967 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9968
9969         * loader.c, metadata.c: load param attributes in signatures.
9970
9971 2002-09-16  Martin Baulig  <martin@gnome.org>
9972
9973         * debug-mono-symfile.c: Added string table with all method names.
9974
9975 2002-09-14  Martin Baulig  <martin@gnome.org>
9976
9977         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9978         fast method lookup.
9979
9980 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9981
9982         * reflection.c: record the public key token of referenced assemblies.
9983
9984 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9985
9986         * image.c, image.h: added functions to get the strong name and the
9987         public key of an assembly.
9988         * pedump.c: use them.
9989
9990 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9991
9992         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9993
9994 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9995
9996         * marshal.c (mono_marshal_get_managed_wrapper): Added
9997         MONO_TYPE_BOOLEAN 
9998
9999 2002-09-11  Martin Baulig  <martin@gnome.org>
10000
10001         * gc.c: Call GC_unregister_disappearing_link() on all links when
10002         finalizing them, this is necessary to aviod a crash in boehm's
10003         finalize handler.
10004
10005 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10006
10007         * gc.c: handle GetTarget for finalized objects spotted and fixed by
10008         nick@chemlab.org.
10009
10010 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10011
10012         * icall.c: implemented MonoType::Module.
10013         * reflection.c, reflection.h: mono_module_get_object () from
10014         Tomi Pakarinen <tomi.pakarinen@welho.com>.
10015
10016 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10017
10018         * icall.c: ignore overridden methods in GetMethods ().
10019         Fix for FieldInfo::SetValue().
10020         * object.c: handle float/double in runtime invoke.
10021
10022 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10023
10024         * object.c: allow a constructor to be called again on an object.
10025
10026 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10027
10028         * class.h, class.c: move field layout code to it's own function and
10029         export it. Get an interface id earlier. Move fields in MonoClass
10030         so they are more cache friendly and align the bitfields.
10031         * loader.c: temporary handle get_param_names() for a runtime method.
10032         * reflection.c, reflection.h: more code to handle runtime creation of
10033         types.
10034
10035 2002-09-09  Martin Baulig  <martin@gnome.org>
10036
10037         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
10038         signature with the pinvoke field being set for the actual call.
10039
10040 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10041
10042         * icall.c: removed some unused icalls. Start of map of glib charsets
10043         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
10044
10045 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10046
10047         * debug-helpers.c: break infinite loop (found and fixed by
10048         Holger Arnold <harnold@gmx.de>).
10049
10050 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10051
10052         * icall.c: target may be null in create_delegate.
10053
10054 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10055
10056         * marshal.c: handle a boolean return type.
10057
10058 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10059
10060         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
10061
10062 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10063
10064         * gc.c: fix weakreferences.
10065
10066 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10067
10068         * icall.c: added icall to get default codepage.
10069
10070 2002-09-03  Dick Porter  <dick@ximian.com>
10071
10072         * threads.h: 
10073         * threads.c: Use MonoThread instead of MonoObject where
10074         apropriate.
10075
10076         Store running thread objects in a hash table, so that we have all
10077         the info to hand when waiting for them to finish
10078         (means we don't need OpenThread() any more, so mingw builds should
10079         be fully functional again.)
10080
10081         * verify.c:
10082         * object.h: Added thread ID to MonoThread
10083
10084 2002-09-03  Martin Baulig  <martin@gnome.org>
10085
10086         * icall.c (System.Reflection.Assembly::get_location): New interncall.
10087
10088 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10089
10090         * icall.c: fixed leak in get_temp_path. Thanks lupus.
10091
10092 2002-09-03  Martin Baulig  <martin@gnome.org>
10093
10094         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
10095         argument to store the end address of the disassembled instruction.
10096
10097         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
10098         here from debug-symfile.h.
10099         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
10100         JIT into this struct.
10101         (MonoSymbolFile): Added `char *image_file' field.
10102         (MonoDebugGetMethodFunc): Removed.
10103         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
10104         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
10105         (mono_debug_find_method): New method.
10106
10107         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
10108         create a full symbol file.
10109         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
10110         and static symbol files.
10111         (mono_debug_find_method): The symbol file keeps an internal method hash,
10112         call this to get a MonoDebugMethodInfo from a MonoMethod.
10113
10114         * debug-symfile.[ch]: Removed.
10115
10116 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
10117
10118         * image.c (do_mono_image_open): Remove linker version check.
10119
10120 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
10121
10122         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
10123         wrappers for instance methods.
10124         
10125 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10126
10127         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
10128
10129 2002-08-28  Dick Porter  <dick@ximian.com>
10130
10131         * Makefile.am: Export HOST_CC for w32 builds
10132
10133 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10134
10135         * file-io.c process.c: MonoString are null terminated, no
10136         need for mono_string_to_utf16() anymore.
10137
10138 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10139
10140         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
10141
10142 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
10143
10144         * icall.c, reflection.h: speedup System.MonoType.
10145
10146 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10147
10148         * reflection.c: allow null as the value of a string argument in
10149         custom attributes constructors.
10150
10151 2002-08-27  Martin Baulig  <martin@gnome.org>
10152
10153         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
10154         `trampoline_address' field.
10155
10156 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
10157
10158         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
10159         check (fixes bug #29486) 
10160
10161 2002-08-27  Martin Baulig  <martin@gnome.org>
10162
10163         * debug-mono-symfile.c: Changed the file format in a way that allows us
10164         open it read-only and to use a specially malloced area for all the
10165         dynamic data.  We can now also generate a symbol file on-the-fly if we're
10166         debugging IL code and there is no MCS generated symbol file for it.
10167
10168 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10169
10170         * object.c: added a define for a good string and array
10171         creation speedup (not enabled by default because we need to deal with
10172         the synch stuff).
10173
10174 2002-08-26  Martin Baulig  <martin@gnome.org>
10175
10176         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
10177         function to create a dynamic symbol file.  This is used by the
10178         debugger to create a symbol file for IL code on-the-fly.
10179
10180 2002-08-26  Martin Baulig  <martin@gnome.org>
10181
10182         * loader.c (mono_lookup_pinvoke_call): Include the error message
10183         from g_module_error() in the error message.
10184
10185 2002-08-24  Martin Baulig  <martin@gnome.org>
10186
10187         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
10188         function to update the symbol file.  The symbol file is mmap()ed
10189         writable, but private.  This allows us to install the symbol file
10190         together with the assembly.
10191
10192 2002-08-24  Martin Baulig  <martin@gnome.org>
10193
10194         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
10195         but they can read the new symbol file format which mcs is now creating.
10196
10197         * debug-symfile.c (mono_debug_find_source_location): Moved to
10198         debug-mono-symfile.c; this is now operating on the new symbol file.
10199
10200 2002-08-23  Martin Baulig  <martin@gnome.org>
10201
10202         * debug-helpers.c (mono_method_desc_from_method): New function to get
10203         a MonoMethodDesc from a MonoMethod.
10204
10205 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10206
10207         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10208         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10209
10210 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10211
10212         * string-icalls.[ch]: make helper methods static.
10213
10214 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10215
10216         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10217         types to it and to SetValueInternal.
10218
10219         * object.c: Moved handle_enum label to its proper place. This was the
10220         f... bug! ;-)
10221
10222         This time i compiled mcs and gtk-sharp and they both work.
10223
10224 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10225
10226         * icall.c: reverted partially my previous patch until 
10227         object.c:set_value handles enums correcly.
10228
10229 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10230
10231         * icall.c:
10232         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10233         (ves_icall_System_Environment_get_MachineName): removed warning when
10234         compiling under cygwin.
10235
10236 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10237
10238         * object.c: fixed field_get_value() for reference types.
10239
10240 2002-08-22  Dick Porter  <dick@ximian.com>
10241
10242         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10243         Don't free a buffer while it's still needed.  Patch from Jonathan
10244         Liger <Jonathan.liger@wanadoo.fr>
10245
10246 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10247
10248         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10249         internal call.
10250
10251 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10252
10253         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10254         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10255
10256         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10257         we call unmanaged code which throws exceptions.
10258
10259 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10260
10261         * appdomain.h: added per-domain entry_assembly.
10262         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10263         arguments.
10264         * icall.c: Assembly::GetEntryAssembly icall.
10265         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10266         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10267
10268 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10269
10270         * appdomain.h, gc.c: added mono_domain_finalize ().
10271
10272 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10273
10274         * object.c:
10275         (mono_print_unhandled_exception): changed g_warning by g_printerr
10276         because g_log has a 1024 characters limit (yeah, i got a big stack
10277         trace). Don't print exception name, that should be in ToString 
10278         returned string.
10279
10280 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10281
10282         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10283         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10284
10285 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10286
10287         * object.c:
10288         (mono_print_unhandled_exception): after previous commit, i realized
10289         that MS calls ToString on the exception. I changed this function to
10290         do that. This way we get stack_trace for free.
10291
10292 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10293
10294         * object.c:
10295         (mono_print_unhandled_exception): invoke Message property instead of
10296         getting 'message' field from Exception. Don't allocate memory for
10297         'trace' and 'message' if not needed.
10298
10299 2002-08-18  Dick Porter  <dick@ximian.com>
10300
10301         * unicode.c: Fix asserts to match Encoder.cs checks
10302
10303 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10304
10305         * marshal.c: fix unaligned store issue and a few wrong
10306         opcode argument types.
10307
10308 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10309
10310         * icall.c: added GetUninitializedObjectInternal internal call.
10311
10312 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10313
10314         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10315         to the right domain.
10316
10317 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10318
10319         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10320
10321         * class.c (class_compute_field_layout): set blittable to false for Strings
10322
10323         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10324
10325 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10326
10327         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10328         first chunk of code to create types at runtime. Code to
10329         handle ReflectedType/DeclaringType. Make reflection handles
10330         domain specific.
10331
10332 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10333
10334         * class.c: set correct name in arrays.
10335
10336 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10337
10338         * appdomain.c (mono_domain_transfer_object): make it work with
10339         valuetypes. bug fixes.
10340
10341 2002-08-12  Dick Porter  <dick@ximian.com>
10342
10343         * object.h: Rename some parameters to avoid c++ keywords (Patch
10344         from Joseph Wenninger <kde@jowenn.at>)
10345
10346 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10347
10348         * icall.c: added icall to implement Assembly.GetFile*.
10349
10350 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10351
10352         * reflection.h, reflection.c: code to embed managed resources.
10353
10354 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10355
10356         * class.c: move all the type size stuff into
10357         class_compute_field_layout().
10358
10359 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10360
10361         * class.c: ensure enums have always the correct instance size.
10362         * unicode.c: remove wrong assert.
10363
10364 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10365
10366         * assembly.c: fix mem corruption issue.
10367         * image.h, image.c: added mono_image_get_resource () to access
10368         managed resources.
10369         * icall.c: implemented Assembly.EntryPoint property and some
10370         Managed Resources related internalcalls.
10371
10372
10373 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10374
10375         * image.c, image.h: impemented mono_image_get_entry_point ().
10376         * appdomain.c: use mono_image_get_entry_point.
10377
10378 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10379
10380         * reflection.c: support the object type argument when loading
10381         custom attributes.
10382
10383 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10384
10385         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10386         String as return type.
10387
10388 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10389
10390         * reflection.c: fix encoding of named args for custom attrs to match
10391         the ms implementation. Read them back when instantiating custom
10392         attributes.
10393
10394 2002-08-02  Radek Doulik  <rodo@ximian.com>
10395
10396         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10397         by Dietmar as quick fix
10398         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10399         16 as stack size, used on more places as quick fix before Dietmar
10400         will fix it properly
10401
10402 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10403
10404         * object.h, object.c: added accessors for fields and properties.
10405
10406 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10407
10408         * class.c, class.h: made mono_class_get_field_from_name ()
10409         loop on parent types.
10410         Added mono_class_get_property_from_name ().
10411
10412 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10413
10414         * class.c, class.h: move the code to setup the type vtable in its own
10415         function so that it can be reused also for types created at runtime.
10416         Eliminate the "class" identifier from the header file.
10417         * reflection.c: setup the vtable for enums so that we can create
10418         objects for use in SetConstant ().
10419
10420 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10421
10422         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10423         instead of the delegate itself as this pointer (bug #28383)
10424
10425 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10426
10427         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10428         conversions.
10429
10430 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10431
10432         * loader.c: don't set the pinvoke bit on icalls.
10433
10434 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10435
10436         * debug-helpers.c (mono_method_full_name): only print a number to
10437         indicate wrapper type (so that the output is more readable in traces).
10438
10439 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10440
10441         * class.c (mono_class_init): include method override patch from Paolo
10442
10443 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10444
10445         * icall.c: fixed GetTypeCode().
10446
10447 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10448
10449         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10450         use real delegate invoke function to make it work with multicast
10451         delegates (fix bug# 28291).
10452
10453 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10454
10455         * object.c: load constant strings.
10456
10457 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10458
10459         * reflection.c: no magic numbers.
10460         * tabledefs.h: security action enum.
10461
10462 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10463
10464         * assembly.c: fix possible memory corruption.
10465
10466 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10467
10468         * reflection.h, reflection.c: added support for linking resources.
10469         * verify.c: check we have an updated corlib.
10470
10471 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10472
10473         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10474         string arrays.
10475         (mono_marshal_string_array): null terminate unmanaged string arrays.
10476         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10477
10478 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10479
10480         * icall.c: Type.GetType () can now return also types from the
10481         calling assembly.
10482
10483 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10484
10485         * loader.h, loader.c: stack walking support.
10486         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10487         GetCallingAssembly.
10488
10489 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10490
10491         * marshal.c: added optimisations for blittable types 
10492
10493         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10494         (mono_class_setup_mono_type): set blittable attribute for single
10495         and double.
10496
10497         * marshal.c (mono_string_utf8_to_builder): impl.
10498         (mono_string_builder_to_utf8): impl.
10499         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10500
10501 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10502
10503         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10504         (mono_marshal_get_managed_wrapper): impl. byref types
10505
10506 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10507
10508         * icall.c:
10509         (search_method): don't display debug message. 
10510
10511 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10512
10513         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10514
10515 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10516
10517         * appdomain.c: set the missing filename when throwing exception.
10518
10519 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10520
10521         * metadata.c (mono_type_size): code cleanup
10522         (mono_type_stack_size): removed some test code
10523
10524 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10525
10526         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10527         mono_get_exception_file_not_found now.
10528
10529         * exception.c (mono_exception_from_name_two_strings): New version
10530         that will call a constructor with two string arguments. 
10531         (mono_get_exception_file_not_found): New helper routine, used to
10532         report file-not-found errors.
10533
10534 2002-07-20  Dick Porter  <dick@ximian.com>
10535
10536         * process.h:
10537         * process.c: Pass file handles to CreateProcess
10538         
10539         * icall.c:
10540         * file-io.h:
10541         * file-io.c: Implemented CreatePipe
10542
10543 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10544
10545         * metadata.c (mono_get_param_info): set alignment for value types
10546
10547 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10548
10549         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10550         Constify mono_domain_assembly_open().
10551         * loader.c: handle null namespace in icalls.
10552
10553 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10554
10555         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10556         (emit_str_to_ptr_conv): marshal object as structs
10557
10558         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10559
10560         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10561
10562 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10563
10564         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10565         (mono_marshal_get_native_wrapper): we an now return value types
10566
10567 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10568
10569         * verify.c: more checks implemented.
10570
10571 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10572
10573         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10574         (fix bug #27695)
10575         (mono_marshal_get_native_wrapper): allow byref arguments
10576         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10577         impl. PtrToStringXXX methods
10578         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10579         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10580         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10581         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10582         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10583
10584 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10585
10586         * reflection.c: fix buglet in parsing an assembly name.
10587
10588 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10589
10590         * marshal.c (emit_ptr_to_str_conv): first impl.
10591
10592 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10593
10594         * object.c, class.h: cache the vtable in the class as suggested by
10595         vargaz@freemail.hu (Zoltan Varga).
10596
10597 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10598
10599         * class.h, loader.c: added mono_field_from_token().
10600         * verify.c: first cut of type checking code.
10601
10602 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10603
10604         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10605
10606 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10607
10608         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10609         (fix bug #27782)
10610         (mono_marshal_get_remoting_invoke): impl.
10611         (mono_delegate_begin_invoke): impl.
10612         (mono_mb_emit_save_args): impl.
10613         (mono_delegate_end_invoke): impl.
10614         (mono_marshal_get_delegate_begin_invoke):
10615         (mono_marshal_get_delegate_end_invoke):
10616         (mono_marshal_get_delegate_invoke): generate a special name for
10617         those methods (including the signature) and associate them whith
10618         the delegate class. 
10619
10620 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10621
10622         * reflection.[ch]: 
10623         (mono_reflection_type_from_name): now it has a MonoImage parameter
10624         which is used as the default image to search the type in. If the image
10625         is NULL or getting the type from it fails, it defaults to corlib.
10626
10627         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10628         new parameter.
10629
10630 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10631
10632         * reflection.c: update the parameter table index.
10633
10634 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10635
10636         * domain.c: don't include the mark byte in the string hash.
10637
10638 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10639
10640         * icall.cs: icall for Type.GetTypeCode ().
10641         * verify: a couple of fixes and disabled local initialization checks.
10642
10643 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10644
10645         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10646
10647         * debug-helpers.c (mono_method_full_name): print the type of the
10648         runtime wrapper
10649
10650         * metadata.c (mono_signature_hash): a hash function for signatures
10651         (mono_signature_hash): better hash algorithm
10652
10653         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10654
10655         * debug-helpers.c (mono_method_full_name): this can now generate
10656         method names with signatures
10657
10658         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10659         method dont have this pointers.
10660
10661 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10662
10663         * reflection.c: fixup typebuilder tokens.
10664         * image.c: fix buglet.
10665         * marshal.h: remove whitespace.
10666         * metadata.h, metadata.c: reinstate code that was removed.
10667         * verify.c: handle catch directives and fix another couple of bugs.
10668
10669 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10670
10671         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10672         (mono_marshal_get_native_wrapper): make it comp. with the old code
10673         (mono_marshal_get_native_wrapper): support boolean
10674         (mono_marshal_get_managed_wrapper): support more types
10675
10676 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10677
10678         * class.c (class_compute_field_layout): compute class->blittable attribute.
10679
10680 2002-07-09  Dick Porter  <dick@ximian.com>
10681
10682         * threads.c: Make the thread cleaning up cope with threads that
10683         call ExitThread()
10684
10685 2002-07-08  Radek Doulik  <rodo@ximian.com>
10686
10687         * reflection.c (method_encode_code): use non-translated values to
10688         compute finally_start, this fixes exception handling on ppc, yay!
10689
10690         * decimal.h (struct signscale): fix endianess
10691
10692 2002-07-07  Radek Doulik  <rodo@ximian.com>
10693
10694         * reflection.c: swap box_val and not val
10695
10696 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10697
10698         * reflection.c, reflection.h: handle full assembly info in type name.
10699         Handle Type arguments when loading custom attributes.
10700         * icall.c: updated to use new mono_reflection_type_from_name () method.
10701
10702 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10703
10704         * loader.c:
10705         (method_from_memberref): also print assembly name when method not found.
10706
10707 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10708
10709         * icall.c:
10710         (ves_icall_TypeGetProperties): fixed bug #27473. 
10711
10712 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10713
10714         * reflection.c: display image name and token when cannot find the
10715         .ctor for an attribute.
10716
10717 2002-07-05  Martin Baulig  <martin@gnome.org>
10718
10719         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10720
10721 2002-07-04  Dick Porter  <dick@ximian.com>
10722
10723         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10724         compile on mingw.  This will cause mingw builds to not wait for
10725         subthreads to terminate after the main thread does.  I've lodged a
10726         bug with the mingw developers for them to wrap OpenThread().
10727
10728 2002-07-03  Dick Porter  <dick@ximian.com>
10729
10730         * threads.c: Store thread IDs instead of handles, because
10731         GetCurrentThread() returns a pseudohandle and therefore stores
10732         useless values.  mono_thread_cleanup() continues checking the
10733         array of threads until it is empty, to cope with subthreads
10734         spawning new threads after the main thread has finished.
10735
10736         * profiler.h:
10737         * profiler.c:
10738         * profiler-private.h: Pass the thread ID to thread profiler
10739         functions, instead of a handle
10740
10741 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10742
10743         * verify.c: fixes to make it more usable.
10744         * pedump.c: added --verify code to verify IL code in an assembly.
10745
10746 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10747
10748         * reflection.c: turn errors into warnings to allow compiling corlib.
10749
10750 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10751
10752         * reflection.c: add special cases to compile corlib.
10753
10754 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10755
10756         * reflection.c: handle properties with only a set method.
10757
10758 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10759
10760         * opcodes.h: add enum with opcodes in opval order.
10761
10762 2002-07-01  Dick Porter  <dick@ximian.com>
10763         
10764         * object.h:
10765         * object.c (mono_runtime_run_main): Removed unneeded argument
10766
10767 2002-06-28  Martin Baulig  <martin@gnome.org>
10768
10769         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10770
10771 2002-06-27  Dick Porter  <dick@ximian.com>
10772
10773         * threads.c: Store the handle in both the parent thread and in the
10774         subthread, to minimise the time between starting a new thread and
10775         storing its ID.
10776
10777 2002-06-26  Dick Porter  <dick@ximian.com>
10778
10779         * appdomain.c (mono_runtime_cleanup): Close the socket library
10780         after all the threads have finished, not before
10781
10782 2002-06-26  Martin Baulig  <martin@gnome.org>
10783
10784         * debug-symfile.c (mono_debug_find_source_location): Added
10785         `guint32 *line_number' argument.  If it's not NULL, store the line number
10786         there and return the file name without the line number.
10787
10788 2002-06-25  Dick Porter  <dick@ximian.com>
10789
10790         * icall.c:
10791         * process.h:
10792         * process.c: Process forking and other support functions
10793
10794 2002-06-25  Dick Porter  <dick@ximian.com>
10795
10796         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10797         things dont happen when the image is closed.
10798         (mono_image_lookup_resource): Walk the resource section looking
10799         for a particular entry
10800
10801         * cil-coff.h: PE resource section decoding
10802
10803 2002-06-25  Dick Porter  <dick@ximian.com>
10804         
10805         * assembly.h:
10806         * assembly.c: 
10807         (mono_assembly_foreach): Accessor functions to walk the list of
10808         loaded assemblies
10809         (mono_assembly_set_main):
10810         (mono_assembly_get_main): Process methods need to know which
10811         assembly is the "main" one
10812
10813         * object.c (mono_runtime_run_main): Record the main assembly
10814
10815         * debug-helpers.c: Fix typo
10816
10817 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10818
10819         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10820         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10821
10822 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10823
10824         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10825
10826 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10827
10828         * image.c (do_mono_image_open): Initialize reference count,
10829         otherwise we leak the MonoImage.
10830
10831 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10832
10833         * reflection.c: small tweak to handle self-hosting.
10834
10835 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10836
10837         * reflection.c: fix type name parse code.
10838
10839 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10840
10841         * reflection.c: break out of the loop.
10842         * image.c: special case corlib.
10843
10844 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10845
10846         * reflection.c: add all the custom attrs at the end to ensure the
10847         ctors have been properly initialized when the attributes are defined
10848         in the current assembly.
10849
10850 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10851
10852         * reflection.c: handle correctly multiple-nested types.
10853
10854 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10855
10856         * row-indexes.h: fix typos.
10857         * reflection.c: adjust for typos and fix method_def_or_ref
10858         encoding in MethodImpl table.
10859
10860 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10861
10862         * reflection.c: fix entry point patching (thanks Serge!).
10863
10864 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10865
10866         * verify.c: add check for System.Exception
10867
10868 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10869
10870         * image.c, class.c: minifix for code just c&p'ed.
10871         * reflection.c: warning fix.
10872         * object.h, loader.h, domain.c: load also StringBuilder.
10873
10874 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10875
10876         * marshal.h, marshal.c: some support code to handle complex marshaling.
10877
10878 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10879
10880         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10881         Better signatures with vtable error dump.
10882
10883 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10884
10885         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10886
10887 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10888
10889         * icall.c (ves_icall_Type_GetField): impl.
10890
10891 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10892
10893         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10894         to retrieve a marshal description blob for a field or param.
10895
10896 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10897
10898         * reflection.h, reflection.c: change order of nested type emission
10899         to avoid table corruption. The NestedTypes table is sorted.
10900         * icall.c: change order of GetConstructor results to workaround mcs bug.
10901
10902 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10903
10904         * reflection.h, reflection.c: handle field and param marshal
10905         information.
10906
10907 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10908
10909         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10910
10911 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10912
10913         * reflection.c: fix call convention.
10914
10915 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10916
10917         * reflection.h, reflection.c: mono_image_get_memberref_token()
10918         takes a type instead of a class, now. Added
10919         mono_image_get_array_token() to create tokens for the special
10920         multi-dim array methods.
10921
10922 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10923
10924         * assembly.c: handle modules (no assembly table). Split
10925         loading references in its own function.
10926         * class.c: handle moduleref resolution scope.
10927         * image.c, image.h: cache module name in image.
10928
10929 2002-06-07  Martin Baulig  <martin@gnome.org>
10930
10931         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10932         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10933
10934 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10935
10936         * icall.c: more signature fixes that used uint instead of int.
10937
10938 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10939
10940         * reflection.c: fixed signature of field refs.
10941
10942 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10943
10944         * class.c, reflection.c: handle typerefs of nested types
10945         (both on read and when writing files).
10946
10947 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10948
10949         * icall.c: fix method signatures that tried to workaround the previous
10950         typo, d'oh!
10951
10952 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10953
10954         * debug-helpers.c: fix typo.
10955
10956 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10957
10958         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10959         rewrote the PE/COFF writing code (our programs are understood by the
10960         ms runtime, now).
10961
10962 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10963
10964         * gc.c, gc.h, icall.c: weakreference support.
10965
10966 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10967
10968         * Makefile.am, mono-config.c: use $(sysconfdir).
10969
10970 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10971
10972         * icall.c: changed default precision of Double.ToString() to 15.
10973         Fixed memory leak. Unified with Single.ToString.
10974
10975 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10976
10977         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10978
10979 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10980
10981         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10982         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10983         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10984         and myself.
10985
10986 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10987
10988         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10989
10990 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10991
10992         * reflection.c, socket-io.c: more compilation fixes.
10993
10994 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10995
10996         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10997         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10998         unicode.c: warning and compiler compatibility fixes.
10999
11000 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11001
11002         * class.h, metadata.c: fixed warnings/compilation errors.
11003
11004 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11005
11006         * Makefile.am, mono-config.c, mono-config.h: configuration file
11007         support routines.
11008         * loader.c, loader.h: make Dll mapping configurable at runtime in the
11009         config file. Export methods to insert and lookup mappings.
11010
11011 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
11012
11013         * reflection.c: handle types and boxed objects in custom attr
11014         constructors.
11015
11016 2002-05-30  Martin Baulig  <martin@gnome.org>
11017
11018         * debug-symfile.c
11019         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
11020
11021 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
11022
11023         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
11024         to lookup the implmap row for a P/Invoke method.
11025         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
11026         P/Invoke method from the runtime on an as needed basis.
11027
11028 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
11029
11030         * metadata.c (mono_metadata_parse_signature): impl.
11031
11032 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11033
11034         * class.c: handle .pack directive.
11035
11036 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11037
11038         * object.c: initialize static fields with RVA data.
11039
11040 2002-05-25  Martin Baulig  <martin@gnome.org>
11041
11042         * debug-symfile.c
11043         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
11044
11045 2002-05-24  Martin Baulig  <martin@gnome.org>
11046
11047         * debug-symfile.c
11048         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
11049         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
11050         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
11051
11052 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11053
11054         * object.c: special case string ctros in invoke.
11055         * gc.c: silly whitespace changes.
11056
11057 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
11058
11059         * threadpool.[ch]: impl. a threadpool that can
11060         be used by mint and mono.
11061
11062 2002-05-22  Martin Baulig  <martin@gnome.org>
11063
11064         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
11065         The first argument is now a `MonoReflectionModuleBuilder *', the return
11066         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
11067         `methods' field to get the method builder.  The `token' argument is the
11068         unfixed token.
11069
11070         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
11071         invalid characters instead of g_assert_not_reached()ing.  This seems
11072         to be the behaviour of mscorlib.
11073
11074 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
11075
11076         * object.c (mono_runtime_invoke_array): applied patch from Rachel
11077         Hestilow to fix bug #25104
11078
11079 2002-05-21  Martin Baulig  <martin@gnome.org>
11080
11081         * debug-symfile.c (mono_debug_find_source_location): New function.
11082         Looks up an IL offset in the line number table and returns the source
11083         location as a string.
11084
11085 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11086
11087         * icall.c:
11088         (mono_double_ToStringImpl): changed %f by %g until we have something
11089         better.
11090
11091 2002-05-21  Nick Drochak  <ndrochak@gol.com>
11092
11093         * icall.c : Use different name for Math.Pow's icall.  Needed to check
11094         parameters first in C#.
11095
11096 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11097
11098         * icall.c, reflection.h: added icall to get info about an event.
11099
11100 2002-05-20  Radek Doulik  <rodo@ximian.com>
11101
11102         * object.c (mono_value_box): don't use memcpy for boxing on BIG
11103         endian
11104         (mono_value_box): don't use memcpy for small sizes on
11105         architectures with unaligned access
11106
11107 2002-05-20  Martin Baulig  <martin@gnome.org>
11108
11109         * reflection.c (mono_reflection_setup_internal_class): Don't crash
11110         if `tb->parent == NULL'.
11111         (mono_reflection_create_internal_class): New function.  This is
11112         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
11113         for enum types.
11114
11115         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
11116         New interncall.
11117
11118 2002-05-19  Martin Baulig  <martin@gnome.org>
11119
11120         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
11121         argument to get the length, don't default to the array length.
11122
11123 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
11124
11125         * assembly.c (mono_assembly_setrootdir): New function used to
11126         override the MONO_ASSEMBLIES directory.
11127
11128 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11129
11130         * icall.c: ValueType_GetHashCode() initialize local var.
11131
11132 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11133
11134         * reflection.c: sort custom attributes table.
11135
11136 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11137
11138         * reflection.c: support named args in custom attributes (write support).
11139
11140 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
11141
11142         * reflection.c: fix finally position calculation.
11143
11144 2002-05-15  Radek Doulik  <rodo@ximian.com>
11145
11146         * reflection.c: fixed endianess at many places
11147
11148         * icall.c (ves_icall_InitializeArray): comment out debug msg
11149
11150 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
11151
11152         * object.c (mono_unhandled_exception): new function to handle
11153         unhandled exceptions.
11154         (mono_unhandled_exception): call the UnhandledException event.
11155         (mono_runtime_delegate_invoke): impl.
11156
11157 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
11158
11159         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
11160         returns the RVA, not the direct pointer to the data. Handle the case
11161         when the class size is fixed.
11162
11163 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11164
11165         * reflection.c: fix some endianess issues.
11166
11167 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
11168
11169         * object.c (mono_runtime_invoke): is now able to catch exceptions.
11170
11171         * threads.c (mono_thread_init): added a callback which is invoked
11172         at thread start.
11173
11174 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11175         
11176         * icall.c: make GetHashCode return non-negative values.
11177
11178 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11179
11180         * object.c, icall.c, gc.c: revert to address-based hashcode.
11181
11182 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
11183
11184         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
11185
11186 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11187
11188         * icall.c, class.c: special case <Module>.
11189
11190 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
11191
11192         * icall.c: fix bug in GetNow().
11193
11194 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
11195
11196         * object.c (mono_runtime_class_init): make sure that we call all
11197         static class constructors.
11198
11199 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11200
11201         * reflection.c: sort methodsemantics table.
11202
11203 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11204
11205         * reflection.h, reflection.c: honour init locals setting.
11206
11207 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11208
11209         * icall.c: copied Double ToStringImpl for Single ToStringImpl
11210
11211 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11212
11213         * reflection.c: support ContructorBuilders in attribute blob creation.
11214
11215 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11216
11217         * reflection.c: some changes to build a binary that can be run
11218         directly in windows.
11219
11220 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11221
11222         * loader.c: print a big message when an icall can't be found.
11223
11224 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11225
11226         * string-icalls.c: fix bug 24248.
11227
11228 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11229
11230         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11231         icall.c, reflection.h: separate assembly loading by pathname and by
11232         assembly name. Use the MONO_PATH env var to search for assemblies.
11233
11234 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11235
11236         * assembly.c, image.h: add some support for assemblies
11237         with multiple modules.
11238         * class.c, class.h: export mono_class_from_typeref().
11239         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11240         instead.
11241
11242 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11243
11244         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11245         documentation says (the ECMA one is correct).
11246
11247 2002-05-02  Dick Porter  <dick@ximian.com>
11248
11249         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11250         Don't name the synchronisation mutex.
11251
11252 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11253
11254         * rand.c
11255         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11256         Make the prototypes match.
11257         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11258         Same.
11259
11260         * icall.c
11261         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11262         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11263         all systems have tm.tm_zone, so use strftime() with %Z to print
11264         the timezone abreviation into a temp string.
11265
11266         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11267         rather than mono_array_addr() on a MonoString on Big Endian
11268         machines.
11269
11270 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11271
11272         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11273         fix bug 24041
11274
11275 2002-04-30  Dick Porter  <dick@ximian.com>
11276
11277         * socket-io.c: Cope with SOCKET being an integer rather than a
11278         pointer now.
11279
11280         * threads.c: Added Thread_free_internal, to deal with thread
11281         handle cleanup.  Moved calls to handle_store() and handle_remove()
11282         to start_wrapper(), so each can only be called once.  Allocate
11283         synchronisation blocks with GC_malloc(), and use GC finalisation
11284         to close the handles.
11285
11286         * icall.c: added System.Threading.Thread::Thread_free_internal
11287
11288 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11289
11290         * icall.c: support Environment.Exit, CommandLineArgs().
11291
11292 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11293
11294         * object.c, object.h: added mono_runtime_run_main () and
11295         mono_runtime_get_main_args () for use in System.Environment.
11296
11297 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11298
11299         * gc.c: fix thinko, enable actual finalization since the jit is now
11300         fixed.
11301
11302 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11303
11304         * gc.c, object.c: take into account that an object may be offset wrt the address
11305         returned by GC_malloc().
11306
11307 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11308
11309         * image.c: handle files without entries in the assembly table (modules).
11310
11311 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11312
11313         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11314         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11315         allowed to be null when it's System.Object class setup.
11316
11317 2002-04-27  Martin Baulig  <martin@gnome.org>
11318
11319         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11320         if `tb->parent == NULL' rather than crashing.
11321
11322 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11323
11324         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11325         calling acos() where asin() should have been called.
11326
11327 2002-04-26  Martin Baulig  <martin@gnome.org>
11328
11329         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11330         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11331         there's a subdirectory called `System', but we don't want to read that
11332         subdirectory as an assembly.
11333
11334 2002-04-25  Martin Baulig  <martin@gnome.org>
11335
11336         * debug-symfile.c: Reflect latest MonoString changes.
11337
11338 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11339
11340         * rand.c, rand.h: instance method icalls need to have an explicit
11341         this pointer as first argument in the C implementation.
11342
11343 2002-04-25  Nick Drochak <ndrochak@gol.com>
11344
11345         * icall.c: Fix typo in map for GetNonZeroBytes
11346
11347 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11348
11349         * string-icalls.c : String does now passes unit tests without any 
11350         errors, the following changes has been made:
11351         
11352         Implemented replace methods.
11353         Renaming of methods to (try) follow the standard.
11354         Fixed compare ordinal
11355         Made all memory allocated directly to function instead of via icall function.
11356         Small performance fix in is_in_array function
11357                         
11358  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11359
11360         c (mono_string_Internal_ctor_charp_int_int):
11361         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11362         sindex < 0, throw ArgumentOutOfRangeException instead of
11363         ArgumentNullException.
11364
11365         Added new check for length == 0, however
11366         I need to make it return String.Empty from the C code.
11367         
11368         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11369         that calculate the length for us here.
11370         
11371         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11372         mono_string_new_utf16 with mono_string_new, since value is utf8.
11373
11374 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11375
11376         * object.c: register the object for finalization if needed.
11377         Allocate one more char in the string for the terminating 0 char.
11378
11379 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11380
11381         * class.c, class.h, image.c: check if a type implemenst a destructor.
11382         Use the proper key for array class lookups.
11383         * icall.c: register the icalls in the System.GC class.
11384         * gc.c, gc.h: GC-related functions and icalls.
11385
11386 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11387
11388         * icall.c:
11389         * socket-io.c:
11390         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11391         changed a couple of free () by g_free ().
11392
11393         * decimal.c: one-liner in the comments for decimal2string ().
11394
11395 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11396
11397         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11398
11399 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11400
11401         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11402         * object.c (mono_runtime_invoke_array) : handle null in params
11403
11404 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11405
11406         * string-icalls.c: fixed bug in split (one off bug)
11407
11408 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11409
11410         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11411         * icalls.c: added String::Equals as internal method
11412
11413 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11414
11415         * threads.c: fixed bug in the double interlocked functions
11416
11417 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11418
11419         * threads.c: implemented all of the new interlocked icalls.
11420         * string-icalls.c: fix a bug in insert.
11421         * icalls.c: added the icalls for interlocked, removed old string functions.
11422         
11423 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11424
11425         * loader.c: fix off-by-one error when reading argument names.
11426
11427 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11428
11429         * profiler.c: win32 counter implementation (untested).
11430         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11431         (the latter needs testing and more complete impl. from win32 folks).
11432
11433 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11434
11435         * object.c: mono_array_new_full workaround mono_array_class_get
11436         problem.
11437
11438 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11439
11440         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11441         * object.h (mono_string_chars): Changed casting type.
11442
11443 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11444
11445         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11446                            method signatures to use gunichar2 instead of gint16.
11447
11448 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11449
11450         * object.h, object.c: domain-specific versions of mono_object_new and
11451         mono_array_new.
11452
11453 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11454
11455         * object.c: changed String layout
11456
11457         * string-icalls.c (mono_string_Internal_ctor_chara): added
11458         internal string constructors.
11459
11460 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11461
11462         * threads.c: pass 'this' to the thread start routine.
11463
11464 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11465
11466         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11467         InternalCompareStr don't call twice mono_string_cmp_char for the last
11468         character. Improved performance in mono_string_cmp_char.
11469
11470 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11471
11472         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11473         code into its own library: libmonoruntime.
11474
11475 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11476
11477         * object.h, object.c: changed array format so that szarrays do not
11478         require a bounds structure.
11479         * icall.c, appdomain.c: support for new szarray format.
11480
11481 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11482
11483         * metadata.c: compare also the retuns type when comparing signatures:
11484         we didn't do this as an optimization since really overloaded methods
11485         must differ also in the arguments, but this doesn't work with
11486         low-level IL code (or when using explicit conversion operators: see
11487         bug#23498 for an example).
11488
11489 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11490
11491         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11492
11493 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11494
11495         * icall.c: make MonoType::GetElementType its own icall.
11496
11497 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11498
11499         * icall.c: remove MonoMethod_get_Name().
11500         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11501         object.
11502
11503 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11504
11505         * string-icalls.c: optimized a few methods.
11506
11507 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11508
11509         * icall.c: added all new string internal calls
11510         * string-icalls.c: added, new string internal call implementation.
11511         * object.c: added mono_string_new_size for allocating a string a size
11512
11513 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11514
11515         * object.c (mono_object_isinst): use the same code as in the
11516         optimized x86 version.
11517
11518 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11519
11520         * profiler.c: TSC-based timer code (faster and more accurate).
11521         Not hooked up in configure, yet (set USE_X86TSC to 1).
11522
11523 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11524
11525         * profiler.c, profiler.h: track time spent compiling methods.
11526         * threads.c: track thread creation/destruction.
11527
11528 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11529
11530         * profiler.c, profiler.h, profiler-private.h: profiling interface
11531         and sample implementation. Moved here so that it can be used also by
11532         the jit.
11533
11534 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11535
11536         * reflection.c, reflection.h: keep types and other handles separate in
11537         the hash tables for referred tokens. Add guid for modules.
11538
11539 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11540
11541         * assembly.c: fix bugs found with valgrind.
11542         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11543
11544 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11545
11546         * threads: added icall support for getting current domain for
11547                    the thread.
11548  
11549 2002-04-13  Martin Baulig  <martin@gnome.org>
11550
11551         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11552         (MonoDebugVarInfo): Added `index' field for register based addresses.
11553         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11554         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11555         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11556         `MonoDebugVarInfo *this_var'.
11557
11558         * debug-symfile.c (relocate_variable): New static function to write
11559         a location description for a local variable or method parameter.
11560
11561 2002-04-12  Martin Baulig  <martin@gnome.org>
11562
11563         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11564         stack offset and begin/end scope address of a local variable.
11565         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11566         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11567         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11568
11569         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11570         Added new relocation types for start/end scope of a local variable.
11571
11572 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11573
11574         * object.h: add mono_object_domain() macro.
11575         * reflection.c: handle typespecs.
11576         * icall.c: MonoMethod::get_Name() implementation.
11577
11578 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11579
11580         * icall.c: String::GetHashCode() icall implementation.
11581
11582 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11583
11584         * icall.c: String::IndexOfAny icall.
11585         * object.c, object.h: make array->max_length more useful.
11586         Intrduced mono_object_class() and mono_string_length() macros.
11587
11588 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11589
11590         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11591         instead of g_unichar_isdigit.
11592
11593 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11594
11595         * icall.c: Implement a simple Double.ToString().
11596
11597 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11598
11599         * appdomain.h: only io-layer.h is supposed to be included.
11600         * icall.c: explicitly import environ. Fix warning.
11601
11602 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11603
11604         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11605                 return true even if it's not Daylight Savings time.
11606                 Only return false for the case where the function isn't
11607                 implemented for a plaform (read Windows).
11608
11609 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11610
11611         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11612         data with a mutex.
11613
11614 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11615
11616         * mempool.c (mono_mempool_alloc): only use g_malloc when
11617         absolutely necessary.
11618
11619 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11620
11621         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11622
11623         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11624         (mono_class_proxy_vtable): use domain mempool
11625
11626 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11627
11628         * appdomain.h, appdomain.c: split initialization that requires the
11629         execution engine support into mono_runtime_init().
11630
11631 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11632
11633         * class.c (mono_class_init): don't include vtable inside MonoClass
11634         to save some memory, gather some statistics.
11635         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11636
11637 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11638
11639         * icall.c: internalcall implementation for ValueType.Equals().
11640
11641 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11642
11643         * object.c (mono_message_init): moved 
11644         (mono_runtime_exec_main): new arch. independent impl.
11645         (mono_runtime_invoke_array): new method - like
11646         mono_runtime_invoke, but you can pass an array of objects.
11647         (mono_remoting_invoke): new arch. independent impl.
11648         (mono_message_invoke): new arch. independent impl.
11649         (mono_runtime_class_init): new arch. independent impl.
11650         (mono_runtime_object_init): new arch. independent impl.
11651
11652 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11653
11654         * metadata.c, object.c, reflection.c: documented the exported
11655         functions.
11656
11657 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11658
11659         * icall.c: simpler code to pass the assembly builder data to corlib.
11660         Implement GetNestedTypes() internalcall.
11661
11662 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11663
11664         * class.c: warn if a type can't be loaded.
11665
11666 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11667
11668         * image.h: typedef MonoImageOpenStatus
11669         * types.h: removed unused file
11670         
11671 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11672
11673         * icall.c: Enum_ToObject accepts enum value arguments.
11674
11675 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11676
11677         * class.c: move initialization of properties, events and nested
11678         classes, so that they happen for interfaces, too.
11679
11680 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11681
11682         * icall.c: cleanup some ugly casts in Array_SetValue*.
11683
11684 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11685
11686         * icall.c: the values array fro enums is of the correct type, now.
11687         Implement (correctly) getFullName instead of assQualifiedName for
11688         MonoType.
11689         * reflection.h, reflection.c: added mono_type_get_name ().
11690
11691 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11692
11693         * assembly.c, image.h: for each MonoImage, record from wich assembly
11694         it was loaded.
11695         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11696         Make Type.Assembly work.
11697
11698 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11699
11700         * debug-symfile.h: use char* instead of gpointer to avoid
11701         unnecessary casts.
11702
11703         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11704
11705         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11706         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11707
11708 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11709
11710         * icall.c (mono_message_init): impl. (code cleanup)
11711         (ves_icall_InternalExecute): impl. FieldGetter
11712
11713         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11714         defined we call all (non-static)methods through the vtable. 
11715
11716 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11717
11718         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11719         finalizer even though the memory is still referenced (and the chunk of
11720         memory is not freed).
11721
11722 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11723
11724         * assembly.c: fix brokeness.
11725
11726 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11727
11728         * class.c: kill some warnings. Check explicit interface method
11729         implementation also without considering the namespace.
11730         Load also literal strings in static class data.
11731
11732 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11733
11734         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11735         (default_assembly_name_resolver): Make the resolver take the
11736         "base" directory where the assembly was originally defined, so we
11737         can load DLLs that are in the same directory as the assembly that
11738         is being referenced.
11739
11740 2002-03-28  Dick Porter  <dick@ximian.com>
11741
11742         * file-io.h: 
11743         * file-io.c:
11744         * socket-io.c: 
11745         * unicode.h: 
11746         * unicode.c: Warning cleanups
11747
11748 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11749
11750         * object.h, reflection.h: use the correct type instead of MonoObject.
11751
11752 2002-03-28  Martin Baulig  <martin@gnome.org>
11753
11754         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11755         (mono_debug_update_symbol_file): Initialize classes if necessary.
11756
11757 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11758
11759         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11760         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11761
11762 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11763
11764         * assembly.h: fix function prototype.
11765         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11766         * mono-endian.h: use const cast.
11767
11768 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11769
11770         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11771
11772 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11773
11774         * loader.c: don't assert when a typeref can't be loaded, give
11775         a chance to the runtime to trow an exception instead.
11776         * loader.h: fix warning.
11777
11778 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11779
11780         * class.c (mono_class_proxy_vtable): added proxy support
11781
11782 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11783
11784         * icall.c: removed last of PAL calls, added System.Environment
11785         * file-io.h, file-io.c: MonoIO implementation
11786         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11787
11788 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11789
11790         * appdomain.c: do not use the byte marker in ldstr table lookup.
11791         * debug-helpers.c: allow two ':' to separate class and method name.
11792         * object.c: allocate arrays bounds with the GC, too.
11793         * verify: add a few more checks.
11794
11795 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11796
11797         * reflection.c: output also literal strings. Allocate parameter data
11798         with GC_malloc() (thanks, Martin, for catching this!).
11799
11800 2002-03-26  Martin Baulig  <martin@gnome.org>
11801
11802         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11803         include the `this' offset in the `param_offsets'.
11804
11805 2002-03-25  Martin Baulig  <martin@gnome.org>
11806
11807         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11808         mono_debug_get_class() function to get the classes. Added new
11809         relocation types for arrays and strings.
11810         (mono_debug_get_class): New static function to search in all
11811         referenced assemblies for a metadata token.
11812
11813         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11814
11815 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11816
11817         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11818         hold gc-allocated objects. Make the string heap a stream like the
11819         others. Removed duplicated code when writing stream info.
11820         Added asserts to catch possible buffer overflows. Set the sorted map
11821         for tables that need sorting. Added some documentation.
11822
11823 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11824
11825         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11826         for interned strings and vtables.
11827
11828 2002-03-24  Martin Baulig  <martin@gnome.org>
11829
11830         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11831         it in the array since it was created with g_slist_prepend().
11832
11833 2002-03-24  Martin Baulig  <martin@gnome.org>
11834
11835         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11836         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11837         (mono_debug_method_from_token): Renamed to
11838         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11839         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11840
11841         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11842         relocation types.
11843
11844         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11845
11846 2002-03-24  Martin Baulig  <martin@gnome.org>
11847
11848         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11849         (mono_debug_method_from_token): New func.
11850
11851         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11852         New interncall, calls mono_debug_local_type_from_signature().
11853         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11854         calls mono_debug_method_from_token().
11855
11856 2002-03-23  Martin Baulig  <martin@gnome.org>
11857
11858         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11859         specifies the number of bytes to be converted, not the array size.
11860         Return the number of chars, not the number of bytes.
11861         (ves_icall_iconv_get_chars): The `byteCount' argument
11862         specifies the number of bytes to be converted, not the array size.
11863
11864 2002-03-23  Martin Baulig  <martin@gnome.org>
11865
11866         * reflection.h (MonoReflectionSigHelper): New type.
11867
11868         * reflection.c (mono_reflection_sighelper_get_signature_local),
11869         (mono_reflection_sighelper_get_signature_local): New functions.
11870
11871         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11872         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11873         interncalls.
11874
11875 2002-03-23  Martin Baulig  <martin@gnome.org>
11876
11877         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11878         is_writeable is set.
11879         (mono_raw_buffer_update): New function to write the modified map
11880         back to disk.
11881
11882         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11883
11884         * debug-symfile.c (mono_debug_update_symbol_file): Call
11885         mono_raw_buffer_update() when done writing.
11886
11887 2002-03-23  Martin Baulig  <martin@gnome.org>
11888
11889         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11890
11891         * debug-symfile.c: Added support for arguments and local variables.
11892
11893 2002-03-23  Dick Porter  <dick@ximian.com>
11894
11895         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11896         protected by ifdefs, hence breaking the w32 build.
11897
11898 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11899
11900         * object.c: implement is_interned() the right way.
11901
11902 2002-03-21  Martin Baulig  <martin@gnome.org>
11903
11904         * debug-symfile.[ch]: New files to handle debugging information
11905         files. There's also support to dynamically update these symbol
11906         files to include machine dependent information.
11907
11908 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11909
11910         * threads.c (mono_thread_create): new function to create thread
11911         from C
11912
11913 2002-03-20  Martin Baulig  <martin@gnome.org>
11914
11915         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11916         method is a constructor.
11917         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11918         points to ves_icall_InternalInvoke().
11919
11920 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11921
11922         * file-io.c: Flush shouldn't throw exceptions.
11923
11924 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11925
11926         * file-io.c: FileStream flush support; FileSetLength now
11927         restores file pointer.
11928
11929 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11930
11931         * class.c: set image for pointer classes.
11932
11933 2002/03/19  Nick Drochak <ndrochak@gol.com>
11934
11935         * sysmath.c: Forgot one.
11936
11937 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11938
11939         * sysmath.c: Avoid redefining existing names.
11940
11941 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11942
11943         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11944         handled by runtime as icall rather than dllimport from libm.so
11945         * file-io.c, file-io.h: fixed handle argument type.
11946
11947 2002-03-18  Dick Porter  <dick@ximian.com>
11948
11949         * reflection.c (mono_image_get_type_info): rename interface to
11950         iface, because of "#define interface struct" on windows.
11951
11952 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11953
11954         * class.c, class.h: rename and export mono_ptr_class_get().
11955         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11956         * reflection.c, reflection.h, icall.c: better/saner type name
11957         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11958         method signatures.
11959
11960 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11961
11962         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11963
11964         * icall.c (ves_icall_InternalInvoke): impl.
11965
11966 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11967
11968         * reflection.c: output the interface map table, too.
11969
11970 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11971
11972         * class.c (class_compute_field_layout): separate computation of 
11973         static field layout
11974
11975 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11976
11977         * icall.c: added System.Buffer support.
11978         * file-io.c: moved file icalls from PAL to FileStream.
11979
11980 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11981
11982         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11983
11984 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11985
11986         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11987
11988 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11989
11990         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11991
11992 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11993
11994         * debug-helpers.{c,h}: moved here from monograph some useful functions
11995         to locate a method by name/signature in a class or image. Included
11996         also a small and flexible IL disassembler.
11997
11998 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11999
12000         * reflection.c: fixup tokens in methods with small header size, too.
12001
12002 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
12003
12004         * object.c (mono_string_to_utf8): remove assert(!error), instead
12005         print a warning. 
12006
12007 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
12008
12009         * icall.c: update to the new mono_Array_class_get interface.
12010
12011 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12012
12013         * appdomain.c, object.c: Boehm-GC enable.
12014         * icall.c: make get_data_chunk() support split data requests.
12015         Ensure a class is initialized in more cases. Return only the first
12016         property found in GetProperties() or the compiler gets confused. 
12017         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
12018         * reflection.h, reflection.c: add fixup mechanism for field and method
12019         tokens. Initialize assembly->typeref in a single place. Output
12020         properties after events. Support custom attributes for events, too.
12021         Typo fix for paramter custom attrs.
12022
12023 2002-03-07  Martin Baulig  <martin@gnome.org>
12024
12025         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
12026
12027 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
12028
12029         * class.c (mono_array_class_get): fix. for multi. dim. arrays
12030
12031 2002-03-06  Martin Baulig  <martin@gnome.org>
12032
12033         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
12034         non-zero lower bounds. See testcases #F10-#F13.
12035
12036 2002-03-05  Martin Baulig  <martin@gnome.org>
12037
12038         * exception.c (mono_get_exception_argument_out_of_range): New exception.
12039
12040         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
12041         ves_icall_System_Array_GetValue(), only calculate the absolute array position
12042         here.
12043         (ves_icall_System_Array_SetValue): Likewise.
12044         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
12045         as argument and does the actual work. This function is used when copying a
12046         multi-dimensional array.
12047         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
12048         now do all the widening conversions of value types.
12049         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
12050
12051 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12052
12053         * class.c: remove some magic numbers and use the smbolic names,
12054         instead. Added init_events() to load event info at class init time.
12055         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
12056         and mono_metadata_methods_from_event().
12057         * reflection.h, reflection.c: added support for writing out the evnets
12058         related information.
12059
12060 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
12061
12062         * reflection.h, icall.c: use a different method (GetInterfaces)
12063         to gather interface info and add isbyref, isprimitive and
12064         ispointer to the ves_icall_get_type_info() return value.
12065
12066 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12067
12068         * class.h: stared adding support for events.
12069         * icall.c: split find_members implementation. Added debug icall to get
12070         the address of an object.
12071         * reflection.c: handle TypeBuilders in mono_type_get_object().
12072
12073 2002-03-01  Martin Baulig  <martin@gnome.org>
12074
12075         * icall.c (ves_icall_System_Array_GetLength): This must throw an
12076         ArgumentOutOfRangeException(), not an ArgumentException().
12077         (ves_icall_System_Array_GetLowerBound): Likewise.
12078         (ves_icall_System_Array_GetValue): Improved argument checking.
12079         (ves_icall_System_Array_SetValue): Improved argument checking.
12080
12081 2002-03-01  Martin Baulig  <martin@gnome.org>
12082
12083         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
12084         called with invalid arguments rather than just dying with g_assert().
12085         (ves_icall_System_Array_SetValue): Likewise.
12086         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
12087         raise a NotImplementedException instead.
12088         (ves_icall_System_Array_GetLength): Added argument checking.
12089         (ves_icall_System_Array_GetLowerBound): Added argument checking.
12090
12091 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
12092
12093         * object.h (mono_assert): new macros mono_assert and
12094         mono_assert_not_reached
12095
12096 2002-02-28  Martin Baulig  <martin@gnome.org>
12097
12098         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
12099         and "System::String::IsInterned" to "System::String::_IsInterned".
12100
12101 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
12102
12103         * icall.c: remove hacks for typebuilder. Added icall to create a
12104         modified type from a tybebuilder.
12105         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
12106         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
12107         to create a backing MonoClass for a TypeBuilder.
12108
12109 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12110
12111         * class.c, class.h: more refactoring of class init.
12112         Export mono_class_setup_mono_type() and mono_class_setup_parent().
12113
12114 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
12115
12116         * marshal.c, marshal.h: start of marshaling interface.
12117
12118 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12119
12120         * icall.c: fix order in assembly qualified name icall.
12121
12122 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12123
12124         * class.c: do not free str, since we store it in the hash table.
12125         * reflection.h: add label field to MonoILExceptionInfo.
12126         * reflection.c: handle references to more than one assembly. Handle
12127         case when there isn't a module created in the assembly.
12128
12129 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
12130
12131         * class.c: Fix typo. Start refactoring of class init code.
12132
12133 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
12134
12135         * appdomain.c: exit with 1 on error.
12136         * class.c: we already have the name in MonoClassField.
12137         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
12138         MonoStreamHeader instead of an offset of image->raw_metadata.
12139
12140 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
12141
12142         * appdomain.c (mono_init): Be even more descriptive about the error.
12143
12144 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
12145
12146         * appdomain.c: give the user an informative message when corlib can't
12147         be loaded.
12148
12149 2002-02-26  Martin Baulig  <martin@gnome.org>
12150
12151         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12152         New icall to get the time zone data.
12153
12154 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12155
12156         * reflection.c: set virtual and raw size of section correctly.
12157         * threads.c: transfer domain information to newly created threads.
12158
12159 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12160
12161         * class.c: when instancing a class in a domain, load the default
12162         vaules for static fields from the constant table. Fix System.Enum to
12163         not be an enum.
12164         * icall.c: implement Object::GetType() internalcall. Implemented
12165         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
12166         Fixed checking of binding flags in find_members().
12167         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
12168         * reflection.c: handle enumerations when writing to the constant
12169         table. Use a different object cache for types.
12170
12171
12172 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
12173
12174         * object.c (mono_object_isinst): fix for arrays
12175
12176         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
12177
12178 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12179
12180         * object.c: don't use mprotect ()  and fix intern pool hash table
12181         lookup for big endian systems.
12182
12183 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12184
12185         * icall.c: change type_is_subtype_of () signature.
12186
12187 2002-02-21  Mark Crichton  <crichton@gimp.org>
12188
12189         * rand.c, rand.h: Added random number generator for
12190         System.Security.Cryptography classes.
12191
12192         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12193
12194         * icall.c: Added System.Security.Cryptography calls.
12195
12196 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12197
12198         * class.c, icall.c, metadata.c: better support for pointer types.
12199         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12200         * reflection.c: Add support for getting custom attrs for properties
12201         and simplify some code.
12202
12203 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12204
12205         * icall.c: change getToken () and add custom attribute GetBlob()helper
12206         method.
12207         * reflection.h: add custom attrs array to the reflection builder structures.
12208         * reflection.c: encode and emit custom attributes for all the relevant
12209         reflection objects. Cache fieldref and methodref tokens. Change
12210         mono_image_create_token() interface to take a MonoDynamicAssembly.
12211         More complete custom attributes decoder. Load custom attributes for
12212         Assembly, Field, Method and Constructor objects, too. Make the
12213         returned array an Attribute[] one, not object[]. Added
12214         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12215         custom attribute constructor.
12216
12217 2002-02-20  Dick Porter  <dick@ximian.com>
12218
12219         * icall.c:
12220         * rawbuffer.c:
12221         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12222         problem code out for now).
12223
12224 2002-02-19  Radek Doulik  <rodo@ximian.com>
12225
12226         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12227
12228 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12229
12230         * icall.c: register the GetCustomAttributes method.
12231         * object.c, object.h: add mono_string_new_len ().
12232         * reflection.h, reflection.c: added mono_runtime_invoke(),
12233         mono_install_runtime_invoke(). Added
12234         mono_reflection_get_custom_attrs () to load custom attributes and
12235         create the attribute objects.
12236
12237 2002-02-19  Dick Porter  <dick@ximian.com>
12238         * threads-dummy-types.c:
12239         * threads-dummy-types.h:
12240         * threads-dummy.c:
12241         * threads-dummy.h:
12242         * threads-pthread-types.c:
12243         * threads-pthread-types.h:
12244         * threads-pthread.c:
12245         * threads-pthread.h:  Deleted obsolete files
12246
12247 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12248
12249         * class.c (mono_class_vtable): runtime init the class when we
12250         allocate static class data.
12251
12252         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12253
12254         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12255         and String - but we will need generic marshalling support in the
12256         future. 
12257         (mono_init): set the domain name in a ms compatible way
12258
12259         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12260         String[].
12261
12262 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12263
12264         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12265         for sizes
12266
12267         * appdomain.c (mono_domain_unload): impl.
12268
12269 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12270
12271         * appdomain.c, object.c: fix intern pool implementation.
12272         * class.c: fix alignment code.
12273
12274 2002-02-16  Radek Doulik  <rodo@ximian.com>
12275
12276         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12277         and s2 > s1, just copy lower bytes to be compatible with little
12278         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12279         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12280
12281         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12282         force big_endian to be 1 for big endian machines 
12283         (ves_icall_iconv_new_decoder): ditto
12284
12285 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12286
12287         * socket-io.c (convert_sockopt_level_and_name): If the system
12288         doesn't define SOL_IP or SOL_TCP, get them by hand using
12289         getprotobyname() and caching the values (because this could be a
12290         slow operation).
12291         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12292         Use the appropriate struct when the system does support it. Ie,
12293         not all systems have struct ip_mreqn so use struct ip_mreq when
12294         appropriate.
12295
12296 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12297
12298         * reflection.c: handle finally clauses.
12299
12300 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12301
12302         * socket-io.c: use g_snprintf() instead of snprintf.
12303
12304 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12305
12306         * reflection.c (mono_param_get_objects): Cast second argument to
12307         mono_method_get_param_names to a const char** to silence the
12308         compiler warning.
12309
12310         * appdomain.c (mono_domain_assembly_open): Put parens around the
12311         truth statement in the for-loop.
12312
12313         * unicode.c (iconv_convert): Got rid of a compiler warning about
12314         int i being unused when the system has a new iconv.
12315         (iconv_get_length): Same.
12316
12317         * image.c (load_class_names): Cast the second argument to
12318         g_hash_table_insert() to char* to hush compiler warnings about the
12319         arg being a const.
12320         (mono_image_open): Same here.
12321
12322         * socket-io.c: Don't conditionally include sys/filio.h or
12323         sys/sockio.h here anymore since we now get them from
12324         io-layer/io-layer.h
12325         (inet_pton): If the system doesn't support inet_aton, implement
12326         using inet_addr and also #define INADDR_NONE if it isn't defined
12327         by the system.
12328
12329 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12330
12331         * metadata.c, metadata.h: added function to get packing and size info
12332         of a typedef.
12333         * reflection.h, reflection.c: handle field RVA data. Save info about
12334         the table layout if needed. Assign typedef indexes to all the types
12335         before dumping the info about them to avoid forward reference problems.
12336
12337 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12338
12339         * socket-io.c (convert_sockopt_level_and_name): ifdef
12340         SO_ACCEPTCONN because it is not defined on my system (old debian)
12341
12342 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12343
12344         * opcode.c: use stddef.h to get NULL.
12345
12346 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12347
12348         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12349         for FIONBIO, FIONREAD and SIOCATMARK.
12350         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12351         define INADDR_NONE and besides, inet_addr() is deprecated and
12352         should not be used. Use inet_pton() instead - it also has the
12353         added bonus that it can easily handle IPv6 addresses as well.
12354         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12355
12356 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12357
12358         * decimal.c: remove _MSC_VER conditional.
12359
12360 2002-02-13  Dick Porter  <dick@ximian.com>
12361
12362         * socket-io.c: 
12363         * icall.c: Internal calls for Blocking, Select, Shutdown,
12364         GetSocketOption and SetSocketOption
12365
12366 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12367
12368         * assembly.cs: better resolver: use it instead of some kludgy
12369         code.
12370
12371 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12372
12373         * reflection.c: the best way to speed-up the compiler is to avoid
12374         infinite loops.
12375
12376 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12377
12378         * class.c (mono_class_vtable): changed the object layout
12379         (obj->vtable->class). 
12380         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12381
12382 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12383
12384         * assembly.c: look for assemblies in the assembly dir, too.
12385
12386 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12387
12388         * class.c: fix thinko in mono_class_from_type().
12389
12390 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12391
12392         * exception.h, exception.c: added TypeLoadException.
12393         * object.h, object.c: added mono_array_clone ().
12394         * icall.c: handle throwOnError in AssemblyGetType().
12395         Added Array.Clone().
12396         * opcode.h, opcode.c: use a single value for the opcode val.
12397         Compile fix for non-gcc compilers.
12398
12399 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12400
12401         * opcodes.c, opcodes.h: export interesting info about opcodes.
12402
12403 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12404
12405         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12406         icalls. 
12407
12408         * class.c (class_compute_field_layout): set element_class for enums
12409         (mono_class_create_from_typedef): set element_class for normal classes
12410
12411         * icall.c (ves_icall_System_Enum_get_value): impl.
12412
12413         * class.c (mono_class_create_from_typedef): do not set valuetype
12414         flag for System.ValueType and System.Enum
12415
12416 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12417
12418         * unicode.c (iconv_convert): fix big endian problem.
12419
12420 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12421
12422         * class.c: add asserts if we are ever going to scribble over memory.
12423         * socket-io.c: not all systems have AF_IRDA defined.
12424
12425 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12426
12427         * class.c (class_compute_field_layout): do not consider static
12428         fields to compute alignment
12429
12430 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12431
12432         * appdomain.c (mono_appdomain_get): impl.
12433         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12434
12435 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12436
12437         * icall.c: ignore "file://" prefix when loading an assembly.
12438
12439 2002-01-23  Dick Porter  <dick@ximian.com>
12440
12441         * socket-io.c:
12442         * icall.c:
12443         * Makefile.am: Added socket support
12444
12445 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12446
12447         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12448         code back.  This should return the assemblies that are loaded by
12449         the runtime on behalf of an application domain. 
12450
12451         The current implementation is still broken, it just returns every
12452         assembly loaded, but until we get real applications domain this
12453         will do.
12454
12455 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12456
12457         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12458         AppDomain object.
12459
12460 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12461
12462         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12463         the mono_class_from_name lookup.
12464         (ves_icall_get_parameter_info): ditto.
12465         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12466         method.
12467         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12468
12469 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12470
12471         * class.c: load also nested classes on class init.
12472         System.ValueType instance methods gets passed boxed
12473         values, unless methods in derived classed that get a pointer to the
12474         data.
12475         * icall.c: use better name parsing code in GetType().
12476         * image.c, image.h: add mono_image_loaded ().
12477         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12478         * reflection.c, reflection.h: added mono_reflection_parse_type().
12479
12480 2002-01-22  Veronica De Santis <veron78@interfree.it>
12481
12482         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12483         * threads.c : Added the implementation of internal calls for events
12484         * threads.h : Added prototypes of internal calls for events
12485         
12486 2002-01-21  Radek Doulik  <rodo@ximian.com>
12487
12488         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12489
12490 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12491
12492         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12493         (mono_class_value_size): use min_align
12494
12495 2002-01-20  Dick Porter  <dick@ximian.com>
12496
12497         * threads.h:
12498         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12499         so it compiles on w32.
12500
12501 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12502
12503         * metadata.c (mono_type_stack_size): impl.
12504
12505         * class.c (mono_class_get_field): impl. memberref token
12506
12507 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12508
12509         * icall.h : Added the internal calls mapping for CreateMutex_internal
12510                     and ReleaseMutex_internal.
12511         * threads.h : Added the prototype of mutexes internal calls.
12512         * threads.c : Added the implementations of mutexes internal calls.
12513
12514 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12515
12516         * metaparse.h: removed unused file.
12517         * reflection.c, reflection.h: added stream_data_align () function 
12518         to align data in streams and keep stream aligned. Add support for
12519         exception support in method headers.
12520
12521 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12522
12523         * unicode.c: make iconv_convert () return the number of bytess written
12524         in the output buffer.
12525
12526 2002-01-15  Dick Porter  <dick@ximian.com>
12527         * threads.c: Make the runtime's idea of infinite timeouts coincide
12528         with the class library's
12529
12530         Fix a particularly egregious bug in mono_thread_cleanup(). That
12531         code was so utterly bogus it must have been written on a Monday.
12532
12533 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12534
12535         * reflection.h: add subtypes field to TypeBuilder.
12536         * reflection.c: encode constants for literal fields.
12537         Handle subtypes. Fix user string token (and add a zero byte)
12538         at the end.
12539         
12540 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12541
12542         * class.c (mono_class_init): bug fix: assign slot numbers for
12543         abstract methods.
12544
12545 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12546
12547         * reflection.c: don't try to output a code RVA for abstract methods.
12548         Small fixes for method header format. Output parameter info to the
12549         ParamDef table. Save method overriding info to MethodImpl table.
12550         Fix property support. Allow typedef.extends to be a type in the
12551         building assembly.
12552         * verify.c: fix off-by-one error.
12553
12554 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12555
12556         * class.c: fix mono_class_from_mono_type () for szarray types.
12557         Remove unused cache check in mono_class_from_type_spec().
12558         * icall.c: *type_from_name () functions handle simple arrays and byref.
12559         * reflection.c: handle byref and szarray types. Handle methods without
12560         body (gets P/Invoke compilation working). Handle types and fields in
12561         get_token ().
12562         * reflection.h: add rank to MonoTypeInfo.
12563
12564 2002-01-10  Dick Porter  <dick@ximian.com>
12565
12566         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12567         internal calls
12568
12569 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12570
12571         * icall.c: initialize class in type_from_handle ().
12572         Loop also in parent classes for get_method ().
12573         * reflection.c: properly encode class and valuetype types.
12574         Start on encoding TypeBuilder types. Handle fieldrefs.
12575         Use correct length when registering a user string.
12576         Handle ConstructorBuilder and MonoMethod in get_token ().
12577         Make mono_type_get_object () aware of cached types.
12578         * object.c: back out change to mono_string_new ().
12579
12580 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12581         * object.c: mono_string_new should return a NULL when the string 
12582         passed in is NULL -- not try to deference it.
12583         
12584 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12585
12586         * icall.c: hack to make IsSubType work for TypeBuilders.
12587         * reflection.c: emit constructors before methods.
12588         Retrieve param names in mono_param_get_objects().
12589
12590 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12591
12592         * Makefile.am: fix list of headers and sources so automake 1.5
12593         doesn't complain. Removed \# at end of list.
12594
12595 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12596
12597         * reflection.c: get token for a method ref. Set return type of
12598         constructor to void.
12599         * loader.c: debug message.
12600         * class.c: typo fix.
12601
12602 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12603
12604         * icall.c: fix array init with rank > 1. FindMembers
12605         loops in parent class as well.
12606         * image.c: do not insert nested types in name cache.
12607         * reflection.c: warning fix.
12608         * reflection.h: add override method (for interface impl).
12609
12610 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12611
12612         * metadata.c: fix customattr decoding.
12613
12614 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12615
12616         * rawbuffer.cs: Added native Win32 implementation, avoids using
12617         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12618
12619 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12620
12621         * class.c: make the low-level routines handle the cache.
12622
12623 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12624
12625         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12626
12627 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12628
12629         * class.c: fix mono_array_element_size() for objects.
12630         * class.h, class.c: add properties to MonoClass and load them
12631         at init time.
12632         * icall.c: check with isinst() when assigning a value to an array
12633         instead of requiring the classes to match exactly.
12634         Implemented icall for System.Type::GetType().
12635         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12636         enums. Handle bindingflags when looking for methods and fields.
12637         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12638         and mono_metadata_methods_from_property().
12639         * reflection.h, reflection.c: added structures for propreties,
12640         parameters and enums. Implemented mono_property_get_object() and
12641         mono_param_get_objects().
12642
12643 2001-12-18  Dick Porter  <dick@ximian.com>
12644
12645         * file-io.c: Use mono_string_to_utf16() instead of
12646         mono_string_chars()
12647
12648         * object.c: Added mono_string_to_utf16(), which copies the non
12649         NULL-terminated MonoString into a new double-null-terminated
12650         buffer.
12651
12652 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12653
12654         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12655
12656 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12657
12658         * file-io.c: raise exceptions if handle is invalid.
12659
12660 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12661
12662         * assembly.c: yet another check for mscorlib.
12663         * class.c, class.h: load nesting info for classes.
12664         * icall.c: many new functions to support the Reflection classes.
12665         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12666         * reflection.h, reflection.c: mono_image_create_token(),
12667         mono_assembly_get_object(), mono_type_get_object(),
12668         mono_method_get_object(), mono_field_get_object(): methods to return
12669         objects that parallel the C representation of assemblies, types,
12670         methods, fields.
12671
12672 2001-12-11  Dick Porter  <dick@ximian.com>
12673
12674         * icall.c:
12675         * file-io.c: Internal calls for file IO.
12676
12677 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12678
12679         * tabledefs.h: missing FileAttributes.
12680         * verify.h, verify.c: use is_valid_string () to simplify and check for
12681         valid strings more correctly. Fix warnings and speeling.
12682         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12683         Check code: branches, maxstack, method calls.
12684
12685 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12686
12687         * object.c (mono_object_allocate): removed static, so that the jit
12688         can allocate value types.
12689
12690         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12691
12692 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12693
12694         * class.c: init enum types right away and register the
12695         token->MonoClass map in mono_class_create_from_typedef ().
12696         * verify.h, verify.c: first cut of the verifier.
12697         * pedump.c: add --verify switch to verify metadata tables.
12698         * tabledefs.h: add some missing enums.
12699
12700 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12701
12702         * class.c (mono_install_runtime_class_init): impl.
12703         (mono_class_init): renamed mono_class_metadata_init to
12704         mono_class_init, also removed the metadata_inited flag
12705
12706         * object.c (mono_object_isinst): use faster algorithm
12707
12708 2001-11-30  Radek Doulik  <rodo@ximian.com>
12709
12710         * mono-endian.h: reverted last change
12711         added function prototypes
12712
12713         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12714         add mono-endian.c back
12715
12716         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12717         for unaligned access, I've mistaked it with endianess. I am
12718         sorry.
12719         (mono_read16): fix reverted endianess
12720         (mono_read64): ditto
12721         (mono_read32): ditto
12722
12723 2001-11-30  Dick Porter  <dick@ximian.com>
12724
12725         * exception.c: Implement mono_exception_from_name()
12726
12727 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12728
12729         * metadata.h, metadata.c: remove params_size and locals_size and their
12730         calculation from the metadata code: they are only usefult to the
12731         interp.
12732
12733 2001-11-29  Radek Doulik  <rodo@ximian.com>
12734
12735         * object.c (mono_ldstr): swap bytes here, it's probably not the
12736         best place, but works for me now, I'll redo it once I know mono
12737         better, also note that I add PROT_WRITE and don't reset back, also
12738         note that it's only affects big endians, so x86 should be OK
12739
12740         * mono-endian.h (read16): use just glib macros for both endians
12741
12742         * mono-endian.c: removed as glib macros are used in in
12743         mono-endian.h so we don't need to care about endianess for read
12744         macros as glib does that for us already
12745
12746 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12747
12748         * class.h, class.h: take minimum alignment into consideration so
12749         that the fields of a class remain aligned also when in an array.
12750
12751 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12752
12753         * loader.h, loader.c: add mono_method_get_param_names().
12754         * class.c: 0-init class fields.
12755
12756 2001-11-26  Dick Porter  <dick@ximian.com>
12757
12758         * icall.c:
12759         * threads-types.h:
12760         * threads.c: New file that handles System.Threading on all platforms
12761
12762         * object.c: 
12763         * object.h: Remove the synchronisation struct from MonoObject,
12764         replace it with a pointer that gets initialised on demand
12765
12766         * Makefile.am: Replace all the system-specific threading code with
12767         a single file that uses the new wrapper library
12768
12769 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12770
12771         * class.c, class.h: add mono_install_trampoline() so that the runtime
12772         can register a function to create a trampoline: removes the ugly
12773         requirement that a runtime needed to export arch_create_jit_trampoline.
12774         * object.h, object.c: added mono_install_handler() so that the runtime
12775         can install an handler for exceptions generated in C code (with
12776         mono_raise_exception()). Added C struct for System.Delegate.
12777         * pedump.c: removed arch_create_jit_trampoline.
12778         * reflection.c: some cleanups to allow registering user strings and
12779         later getting a token for methodrefs and fieldrefs before the assembly
12780         is built.
12781         * row-indexes.h: updates and fixes from the new ECMA specs.
12782
12783 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12784
12785         * class.h, class.c: add enum_basetype field to MonoClass.
12786         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12787         to get index in the constant table reated to a field, param or
12788         property.
12789         * reflection.h, reflection.c: handle constructors. Set public-key and
12790         version number of the built assembly to 0.
12791         * row-indexes.h: update from new ECMA spec.
12792
12793 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12794
12795         * class.h, class.c: add a max_interface_id to MonoClass.
12796         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12797         since it's used to do that. Added mono_type_type_from_obj().
12798         Make GetType() return NULL instead of segfaulting if the type was not
12799         found. Handle simple arrays in assQualifiedName.
12800         * object.h: add a struct to represent an Exception.
12801         * reflection.c: output call convention in method signature.
12802         Add code to support P/Invoke methods and fixed offsets for fields.
12803
12804 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12805
12806         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12807         the value.
12808         * icall.c: use mono_array_addr instead of array->vector: fixes the
12809         reflection image writing.
12810         * reflection.c: init call convention byte to 0 in method signature.
12811         Encode the property signature. Don't output property-related methods
12812         twice. Really process the properties for a type (don't cast a field to
12813         a property, my mom always told me that).
12814         Fix 64 bit issues in pointer alignment in a different and more
12815         readable way.
12816
12817 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12818
12819         * loader.h: Removed type class from MonoDefaults, added monotype
12820
12821         * loader.c: Loaded MonoType, removed loading of Type
12822
12823         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12824         and fills in System.Type._impl with a RuntimeTypeHandle rather
12825         than the actual MonoClass *
12826
12827         (ves_icall_type_from_handle): change from type_class to
12828         monotype_class
12829
12830         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12831         implemented
12832
12833         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12834         implemented
12835
12836         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12837
12838         (ves_icall_System_Reflection_Assembly_GetType): implemented
12839
12840         (ves_icall_System_MonoType_assQualifiedName): implemented
12841
12842         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12843
12844 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12845
12846         * assembly.c (mono_assembly_open): Implement a cache for the
12847         assemblies. 
12848
12849         (mono_assembly_close): only destroy the assembly when the last
12850         reference is gone.
12851         
12852 2001-11-09  Dick Porter  <dick@ximian.com>
12853
12854         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12855
12856 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12857
12858         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12859
12860 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12861
12862         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12863         from Martin Weindel.
12864         * object.h: add mono_string_chars ().
12865
12866 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12867
12868         * reflection.c (build_compressed_metadata): Eliminates warnings
12869         and uses 64-bit clean code.
12870
12871         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12872         (mono_type_equal): Change signature to eliminate warnings.
12873
12874 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12875
12876         * icall.c, loader.c: remove the internalcall array constructors.
12877         Changes to match the new MonoArray structure.
12878         * object.h, object.c: an array object doesn't allocate an extra
12879         vector. Add mono_array_new_full () to create jagged arrays easily.
12880
12881 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12882
12883         * metadata.h, metadata.c: add mono_metadata_field_info () to
12884         retreive all the info about a field from vairous tables.
12885         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12886         * class.h, class.c: augment MonoClassField with more info.
12887         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12888         policy and load a field's RVA if needed.
12889
12890 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12891
12892         * class.c (mono_class_metadata_init): create a trampoline for all
12893         virtual functions instead of actually compiling them.
12894
12895 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12896
12897         * class.h, class.c: include name in MonoClassField.
12898         * class.c: fix fundamental type of System.Object and System.String.
12899         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12900         tokens in ldtoken.
12901         * icall.c: remove internalcalls for the Reflection stuff that is now
12902         done in C# code.
12903         * loader.c: mono_field_from_memberref () implementation.
12904         * mono-endian.c: thinko (s/struct/union/g).
12905         * object.c, object.h: make the mono_string_* prototypes actually use
12906         MonoString instead of MonoObject.
12907         * reflection.c, reflection.h: updates for changes in the reflection
12908         code in corlib: we use C structures that map to the actual C# classes.
12909         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12910         fat method header if needed and use the info from the ILGenerator for
12911         methods. Handle fields in types. Misc fixes.
12912
12913 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12914
12915         * class.c (mono_class_metadata_init): bug fix: always allocate
12916         space for static class data
12917
12918 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12919
12920         * class.c (mono_compute_relative_numbering): use relative
12921         numbering to support fast runtime type checks.
12922
12923 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12924
12925         * class.c (mono_class_create_from_typeref): added debugging output
12926         to print class name when MonoDummy is returned instead of real class
12927
12928 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12929
12930         * class.c (mono_class_metadata_init): interface offset table now
12931         contains pointers into the vtable - this is more efficient for the jit
12932
12933 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12934
12935         * class.c (mono_class_metadata_init): use a temporary vtable (the
12936         old algorithm only worked for the interpreter, but not for the jit)
12937
12938 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12939
12940         * loader.c (method_from_memberref): use mono_class_get to get the
12941         class of an array instead of using System.Array directly.
12942         (mono_get_method): also add MEMBERREF methods to the method cache
12943         which usefull for arrays.
12944
12945 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12946
12947         * pedump.c (arch_compile_method): added to compute vtable entry
12948
12949         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12950         number of interfaces.
12951         
12952         * class.h: merged MonoArrayClass into MonoClass
12953
12954         * class.c (mono_class_create_from_typedef): compute the vtable size and
12955         allocate space to include the vtable inside MonoClass
12956         (mono_class_metadata_init): initialize the vtable
12957
12958 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12959
12960         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12961         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12962         * image.c: endian fixes by Laurent Rioux.
12963         * object.h, object.c: rename MonoStringObject to MonoString and
12964         MonoArrayObject to MonoArray. Change some function names to conform to
12965         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12966         guint16* as first argument, so don't use char*.
12967         Provide macros to do the interesting things on arrays in a portable way.
12968         * threads-pthread.c: updates for the API changes and #include <sched.h>
12969         (required for sched_yield()).
12970         * icall.c: updates for the API changes above.
12971         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12972         platforms that need them.
12973
12974 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12975
12976         * class.c: set the correct type for all the fundamental
12977         type when loading the class.
12978
12979 2001-10-05  Dick Porter  <dick@ximian.com>
12980
12981         * threads-pthread.c (pthread_mutex_timedlock): Simple
12982         compatibility version for C libraries that lack this call.
12983
12984 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12985
12986         * class.c: MonoTypes stored in MonoClass are stored as
12987         fundamental MonoTypes when the class represents a
12988         fundamental type (System.Int32, ...).
12989         The TypeHandle return by ldtoken is a MonoType*.
12990         * icall.c: ves_icall_get_data_chunk () write out all the
12991         PE/COFF stuff. Implement ves_icall_define_method (),
12992         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12993         * image.c: properly skip unknown streams.
12994         * loader.h, loader.c: add type_class to mono_defaults.
12995         * metadata.c, metadata.h: export compute_size () as
12996         mono_metadata_compute_size () with a better interface.
12997         Typo and C&P fixes.
12998         * pedump.c: don't try to print the entry point RVA if there is no entry point.
12999         * reflection.c, reflection.h: many cleanups, fixes, output method
13000         signatures and headers, typedef and typeref info, compress the metadata
13001         tables, output all the heap streams, cli header etc.
13002         * row-indexes.h: typo fixes.
13003
13004 2001-10-04  Dick Porter  <dick@ximian.com>
13005
13006         * object.h: Add a synchronisation mutex struct to MonoObject
13007
13008         * object.c (mono_new_object): Initialise the object
13009         synchronisation mutexes
13010
13011         * icall.c: System.Threading.Monitor internal calls
13012         
13013         * threads-pthread.h:
13014         * threads-pthread.c: System.Threading.Monitor internal calls
13015
13016         * threads-types.h: New file, includes the system-specific thread
13017         structures
13018         
13019         * threads-pthread-types.h:
13020         * threads-pthread-types.c: New files, handle pthread-specific
13021         synchronisation types
13022
13023         * threads-dummy-types.h: 
13024         * threads-dummy-types.c: New files of dummy support for
13025         thread-specific types
13026
13027         * metadata.c:
13028         * image.c:
13029         * pedump.c: include mono-endian.h not endian.h
13030         
13031         * Makefile.am: More threads files.
13032         Name mono-endian.h not endian.h
13033
13034 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
13035
13036         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
13037         stuff and implement a few more bits.
13038         * icall.c: a field needs to be dereferenced twice. Do not use the same
13039         name for two variables in the same scope.
13040         * image.c, image.h: cleanups.
13041
13042 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
13043
13044         * class.c (mono_class_metadata_init): bug fix: compute the right size
13045
13046 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
13047
13048         * icall.c: implemented some of the Reflection internalcalls.
13049         * image.c, image.h: start writing out the PE/COFF image.
13050         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
13051         that does the reverse than decode_blob_size ().
13052         * object.c: use mono_metadata_encode_value (). Move here
13053         temporary implementation of mono_string_to_utf8 ().
13054         * rawbuffer.c: make malloc_map static.
13055
13056 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13057
13058         * metadata.c: fix type comparison for arrays.
13059         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
13060         Added a couple of new classes to monodefaults.
13061         * icall.c: added a couple of Reflection-related internalcalls.
13062         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
13063         Added a byval_arg MonoType to MonoClass.
13064
13065 2001-09-28  Dick Porter  <dick@ximian.com>
13066
13067         * icall.c:
13068         * threads-pthread.h: 
13069         * threads-pthread.c: Implemented internal calls for
13070         LocalDataStoreSlot operations.  Applied mutexes around all shared
13071         data.  Reworked the thread creation and Start() operations to
13072         avoid a race condition.
13073         
13074         * threads-dummy.h:
13075         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
13076
13077 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
13078
13079         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
13080
13081 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
13082
13083         * class.c, loader.c: warn and return NULL instead of erroring out.
13084         * icall.c: added System.AppDomain::getCurDomain().
13085         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
13086
13087 2001-09-25  Dick Porter  <dick@ximian.com>
13088
13089         * threads-pthread.h:
13090         * threads-pthread.c: Implemented timed thread joining and added
13091         System.Threading.Thread::Join_internal internal call
13092
13093         * icall.c: Added System.Threading.Thread::Join_internal internal call
13094
13095         * threads-dummy.h:
13096         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
13097
13098 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
13099
13100         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
13101         mono_string_intern () to implement the semantics of the ldstr opcode
13102         and the interning of System.Strings.
13103         * icall.c: provide hooks to make String::IsIntern and String::Intern
13104         internalcalls.
13105
13106 2001-09-23  Dick Porter  <dick@ximian.com>
13107
13108         * threads-dummy.c: 
13109         * threads-dummy.h: New files of dummy threading routines
13110
13111         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
13112         support code based on system specifics
13113
13114         Rename PTHREAD_LIBS to THREAD_LIBS
13115         
13116 2001-09-23  Dick Porter  <dick@ximian.com>
13117
13118         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
13119         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
13120         internal calls.
13121         (mono_thread_init): Set up a Thread object instance to return when
13122         the main thread calls Thread.CurrentThread
13123         (mono_thread_cleanup): Wait for all subthreads to exit
13124
13125         * icall.c: New internal calls for System.Threading.Thread::Sleep
13126         (including Schedule) and CurrentThread
13127
13128         * threads.h: New file, to insulate thread-specific stuff from the
13129         rest of the code
13130
13131 2001-09-21  Dick Porter  <dick@ximian.com>
13132
13133         * threads-pthread.h: 
13134         * threads-pthread.c: New file, for handling pthreads-style
13135         threading support.  Start() now starts a new thread and executes
13136         the ThreadStart delegate instance.
13137
13138         * icall.c: Added the internalcall for
13139         System.Threading.Thread::Start_internal
13140
13141         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
13142
13143 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
13144
13145         * loader.c: work around the different signatures for delegates
13146         constructors csc generates in compiled code vs the ones compiled in mscorlib.
13147
13148 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13149
13150         * class.h, class.c: add mono_class_get_field_from_name ().
13151         * *: Fix C comments and other ANSI C issues.
13152
13153 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
13154
13155         * endian.h, assembly.c: fix some endianness issues.
13156
13157 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
13158
13159         * loader.h, load.c: add delegate_class to mono_defaults.
13160         Handle runtime provided methods in mono_get_method ().
13161
13162 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
13163
13164         * loader.c (mono_get_method): use pinvoke for internal call
13165
13166         * icall.c: use pinvoke for internal call
13167
13168         * loader.c (method_from_memberref): set the method name
13169
13170 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
13171
13172         * metadata.c: help the compiler generate better code for
13173         mono_class_from_mono_type ().
13174
13175 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
13176
13177         * class.c (mono_class_metadata_init): delayed computing of the
13178         class size to mono_class_metadata_init ()
13179
13180 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
13181
13182         * class.c, class.h: add an interfaces member to MonoClass.
13183         * image.c, image.h: add assembly_name field to MonoImage
13184         from the assembly table.
13185         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
13186
13187 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13188
13189         * class.c: Handle Array in mono_class_from_mono_type ().
13190         * metadata.c, pedump.c: some endian fixes.
13191
13192 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13193
13194         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13195         * metadata.c: fix small problem introduced with the latest commit.
13196
13197 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13198
13199         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13200         We don't need a MonoMetadata pointer anymore to compare signatures in
13201         mono_metadata_signature_equal (), update callers.
13202         Reduced memory usage an number of allocations for MonoMethodHeader and
13203         MonoMethodSignature.
13204
13205 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13206
13207         * metadata.c: added compare for szarray.
13208
13209 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13210
13211         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13212         and add a couple more types to it and mono_defaults. Give an hint on
13213         classes that need implementing in our corlib and are referenced
13214         in mscorlib.
13215
13216 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13217
13218         * class.h, class.c: keep track if a class is also an Enum.
13219         * loader.c: Implement a couple more types for use in libffi
13220         marshalling. Gives better diagnostics when failing to dlopen
13221         a library. Set method->klass for P/Invoke methods, too.
13222
13223 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13224
13225         * class.c, class.h: add a MonoType this_arg to MonoClass that
13226         represents a pointer to an object of the class' type that
13227         can be used by the interpreter and later the type cache.
13228         Add best guess alignment info for valuetype objects.
13229
13230 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13231
13232         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13233         into MonoType: one less level of indirection and allocation and
13234         simplifies quite a bit of code. Added cache for MonoTypes that are
13235         used frequently, so that we don't need to allocate them all the time.
13236
13237 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13238
13239         * class.c (mono_class_create_from_typedef): System.Enum is also a
13240         value type, although it does not derive from System.ValueType
13241         (maybe a bug in the ms compiler?)
13242
13243         * metadata.c (mono_type_size): return the right size for value types
13244
13245         * loader.c (mono_get_method): only initialize method header if not abstract
13246
13247         * class.c (mono_class_from_mono_type): use mono_default values. 
13248
13249 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13250
13251         * *: use MonoClass pointers instead of <type_tokens>
13252         
13253         * class.h: new flag: metadata_inited.
13254
13255         * class.c (mono_class_metadata_init): impl.
13256         (mono_class_instance_size): impl.
13257         (mono_class_data_size): impl.
13258
13259 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13260
13261         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13262         MonoClass now has the name and name_space fields. 
13263         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13264         mono_get_method () takes and optional MonoClass as argument.
13265         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13266         instead that takes advantage of a map from class names to typedef
13267         tokens in MonoImage.
13268
13269 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13270
13271         * metadata.c: zero is not a valid alignment boundary.
13272         Merge MONO_TYPE_VOID in default decoding code.
13273
13274 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13275
13276         * image.h: merged MonoMetadata into MonoImage
13277
13278         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13279         identify the type of elements.
13280
13281 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13282
13283         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13284         * cil-coff.h: split MonoMSDOSHeader and add size info.
13285         * image.c: add some consistency checks.
13286         * metadata.c: fix row size computation: one programmer
13287         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13288         add explanation for the locator routine.
13289         Fix decoding of size in method header.
13290         
13291 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13292
13293         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13294         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13295         function from gnome-libs.  This uses the right path separator
13296         based on the OS, and also works around a bug in some systems where
13297         a double slash is not allowed. 
13298         (default_assembly_name_resolver): Use g_concat_dir_and_file
13299         (mono_assembly_open): ditto.
13300
13301 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13302
13303         * metadata.c (mono_metadata_signature_equal): impl.
13304
13305         * *: void is now a realy MonoType (instead of using NULL)
13306         
13307         * metadata.c (do_mono_metadata_parse_type): use
13308         mono_metadata_parse_type to parse void value.
13309
13310 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13311
13312         * metadata.c, metadata.h: in the signature and method header store
13313         only the space required for holding the loca vars and incoming arguments.
13314
13315 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13316
13317         * metadata.c (do_mono_metadata_parse_type): treat void like any
13318         other type (instead of assigning NULL);
13319
13320 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13321
13322         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13323
13324 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13325
13326         * image.c (do_mono_image_open): added a cache for arrays.
13327
13328 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13329
13330         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13331         decode a single column from a row in a metadata table and changes
13332         to take advantage of it in the typedef locator (gives a nice speed up).
13333         Store offset info for function params.
13334
13335 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13336
13337         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13338
13339 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13340
13341         * assembly.c: how could mono_assembly_close () had ever worked?
13342         * metadata.c, metadata.h: provide offset info for local vars.
13343         Implement mono_type_size () to take care of alignment as well
13344         as size (it was mono_field_type_size in cli/class.c before).
13345
13346 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13347
13348         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13349
13350         * assembly.h (CORLIB_NAME): set to corlib.dll
13351
13352         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13353
13354 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13355
13356         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13357         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13358         tokentype.h: massive namespace cleanup.
13359
13360 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13361
13362         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13363
13364 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13365
13366         * metadata.c (mono_metadata_free_type): added check for type !=
13367         NULL (void) before calling mono_metadata_free_type()
13368
13369 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13370
13371         * metadata.h, row_indexes.h: added header with enumerations to use
13372         to index in the columns from tables in metadata and to decode coded
13373         tokens: we should start using this instead of embedding magic numbers
13374         all over the code.
13375
13376 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13377
13378         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13379         Move metadata_t info from cli_image_info_t to MonoImage, where
13380         it's easily accessible. Changed all the uses accordingly.
13381         Added the method and class caches to MonoImage.
13382         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13383         and mono_metadata_decode_value () signature to be more consistent
13384         with the other parse functions (and simplify code). Taken advantage
13385         of zero-length array allocation with GCC. Removed reduntant (and
13386         wrong) MonoFieldType struct and use MonoParam instead. Changed
13387         mono_metadata_parse_field_type () to use common code for parsing.
13388         Added mono_metadata_typedef_from_field () and
13389         mono_metadata_typedef_from_method () to lookup a typedef index from a
13390         field or method token.
13391         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13392
13393 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13394
13395         * metadata.c (mono_metadata_parse_field_type): Implement. 
13396         (do_mono_metadata_parse_type): Split engine from
13397         mono_metadata_parse_type, so that we can create smaller structures
13398         for things that just have one pointer to the MonoType (look at
13399         the MonoFieldType)
13400
13401 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13402
13403         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13404         as Jan Gray found out, it is incorrect. 
13405
13406 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13407
13408         * assembly.c: Implement asssembly loading.  This loads an image
13409         and loads all the referenced assemblies.  Come to think of it, we
13410         could always do lazy loading of the assemblies. 
13411
13412         * image.c (mono_image_open): Keep loaded images in a hashtable.
13413
13414         * image.h (MonoImage): Add reference count.
13415
13416 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13417
13418         * assembly.c (mono_assembly_open): Keep track of the file name in
13419         case the assembly has no ASSEMBLY table.
13420
13421         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13422         from get.c here.
13423
13424 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13425
13426         * metadata.c, metadata.h: decode local vars in method header
13427         parse function. Change callers accordingly.
13428
13429 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13430
13431         * metadata.h, cil-coff.h: protect against multiple inclusion.
13432         Added some new structures to hold information decoded from metadata:
13433         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13434         and relevant decoding/free functions.
13435         * metadata.c: implement decoding functions. Add warning for out of bounds
13436         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13437         all the info about a method signature and invocation. Remove check on
13438         uninitialized local var in parse_mh() and fix memory leak.
13439
13440 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13441
13442         * metadata.h: More macros.
13443
13444         * tokentype.h: New file.
13445
13446 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13447
13448         * assembly.c: added a consistency check and initialize
13449         some structures with g_new0().
13450         * metadata.c: fixed a couple more bugs in table size computation
13451         and add other checks for out-of bound access to metadata.
13452
13453 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13454
13455         * metatada.c: fix bugs computing table sizes. Spew a
13456         warning when index in string heap is out of bounds.
13457
13458 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13459
13460         * metadata.h: Add a couple of macros to manipulate tokens. 
13461
13462 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13463
13464         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13465         cli_section_tables).
13466
13467 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13468
13469         * metadata.c (mono_metadata_user_string): New function, provides
13470         access to the UserString heap. 
13471
13472 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13473
13474         * metadata.c: Add inline documentation.
13475
13476 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13477
13478         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13479         files. 
13480
13481 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13482
13483         * typeattr.h: New file, TypeAttribute flags. 
13484
13485 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13486
13487         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13488         mono_assembly_ensure_section): Section loading code.
13489         (load_section_tables): Load the sections.
13490
13491         * mono/metadata/metadata.c (mono_metadata_locate_token,
13492         mono_metadata_locate): Functions to locate the information
13493         definition given a token or a table and an index.
13494         (mono_metadata_compute_table_bases): New.
13495         (compute_size): New function to compute the sizes of the various
13496         tables.
13497
13498         * mono/metadata/metadata.h: Finish listing the different index
13499         types. 
13500
13501         * mono/metadata/pedump.c: Improve to dump new information.
13502
13503 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13504
13505         * mono/metadata/metadata.c: Entered all the tables matching
13506         Beta2. 
13507
13508         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13509