2005-01-18 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / metadata / ChangeLog
1 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
2
3         * reflection.c (mono_method_body_get_object): Handle abstract and
4         runtime methods.
5
6 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7
8         * marshal.c, loader.c, class-internals.h, reflection.c:
9         store the emthod data for a wrapper in an array instead of a list.
10
11 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
12
13         * marshal.c: change the code to allocate memory more
14         conservatively for method wrappers.
15
16 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
17
18         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
19         fields from MonoClass to the marshal info structure where they belong.
20
21 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
22
23         * class.c, object.c, class-internals.h, marshal.c: rearrange
24         some fields and tweak some types to lower memory usage.
25
26 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
27
28         * threads.c (signal_thread_state_change): Handle the case when the
29         target thread is the current thread.
30
31         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
32
33         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
34         emit_ptr_to_object_conv. 
35
36         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
37         marshalling. Fixes #71352.
38
39 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
40
41         * metadata.h, blob.h: move table enum to blob.h so it can be included
42         in any header.
43         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
44         cut the size of MonoImage/MonoDynamicImage.
45
46 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
47
48         * profiler.c (mono_profiler_install_simple): Fix default arguments.
49
50 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
51
52         * reflection.c, reflection.h, icall.c: add a function to check
53         if an attribute type is defined for a metadata object.
54
55 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
56
57         * object-internals.h: Added some needed fields from StringBuilder class.
58         * marshal.c: Set the maxCapacity when creating a StringBuilder.
59
60 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
61
62         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
63         threads before shutting down the runtime.
64
65         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
66
67 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
68
69         * object-internal.h, threads.c: implement stacksize and 
70         parameterized thread start functionality (requires
71         matching corlib). Marked broken code for later removal.
72
73 2005-01-12  Martin Baulig  <martin@ximian.com>
74
75         * class-internals.h (MonoGenericClass): Moved the `initialized'
76         flag to MonoDynamicGenericClass, removed `init_pending'.
77         (MonoGenericInst): Added `is_reference' flag.
78
79 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
80
81         * reflection.c (mono_image_create_pefile): Only set the pe_offset
82         inside the MSDOS header. Fixes #71201.
83
84         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
85         gc thread.
86         (mono_domain_finalize): Ditto.
87
88 2005-01-12  Martin Baulig  <martin@ximian.com>
89
90         * class.c (mono_get_shared_generic_class): Use the cache for
91         non-dynamic generic classes.
92
93         * class-internals.h (mono_class_create_generic_2): Removed
94         function prototype, this function is now static inside class.c.
95
96         * class.c (mono_class_create_generic_2): Made this static, only
97         call it from mono_class_init() and mono_class_setup_parent().
98         (collect_implemented_interfaces_aux): Call mono_class_init() on
99         the interfaces we collect.
100         (mono_class_setup_vtable): Call mono_class_init (class->parent).
101
102 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
103
104         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
105         it a real thread handle.
106
107         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
108         MonoJitExceptionInfo, since each catch clause needs its own variable.
109         
110 2005-01-11  Dick Porter  <dick@ximian.com>
111
112         * image.c (mono_pe_file_open): New variant on mono_image_open()
113         that does not set up the CLI metadata; used for FileVersionInfo so
114         it can get the data for windows binaries too.
115         
116         * process.c (process_read_string_block): Don't read off the end of
117         the StringTable block.
118
119         These both fix bug 70766.
120
121 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
122
123         * gc.c: set some fields to NULL at GC cleanup time.
124         * threads.c: if we quit the main thread, call exit ().
125
126 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
127
128         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
129
130 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
131
132         * threads.h, threads.c, object.c: added accessor and settor for
133         main_thread. Handle it specially when exiting from it: wait
134         for other foreground threads to exit.
135
136 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
137
138         * process.c, verify.c: remove some bloat.
139
140 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
141
142         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
143         the calling convention to cdecl under win32.
144
145 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
146
147         * object.c (mono_object_get_size): New function to get the size of
148         an object instance.
149
150         * profiler.c (simple_allocation): Use above.
151
152 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
153
154         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
155         ves_icall_System_AppDomain_getRootDomain (as it's not required to
156         get an appdomain by it's id and we can't assume the root's id is 0).
157         * domain-internals.h: Change the function prototype to match.
158         * icall.c: Change the icall table for AppDomain.
159
160 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
161
162         * locales.c (string_invariant_compare_char): Only compute
163         GUnicodeTypes in the case where we need them.  Test for ordinality
164         first and return if so.
165
166         From the commit:
167
168                 /*
169                  * FIXME: here we must use the information from c1type and c2type
170                  * to find out the proper collation, even on the InvariantCulture, the
171                  * sorting is not done by computing the unicode values, but their
172                  * actual sort order.
173                  */
174
175 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
176
177         * loader.c: for P/Invoke methods, allow the "Internal" shared
178         library name to refer to the calling process symbol namespace.
179
180 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
181
182         * Makefile.am: Add the security manager to the build.
183         * security-manager.c|h: New. Initialization of the security manager.
184
185 2005-01-07  Dick Porter  <dick@ximian.com>
186
187         * threads.c: 
188         * monitor.c: Update thread state during Monitor and WaitHandle
189         waits.  Fixes bug 71031.
190
191 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
192
193         * reflection.c (property_encode_signature): Correctly handle when the
194         property has no methods.
195
196 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
197
198         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
199         
200         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
201         fields from mb, not rmb. Fixes #71017.
202
203         * marshal.c (emit_ptr_to_str_conv): Add support for 
204         ByValTStr -> string conversion. Fixes #71015.
205
206         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
207
208         * mempool.c (mono_mempool_contains_addr): New helper function.
209
210 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
211
212         * metadata.c (mono_metadata_compute_size): Fix size calculation of
213         HasSematics encoded fields.
214         
215         * metadata.c (mono_type_to_unmanaged): Improve error message for 
216         invalid string marshalling.
217
218         * metadata.c: Fix warnings.
219         
220 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
221
222         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
223         profiler support.
224
225 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
226
227         * domain.c object.c domain-internals.h: Revert part of r38077 since the
228         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
229         tests.
230
231 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
232
233         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
234         so methods containing these can be AOTed.
235
236 2005-01-03  Martin Baulig  <martin@ximian.com>
237
238         * loader.c (find_method): Removed the hack for generic instances.
239         (method_from_memberref): If our parent is a generic instance, pass
240         its generic type definition to find_method() and then inflate the
241         method.
242         (mono_get_method_constrained): Pass the generic type definition to
243         find_method() and inflate the method later.
244
245         * class-internals.h (MonoStats): Added `generic_class_count'.
246
247         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
248         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
249
250         * reflection.c (mono_custom_attrs_from_params): Don't ignore
251         generic type definitions.
252
253 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
254
255         * loader.c icall.c: Fix warnings.
256
257 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
258
259         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
260         blittable types. Fixes #70864.
261
262 2004-12-29  Martin Baulig  <martin@ximian.com>
263
264         * icall.c
265         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
266
267         * reflection.c (mono_method_get_object): Create a
268         "System.Reflection.MonoGenericMethod" for inflated methods; don't
269         call mono_get_inflated_method().
270
271         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
272
273 2004-12-27  Martin Baulig  <martin@ximian.com>
274
275         * class-internals.h (MonoMethod): Added `is_inflated' flag.
276         (MonoMethodInflated): Added `inflated' field.
277
278         * class.c (mono_class_inflate_generic_method): Don't really
279         inflate the method here; just set the `is_inflated' flag in the
280         MonoMethod.
281         (mono_class_get_inflated_method): Actually inflate the method here
282         if it's not already inflated; we use the MonoMethodInflated's new
283         `inflated' field as a cache.
284
285 2004-12-26  Martin Baulig  <martin@ximian.com>
286
287         * class.c
288         (inflate_generic_class): Moved some code out of inflate_generic_type().
289         (mono_class_inflate_generic_method): If we're already inflated,
290         inflate the context and use the declaring method; ie. make sure
291         the declaring method of an inflated method is always the generic
292         method definition.
293         (mono_class_create_from_typedef): Create
294         `class->generic_container->context->gclass'.
295
296 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
297
298         * metadata-internals.h, marshal.c, reflection.c: More
299         MonoGHashTable->GHashTable.
300
301         * domain-internals.h, class.c: Change MonoGHashTable's into
302         GHashTables for some cases where no gc stuff is used
303
304         All users: update apis
305
306 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
307
308         * metadata.c (builtin_types): Make this `const'. Makes this get
309         put into the shareable section.
310         (mono_metadata_init): Casts to make gcc happy.
311
312 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
313
314         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
315
316 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
317
318         * icall.c: Added an internal call to retrieve the position and length
319         of assembly-level declarative security attributes (RequestMinimum, 
320         RequestOptional and RequestRefuse). This is used by the Assembly class
321         to re-create the corresponding permission sets.
322
323 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
324
325         * marshal.c: fix the stelemref wrapper to be type correct
326         (and faster).
327
328 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
329
330         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
331         to do key & 0x7fffffff. Hashtable already does this. It just
332         results in longer code.
333
334 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
335
336         * appdomain.c: Bump corlib version.
337         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
338         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
339         * reflection.c|h: Add functions to get declarative security infos
340         (blob position and length) for assemblies, classes and methods.
341
342 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
343
344         * reflection.c: sort the constant table (bug #70693).
345
346 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
347
348         * object-internals.h, threads.c, domain.c: add accessors for
349         the MonoThread and MonoDomain tls keys.
350
351 2004-12-18  Martin Baulig  <martin@ximian.com>
352
353         * class.c (inflate_generic_type): If we're inflating a generic
354         instance, set `ngclass->context->container = context->container';
355         ie. the container we inflated into.
356
357         * metadata.c (mono_metadata_parse_generic_param): Reflect above
358         inflate_generic_type() changes.
359
360 2004-12-17  Martin Baulig  <martin@ximian.com>
361
362         * class-internals.h
363         (MonoGenericClass): Replaced `MonoType *generic_type' with
364         `MonoClass *generic_class'.  Removed `dynamic_info'; if
365         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
366         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
367
368 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
369
370         * exception.c (mono_exception_from_token): New helper function.
371
372 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
373
374         * assembly.c (mono_assembly_load_with_partial_name): Call 
375         mono_assembly_loaded before invoking the preload hooks. Fixes
376         #70564.
377
378         * object-internals.h (MonoThread): Change culture_info and 
379         ui_culture_info into an array.
380
381         * threads.c: Cache culture info objects from more than one appdomain.
382
383         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
384         current UI culture.
385
386 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
387
388         * threads.h threads.c appdomain.c: Clear the culture_info field of
389         all threads during unloading if they point to an object in the dying
390         appdomain.
391
392 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
393
394         * culture-info.h (TextInfoEntry): New struct
395         * object-internals.h: sync with managed
396         * locales.c: fill the `text_info_data' field
397         * culture-info-tables.h: update
398
399 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
400
401         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
402         collector.
403
404 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
405
406         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
407         (ves_icall_ModuleBuilder_getMethodToken): Ditto
408
409 2004-12-12  Martin Baulig  <martin@ximian.com>
410
411         * mono-debug-debugger.c (write_type): If we're an enum and the
412         builtin types have already been initialized, call mono_class_init().
413
414 2004-12-11  Martin Baulig  <martin@ximian.com>
415
416         * metadata.c (mono_metadata_load_generic_params): Added
417         `MonoGenericContainer *parent_container' argument; automatically
418         compute `container->is_method'; pass the correct owner to
419         get_constraints().      
420
421         * reflection.c (compare_genericparam): Sort the GenericParam table
422         according to increasing owners. 
423
424 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
425
426         * profiler.c: allow disabling the default profiler.
427
428 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
429
430         * decimal.c, icall.c: allow disabling System.Decimal support.
431
432 2004-12-09  Marek Safar <marek.safar@seznam.cz>
433
434         * reflection.c: Add support for null attribute arguments.
435
436 2004-12-09  Martin Baulig  <martin@ximian.com>
437
438         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
439         names to get rid of compiler warnings.
440
441 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
442
443         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
444         mono_marshal_load_type_info (). Fixes #69625.
445         (mono_marshal_get_ptr_to_struct): Likewise.
446
447 2004-12-08  Martin Baulig  <martin@ximian.com>
448
449         * mono-debug.h: Bumped version number to 47.
450
451         * mono-debug-debugger.c
452         (mono_debugger_event_handler, mono_debugger_event): Take two
453         guint64 arguments insteed of a gpointer and a guint32.  
454
455 2004-12-08  Martin Baulig  <martin@ximian.com>
456
457         * debug-mono-symfile.h
458         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
459         `address' to `native_offset'.
460
461 2004-12-08  Martin Baulig  <martin@ximian.com>
462
463         * class.c (mono_class_create_from_typespec): Only inflate if we
464         either have `context->gclass' or `context->gmethod'.
465
466 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
467
468         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
469
470         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
471
472         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
473
474         * reflection.c (mono_assembly_get_object): Remove the workaround put
475         in for the release.
476         
477         * appdomain.c: Use the corlib_internal field from MonoAssembly.
478
479         * appdomain.c: Bump corlib version.
480
481         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
482         be visible in other appdomains.
483
484 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
485
486         * threads.c: Interlocked inc and dec for longs were messed up,
487         use a KISS based impl for this. Fixes 70234
488
489 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
490
491         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
492
493 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
494
495         * icall.c: fix to follow policy not to allow struct
496         arguments in icalls.
497
498 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
499
500         * process.c: make the patch that handles spaces in file paths work
501         on mono/windows too.
502
503 2004-12-06  Martin Baulig  <martin@ximian.com>
504
505         * class.c (mono_class_create_generic): Call
506         mono_class_setup_supertypes() if we're dynamic.
507         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
508
509 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
510
511         * object-internals.h: Add new fields to MonoThread.
512
513         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
514
515         * icall.c threads-types.h threads.c: Add new icalls.
516
517         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
518
519         * object-internals.h (MonoReflectionAssembly): Sync object layout with
520         managed side.
521
522         * appdomain.c: Bump corlib version.
523
524         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
525         internal assemblies. Fixes #69181.
526
527 2004-12-05  Martin Baulig  <martin@ximian.com>
528
529         * class.c (mono_class_inflate_generic_signature): Make this a
530         no-op if `context' is NULL or we don't have any type parameters;
531         also copy `sentinelpos'.        
532
533 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
534
535         * image.c: Add unbox_wrapper_cache.
536
537         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
538
539         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
540         function generator.
541         
542         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
543         Fixes #70173.
544
545         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
546         
547 2004-12-04  Martin Baulig  <martin@ximian.com>
548
549         * loader.c (mono_method_get_signature_full): New public function;
550         like mono_method_get_signature(), but with an additional
551         `MonoGenericContext *' argument.
552
553         * class.c (mono_class_inflate_generic_signature): Formerly known
554         as inflate_generic_signature(); make this public.
555
556 2004-12-04  Martin Baulig  <martin@ximian.com>
557
558         * metadata.c
559         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
560         instead of a `MonoGenericContainer *'.  
561         (mono_metadata_parse_array_full): Likewise.
562         (mono_metadata_parse_signature_full): Likewise.
563         (mono_metadata_parse_method_signature_full): Likewise.
564         (mono_metadata_parse_generic_inst): Likewise.
565         (mono_metadata_parse_generic_param): Likewise.
566         (mono_metadata_parse_mh_full): Likewise.
567         (mono_type_create_from_typespec_full): Likewise.
568
569 2004-12-03  Martin Baulig  <martin@ximian.com>
570
571         * class-internals.h (MonoGenericContainer): Replaced the
572         `MonoGenericContext * pointer with a `MonoGenericContext'
573         structure and made it the first element.
574
575 2004-12-03  Martin Baulig  <martin@ximian.com>
576
577         * class.c
578         (inflate_generic_type): Set the `context->container' when creating
579         a new MonoGenericContext.
580         (mono_class_inflate_generic_method): Likewise.
581         (mono_class_create_from_typespec): Just use `context->container'
582         to get the container.
583
584         * loader.c (method_from_methodspec): Set `context->parent' from
585         `context->container' - and if that's a method container, use its
586         parent.  Also set the `context->container' when creating a new
587         MonoGenericContext.
588         (mono_get_method_from_token): Use just `context->container' to get
589         the container.
590
591         * metadata.c (do_mono_metadata_parse_generic_class): Also set
592         `gclass->context->container'.
593
594         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
595         the `context->container' when creating a new MonoGenericContext.
596
597 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
598
599         * reflection.c (compare_genericparam): Sort params with identical
600         owner by their number. Fixes gen-111 on sparc.
601
602 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
603
604         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
605         around the domain changes.
606
607         * appdomain.c (mono_domain_unload): Handle the case when the thread
608         calling Unload is itself being aborted during unloading. Fixes #70022.
609
610         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
611
612         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
613         checkpoint_func as an icall so it gets a wrapper.
614         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
615         in the cross-appdomain wrappers too.
616
617         * threads.c (mono_thread_has_appdomain_ref): Make this public.
618
619         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
620
621         * reflection.c: Fix some memory leaks.
622         
623 2004-12-02  Martin Baulig  <martin@ximian.com>
624
625         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
626
627         * metadata.c (generic_class_cache): New static hashtable.
628         (mono_metadata_lookup_generic_class): New public method.
629
630 2004-12-02  Martin Baulig  <martin@ximian.com>
631
632         * class.c (mono_class_create_from_typedef): Call
633         mono_class_setup_parent() and mono_class_create_mono_type() before
634         parsing the interfaces.
635
636 2004-12-02  Martin Baulig  <martin@ximian.com>
637
638         * metadata.c (generic_inst_cache): New static hashtable.
639         (mono_metadata_lookup_generic_inst): New public function.
640         (mono_metadata_inflate_generic_inst): New public function.
641         (mono_metadata_parse_generic_inst): New public function.
642         (do_mono_metadata_parse_generic_class): Use the new
643         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
644         since this'll also use the cache.
645
646         * reflection.c (mono_reflection_bind_generic_method_parameters):
647         Use mono_metadata_lookup_generic_inst() to use the new cache.
648
649         * class.c (inflate_mono_type): Use
650         mono_metadata_inflate_generic_inst() to inflate a generic
651         instance; this'll also use the new cache.
652
653         * loader.c (method_from_methodspec): Use
654         mono_metadata_parse_generic_inst() and
655         mono_metadata_inflate_generic_inst() rather than parsing it
656         manually, so we can use the new cache.
657
658 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
659
660         * threads.c (wait_for_tids): Do not incorrectly free threads when 
661         the wait times out.
662
663 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
664
665         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
666         iter->args based on whether parameters are passed in registers (i.e.
667         MONO_ARCH_REGPARMS is defined)
668
669 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
670
671         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
672         the exception message. Fixes #70070.
673         (method_from_methodspec): Fix warnings.
674
675 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
676
677         * process.c: (complete_path) return the path quoted
678
679 2004-12-01  Martin Baulig  <martin@ximian.com>
680
681         * class-internals.h (MonoGenericInst): New structure.
682         (MonoGenericClass): Replaced `type_argc', `type_argv' and
683         `is_open' with `MonoGenericInst *inst'.
684         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
685         `is_open' with `MonoGenericInst *inst'.
686
687 2004-11-30  Martin Baulig  <martin@ximian.com>
688
689         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
690
691         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
692         to `generic_class_cache'.
693
694         * metadata.c
695         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
696         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
697         (mono_generic_inst_is_valuetype): Renamed to
698         mono_generic_class_is_valuetype().
699
700         * class-internals.h
701         (MonoGenericInst): Renamed to MonoGenericClass.
702         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
703         (MonoClass): Renamed `generic_inst' to `generic_class'.
704         (MonoGenericContext): Renamed `ginst' to `gclass'.
705
706         * object-internals.h
707         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
708
709         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
710         mono_reflection_generic_class_initialize().
711
712         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
713         now known as "System.Reflection.MonoGenericClass".
714         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
715
716 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
717
718         * class-internals.h: Added a flag field to MonoClass to cache the
719         declarative security attributes actions associated with the class.
720         * domain-internals.h: Added booleans to MonoJitInfo to cache the
721         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
722         applicable to the JITted method.
723         * reflection.c|h: Added functions to extract (as flags) which security
724         actions are available (declaratively) for a method, class or assembly.
725         * metadata.c|h: Added functions to search the declarative security
726         table in the metadata.
727         
728 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
729
730         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
731         EXPORTEDTYPES are already in the class name cache, so there is no
732         need to add extra code here to look at them. Just removes a bit of
733         cruft.
734
735         (ves_icall_System_Environment_get_TickCount): No need for #if
736         WINDOWS. We already have the code in io-layer.
737
738 2004-11-28  Martin Baulig  <martin@ximian.com>
739
740         * loader.c
741         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
742         Fixes gen-112.cs.
743
744 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
745
746         * assembly.c (do_mono_assembly_open): Instead of having a
747         conditional WITH_BUNDLE, incorporate support for bundles here, by
748         having a global `bundles' variable holding a pointer to the actual
749         bundles. 
750
751         (mono_register_bundled_assemblies): New API call used by the
752         bundle code. 
753
754         See mkbundle.1 for details.
755         
756 2004-11-27  Martin Baulig  <martin@ximian.com>
757
758         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
759         the vtable for generic methods.
760
761 2004-11-26  Martin Baulig  <martin@ximian.com>
762
763         * metadata.c
764         (mono_metadata_generic_method_hash): New public function.
765         (mono_metadata_generic_method_equal): Likewise.
766
767         * class-internals.h
768         (MonoGenericContainer): Added `GHashTable *method_hash'.
769
770         * reflection.c (ReflectionMethodBuilder): Added
771         `MonoGenericContainer *generic_container'.
772         (reflection_methodbuilder_to_mono_method): Don't create a new
773         MonoGenericContainer each time we're called.
774         (mono_reflection_bind_generic_method_parameters): Use
775         `container->method_hash' to cache the results so we don't create a
776         different method if we're called several times with the same
777         arguments.
778
779         * loader.c (method_from_methodspec): Use the new
780         `container->method_hash' here, too.
781
782 2004-11-26  Martin Baulig  <martin@ximian.com>
783
784         * class.c (inflate_generic_signature): Correctly compute
785         `res->has_type_parameters'.
786         (mono_class_vtable): Use the `has_type_parameters' flag to
787         determine whether we're a generic method.
788
789         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
790
791 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
792
793         * object.c (mono_runtime_run_main): Fix a small memory leak.
794
795 2004-11-25  Martin Baulig  <martin@ximian.com>
796
797         * class.c (set_generic_param_owner): Fixed the loop.
798
799 2004-11-25  Martin Baulig  <martin@ximian.com>
800
801         * object.c (mono_class_vtable): Don't create any JIT wrappers for
802         generic methods.
803
804 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
805
806         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
807         names. Fixes #69787.
808
809 2004-11-24  Martin Baulig  <martin@ximian.com>
810
811         * class.c (mono_class_create_generic_2): If we don't have a
812         `ginst->parent', inflate `gklass->parent' to get our parent.
813
814 2004-11-24  Martin Baulig  <martin@ximian.com>
815
816         * reflection.c (compare_genericparam): Correctly sort the
817         GenericParam table; fixes #69779.
818
819 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
820
821         * reflection.c: When writing a PE file, don't create a huge
822         buffer in memory. Just write the arrays we have to the file.
823         This reduces memory usage.
824
825         * metadata-internals.h: MonoDynamicStream pefile is no longer used
826         globally.
827
828 2004-11-17  Martin Baulig  <martin@ximian.com>
829
830         * class.c (mono_class_init): Don't setup `class->parent' for
831         dynamic instances; moved this to mono_class_generic_2().
832         (mono_class_create_generic): Also set `klass->inited' for dynamic
833         generic instances.
834         (mono_class_create_generic_2): Don't do anything for dynamic
835         generic instances.  Set `klass->parent' here and also call
836         mono_class_setup_parent() here. 
837
838         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
839         `MonoType *parent' argument; set `ginst->parent' before calling
840         mono_class_create_generic_2(), so we set the correct parent.
841
842 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
843
844         * reflection.c: allow getting attributes from ModuleBuilder
845         (used by ikvm).
846
847 2004-11-17  Martin Baulig  <martin@ximian.com>
848
849         * class.c (mono_class_create_from_typedef): If a type parameter is
850         inherited from an outer class, set its owner to that class.
851
852 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
853
854         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
855           for (int*) written size. This fixes bug #69592.
856
857 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
858
859         * icall.c: Added IsAuthenticodePresnet internal call.
860         * image.c|h: New function that check a MonoImage for an Authenticode
861         signature in the certificate PE data directory.
862         * security.c|h: New internal call to ask the runtime if an 
863         Authenticode signature seems referenced in the PE header.
864
865 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
866
867         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
868
869         * reflection.c (mono_image_create_pefile): Free the assembly streams
870         after writing out the assembly file.
871
872         * object.c (mono_runtime_run_main): Fix small memory leak.
873
874         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
875         property access modifiers. Fixes #69389.
876
877 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
878
879         * domain.c, object.c, object-internals.h, domain-internals.h,
880         object.h, marshal.c: keep dynamic code info per domain.
881
882 2004-11-15  Martin Baulig  <martin@ximian.com>
883
884         * class.c (mono_type_get_name_recurse): Put type arguments in
885         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
886         see bug #68387.
887
888 2004-11-15  Martin Baulig  <martin@ximian.com>
889
890         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
891         (mono_class_setup_vtable): When computing `the_cname' for a
892         generic instance, don't include the namespace since we'd otherwise
893         add it twice.
894
895 2004-11-15  Martin Baulig  <martin@ximian.com>
896
897         * class.c (mono_class_create_generic): Changed return type to void.
898         (mono_class_create_generic_2): New public function; setup
899         `class->method', `class->field' and `class->interfaces' here
900         instead of in mono_class_init().
901
902         * class.h (mono_class_create_generic): Moved to class-internals.h.
903
904 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
905
906         * reflection.c (mono_image_create_pefile): take a file HANDLE.
907         rather than writing to memory, write to this file. Right now,
908         we are just writting into a buffer, and copying that. However
909         we can avoid the buffer later.
910
911         (mono_dynamic_stream_reset): new function
912
913         * icall.c, object-internals.h: update for the above.
914
915 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
916
917         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
918         have been using gc'd memory. First it is slower, unlikely
919         the comment in the source code said, secondly, it increases
920         our footprint to do it in the gc.
921
922         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
923         the method so that it does not have to copy to managed code.
924
925 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
926
927         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
928
929 2004-11-12  Martin Baulig  <martin@localhost>
930
931         * reflection.c (mono_image_create_token): Allow generic method
932         definitions here, since they may appear in an `.override'; see
933         gen-98/gen-99 for an example.
934
935 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
936
937         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
938         #69365.
939
940         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
941         descriptive.
942
943 2004-11-11  Martin Baulig  <martin@ximian.com>
944
945         * class.c (mono_class_setup_vtable): In an explicit interface
946         implementation, the method name now includes the arity.
947
948 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
949
950         * object.c (mono_array_full_copy): Fix warning.
951
952 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
953
954         * appdomain.c: Removed look_for_method_by_name(). Use the new method
955         mono_class_get_method_from_name() instead.
956         
957         * class-internals.h: Added two new types of wrappers. 
958         Added MonoRemotingTarget enum. Added new trampoline function type, which
959         takes an additional MonoRemotingTarget value as parameter, so it is
960         possible to request a trampoline for a specific target.
961         
962         * class.c: Added new mono_class_get_method_from_name() method.
963         
964         * class.h: In MonoRemoteClass, we can have now to vtables, one for
965         general remoting sinks and one specific for cross domain calls.
966         
967         * debug-helpers.c: Added new wrapper names.
968         
969         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
970         of a remote class.
971         
972         * image.c: Porperly delete value objects form the remoting invoke hashtable.
973         
974         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
975         with several other methods (mono_marshal_get_xappdomain_dispatch,
976         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
977         and others) can generate a fast remoting wrapper for cross domain calls.
978         More information can be found in docs/remoting.
979         Other changes: Removed mono_find_method_by_name, and used
980         mono_class_get_method_from_name instead.
981         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
982         is stored in the remoting invoke hashtable.
983         
984         * marshal.h: published the new method for getting the xdomain wrapper,
985         and also added a method for getting the adequate wrapper for a given
986         method and target.
987         
988         * object-internals.h, object.c: Added a couple of methods for capying and
989         cloning arrays.
990         Modified mono_install_remoting_trampoline, which takes the new remoting
991         trampoline that has a remoting target as parameter.
992         mono_class_proxy_vtable now also takes a remoting target as parameter, and
993         will return the most suitable vtable for the target.
994         Added mono_remote_class_vtable, which returns the vtable of a remote class
995         (which can be the normal remoting vtable or the xdomain vtable).
996         
997         * threads.c: the xdomain invoke and dispatch wrappers must also be
998         protected against interruptions.
999
1000 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1001
1002         * icall.c: use memmove in BlockCopyInternal when the source and
1003         destination arrays are the same.
1004
1005 2004-11-09  Martin Baulig  <martin@ximian.com>
1006
1007         * class-internals.h (MonoGenericContainer): Removed `method' and
1008         `signature', replaced them with `is_method' and `is_signature'
1009         flags.  Added `context'.
1010
1011         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
1012         instead of a `MonoGenericContainer *'.
1013
1014         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
1015         for dynamic type parameters.
1016         (mono_metadata_load_generic_params): Setup `container->context'.
1017
1018         * reflection.c (mono_reflection_setup_generic_class): Setup
1019         `tb->generic_container->context'.
1020         (do_mono_reflection_bind_generic_parameters): Use
1021         mono_class_inflate_generic_type() to correctly inflate types,
1022         rather than using our own hack just for MONO_TYPE_VAR.
1023
1024 2004-11-09  Martin Baulig  <martin@ximian.com>
1025
1026         * class.c (mono_class_inflate_generic_method): Small fix; don't
1027         crash here.
1028
1029         * icall.c
1030         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
1031         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
1032         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
1033         (ves_icall_Type_BindGenericParameters): Likewise.
1034         (ves_icall_Type_get_IsGenericInstance): Likewise.
1035         (ves_icall_Type_GetGenericParameterPosition): Likewise.
1036         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
1037         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1038         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
1039
1040 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
1041
1042         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
1043         assembly versions and public key tokens. Fixes #69113.
1044
1045 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
1046
1047         * metadata.c: fix bug introduced with the type cache changes
1048         on 2004-11-06.
1049
1050 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
1051
1052         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
1053         the MonoClass pointer instead of the token in exception clauses.
1054         * reflection.c: updates for the above and make the code not depend
1055         on the structure of MonoExceptionClause.
1056
1057 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
1058
1059         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1060         Add support for dynamic assemblies. Fixes #69114.
1061
1062         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
1063
1064 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
1065
1066         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
1067         since most only those methods use it. the code member of
1068         MonoMethodPInvoke was dead, so that can be removed too. Also,
1069         remove inline_count (again, not used), and move slot so that it
1070         can share bits with some other flags. This saves 8 bytes in the
1071         structure and gives us about 50 kb back for mcs helloworld.cs
1072
1073         * *.[ch]: Do naming changes for the above.
1074
1075         * loader.c (mono_method_get_header): Lazily init the header
1076         on first access.
1077         (mono_get_method_from_token): don't init the header here
1078         (mono_free_method): the header may never be allocated
1079
1080         Overall, this saves 150 kb of unmanaged allocations
1081         for mcs helloworld.cs. That accounts for 10% of the unmanaged
1082         memory at runtime.
1083         
1084         * loader.c, loader.h (mono_method_get_header): new accessor.
1085
1086         * *.[ch]: use the above method. Prepares us to lazily load
1087         the header.
1088
1089         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
1090         three warnings, which are actual bugs (see 69206).
1091
1092         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
1093         unused. Saves a cool 4 bytes / method.
1094
1095 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
1096
1097         * metadata.c (builtin_types): Add types for System.Object here.
1098         (mono_metadata_parse_type_full): Cache MonoType*'s that are
1099         for a class or valuetype from klass->this_arg or klass->byval_arg.
1100
1101         On mcs for a hello world, this gets us down from 21836 MonoType's
1102         to 14560.
1103
1104         (mono_metadata_free_type): Account for the above change.
1105
1106 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
1107
1108         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
1109         exception instead of asserting if name is null.
1110         (ves_icall_System_AppDomain_GetData): Ditto.
1111
1112 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
1113
1114         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
1115         EnumBuilder.
1116
1117         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
1118         Return NULL when the domain does not have entry_assembly set.
1119
1120         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
1121         Add a 'resource_modules' argument.
1122         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
1123
1124         * reflection.c (mono_reflection_create_runtime_class): Move setting
1125         of wastypebuilder here, so mono_get_type_object () returns a MonoType
1126         for enums too.
1127
1128         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
1129         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
1130         Throw an ArgumentNullException if 'ptr' is null.
1131
1132         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
1133         assemblies here. Fixes #69020.
1134
1135 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
1136
1137         * reflection.c (build_compressed_metadata): Fix the previous patch for
1138         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
1139         the stack.
1140
1141 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
1142
1143         * assembly.c (mono_assembly_names_equal): Allow a match if one of
1144         the cultures is false. Fixes #69090.
1145
1146         * reflection.c (build_compressed_metadata): Fix invalid memory read 
1147         detected by valgrind.
1148         
1149         * reflection.c (mono_reflection_get_type): Avoid triggering a 
1150         TypeResolve multiple times for the same type. Fixes #65577.
1151
1152 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
1153
1154         * marshal.c: Avoid using ldftn to call managed functions. It is
1155         much slower than just a call.
1156
1157         * reflection.c (mono_module_get_object): free the basename we
1158         allocate here from glib.
1159         
1160         * reflection.c (ensure_runtime_vtable): make sure to free
1161         overrides.  Also, we were allocating an array of MonoMethod not an
1162         array of MonoMethod*.
1163
1164         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
1165
1166         * image.c (mono_image_close): free image->guid here.
1167
1168 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
1169
1170         * reflection.c: Fix some spec conformance issues with the PE file
1171         structures so mcs compiled apps run on the Net 2.0 beta.
1172
1173 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
1174
1175         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
1176         Implement this. Fixes #67264.
1177
1178         * debug-helpers.h debug-helpers.c marshal.c: Move 
1179         mono_find_method_by_name to debug-helpers.c.
1180
1181 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
1182
1183         * object.c (mono_release_type_locks): type_initialization_hash is
1184         a GHashTable.
1185
1186         * reflection.c object.c object-internals.h: Fix warnings.
1187
1188         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
1189         without accessors. Fixes #61561.
1190
1191         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
1192         application base from the root domain if not set. Fixes #65641.
1193         (mono_runtime_init): Fix warning.
1194
1195 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1196
1197         * appdomain.c: call mono_thread_pool_init.
1198         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1199         of worker threads based on the number of CPUs and the environment
1200         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1201         for non-windows (windows) systems.
1202
1203 2004-10-27  Chris Toshok  <toshok@ximian.com>
1204
1205         * mono-debug-debugger.c (write_class): don't call mono_class_init
1206         here, as even with the check for (!klass->init_pending), we get
1207         into a situation where we're hitting cycles in class
1208         initialization.  Fixes #68816.
1209
1210 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1211
1212         * image.c: Avoid overwriting values in the loaded_images_hash when an
1213         assembly is loaded multiple times. Fixes #61152.
1214
1215         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1216         so multiple satellite assemblies for the same name can be loaded.
1217         Fixes #68259.
1218
1219         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1220         not NULL.
1221
1222         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1223         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1224
1225         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1226         pending finalizers are not invoked after the appdomain has been 
1227         unloaded. Fixes #67862.
1228
1229 2004-10-22  Martin Baulig  <martin@ximian.com>
1230
1231         * mono-debug-debugger.c
1232         (mono_debugger_runtime_invoke): Don't box valuetypes.
1233
1234 2004-10-22  Chris Toshok  <toshok@ximian.com>
1235
1236         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1237         don't hide private methods.
1238
1239 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1240
1241         * icall.c: Allows the runtime to "share" (when known) the public key
1242         token of an assembly. This avoid the need to recalculate the token 
1243         (from the public key) in managed code.
1244
1245 2004-10-21  Chris Toshok  <toshok@ximian.com>
1246
1247         * debug-helpers.c (append_class_name): argh, revert last patch.
1248         
1249 2004-10-21  Chris Toshok  <toshok@ximian.com>
1250
1251         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1252         not '/', so that it matches what the debugger uses to look up
1253         methods.
1254
1255 2004-10-21  Martin Baulig  <martin@ximian.com>
1256
1257         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1258         public method; this is called each time an exception is thrown and
1259         allows the debugger to use exception catch points.
1260
1261 2004-10-21  Martin Baulig  <martin@ximian.com>
1262
1263         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1264         the stack pointer and the exception object in some struct and pass
1265         that to the debugger.
1266
1267 2004-10-21  Chris Toshok  <toshok@ximian.com>
1268
1269         * mono-debug-debugger.c (do_write_class): add instance/static
1270         event support.  We don't expose "raise" or "other" yet.
1271         (event_is_static): new method.
1272
1273 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1274
1275         * mono-debug-debugger.c
1276         (mono_debugger_handle_exception): Remove
1277         bogus return value for fussy compilers.
1278
1279 2004-10-20  Martin Baulig  <martin@ximian.com>
1280
1281         * mono-debug-debugger.c
1282         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1283         (mono_debugger_handled_exception): Likewise.
1284
1285 2004-10-20  Martin Baulig  <martin@ximian.com>
1286
1287         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1288         MONO_DEBUGGER_EVENT_EXCEPTION.
1289
1290         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1291         public function to send the debugger a notification for an
1292         exception and inform it about a catch/finally clause.
1293
1294 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1295
1296         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1297         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1298         fix 2.95 build. 
1299
1300         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1301
1302 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1303
1304         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1305         marshalled as [In,Out]. Fixes #58325.
1306
1307 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1308
1309         * reflection.c (mono_method_body_get_object): Implement some fields.
1310
1311 2004-10-12  Martin Baulig  <martin@ximian.com>
1312
1313         * reflection.c (mono_reflection_bind_generic_parameters): Small
1314         fix, correctly retrieve our parent from a generic instance.
1315
1316 2004-10-12  Martin Baulig  <martin@ximian.com>
1317
1318         * metadata.c (mono_metadata_generic_param_equal): We always have
1319         an owner.
1320
1321         * class.c
1322         (mono_class_from_generic_parameter): We need to have an owner.
1323         (my_mono_class_from_generic_parameter): Likewise.
1324
1325         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1326         mono_reflection_create_generic_class() and added a new
1327         mono_reflection_setup_generic_class().  
1328         (mono_reflection_initialize_generic_param): If we're a nested
1329         generic type and inherited from the containing class, set our
1330         owner to the outer class.
1331
1332 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1333
1334         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1335
1336         * reflection.c (mono_method_body_get_object): New function to create
1337         a MethodBody object.
1338
1339         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1340
1341 2004-10-11  Martin Baulig  <martin@ximian.com>
1342
1343         * metadata.c (_mono_metadata_type_equal): Renamed to
1344         do_mono_metadata_type_equal() and made static.
1345
1346 2004-10-11  Martin Baulig  <martin@ximian.com>
1347
1348         * appdomain.c: Bump corlib version number to 28.
1349
1350 2004-10-10  Martin Baulig  <martin@ximian.com>
1351
1352         * class-internals.h
1353         (MonoGenericInst): Added `MonoGenericContainer *container'.
1354         (MonoGenericMethod): Likewise.
1355         (MonoGenericContext): Likewise.
1356         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1357
1358         * metadata.c
1359         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1360         (do_mono_metadata_parse_generic_inst): Likewise.
1361         (mono_metadata_parse_type_full): New public method.  This is the actual
1362         mono_metadata_parse_type() implementation - with an additional
1363         `MonoGenericContainer *' argument.
1364         (mono_metadata_parse_array_full): Likewise.
1365         (mono_metadata_parse_signature_full): Likewise.
1366         (mono_metadata_parse_method_signature_full): Likewise.
1367         (mono_metadata_parse_mh_full): Likewise.
1368         (mono_type_create_from_typespec): Likewise.
1369         (mono_metadata_interfaces_from_typedef_full): New public method;
1370         this is similar to the other _full() methods, but we take a
1371         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1372         (mono_metadata_parse_generic_param): Take an additional
1373         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1374         from that container.
1375         (mono_metadata_generic_param_equal): New static method to compare
1376         two type parameters.
1377         (_mono_metadata_type_equal): New static method; takes an
1378         additional `gboolean signature_only' argument - if true, we don't
1379         compare the owners of generic parameters.
1380         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1381         with a TRUE argument - do a signature-only comparision.
1382
1383         * loader.c: Use the new _full() methods and pass the
1384         MonoGenericContainer to them.
1385
1386         * object-internals.h (MonoReflectionTypeBuilder): Added
1387         `MonoGenericContainer *generic_container' field.
1388         (MonoReflectionMethodBuilder): Likewise.
1389
1390 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1391
1392         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1393         case initial images of dynamic assemblies.
1394
1395         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1396
1397         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1398
1399         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1400         length of event->other array.
1401         (typebuilder_setup_events): Ditto.
1402
1403         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1404         'assembly_by_name' and add an 'assemblies' list.
1405
1406         * assembly.h assembly.c: Add a new search hook for determining whenever
1407         an assembly is already loaded. Use this instead of searching in the
1408         loaded_assemblies list.
1409
1410         * domain.c appdomain.c: Implement the new search hook so loaded 
1411         assemblies are now scoped by appdomain. Fixes #67727.
1412
1413 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1414
1415         * threads.c (mono_thread_attach): Initialize synch_lock field so
1416         mono_thread_detach works again.
1417
1418         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1419         'lib' too. Fixes #63130.
1420
1421 2004-10-06  Jackson Harper  <jackson@ximian.com>
1422
1423         * culture-info-tables.h: regenerated.
1424
1425 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1426
1427         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1428         implemented by other interfaces in the result. Fixes #65764.
1429         
1430         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1431         Handle unloadable modules without crashing.
1432
1433         * image.c (load_modules): Revert the previous patch since modules must
1434         have a fixed index inside the array.
1435         
1436         * image.c (load_modules): Don't include native modules in the modules
1437         array.
1438
1439 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1440
1441         * reflection.h: Add param_defaults field.
1442
1443         * reflection.c: Add support for parameter defaults in dynamic methods.
1444         Fixes #64595.
1445
1446         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1447         an empty string when a type has no namespace. Fixes #64230.
1448
1449 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1450
1451         * tabledefs.h: Added "internal" security actions to support non-CAS
1452         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1453         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1454
1455 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1456
1457         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1458         constructor of abstract class. Fixes #61689.
1459
1460 2004-10-04  Martin Baulig  <martin@ximian.com>
1461
1462         * class-internals.h (MonoGenericContainer): New type.
1463         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1464         `MonoGenericContainer *generic_container'.
1465         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1466         `MonoGenericContainer *generic_container'.
1467
1468         * metadata.c (mono_metadata_load_generic_params): Return a
1469         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1470         removed the `num' argument.
1471
1472 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1473
1474         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1475         for dynamic images.
1476
1477         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1478         machine fields.
1479
1480         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1481
1482         * reflection.c: Save pe_kind and machine values into the generated
1483         image file.
1484
1485         * appdomain.c: Bump corlib version number.
1486
1487         * object-internals.h: Reorganize layout of LocalBuilder.
1488
1489         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1490         New helper function.
1491
1492         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1493         created MonoType for dynamic types. Fixes #66180.
1494
1495 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1496
1497         * threadpool.c: the ares hashtable needs a critical section around it.
1498         this prevents some nasty segfaults
1499
1500 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1501
1502         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1503         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1504         bug 67324).
1505         
1506 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1507
1508         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1509         
1510 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1511
1512         * image.c: Always canonicalize image file names, to avoid loading
1513         the same assembly twice when referenced using a relative path.
1514
1515 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1516
1517         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1518
1519         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1520
1521         * marshal.c: Fix warnings.
1522
1523 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1524
1525         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1526         attempting to marshal the delegate_trampoline as the method_addr.
1527         This patch has a static hashtable of marshalled delegates so that 
1528         we can map delegate_trampoline addresses back to delegates.  This
1529         allows a delegate passed to managed code to be passed back into native
1530         code.  Fixes #67039
1531
1532 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1533
1534         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1535
1536         * reflection.c (method_encode_code): Align method headers properly.
1537         Fixes #66025.
1538
1539 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1540
1541         * marshal.c: In the runtime invoke wrapper, reset the abort
1542         exception if it is cached. This avoids the automatic rethrowal of 
1543         the exception after the catch of the wrapper. Also check for pending
1544         interruptions before calling the managed method. This is done using
1545         the new method emit_thread_force_interrupt_checkpoint, since the
1546         normal checkpoint method is ignored when running the invoke wrapper.
1547         * object.c: If the abort exception is rethrown, set the abort_exc
1548         field of the thread, so it will be rethrown aftere every catch.
1549         * threadpool.c: Only run an interruption checkpoint if what has been
1550         requested is a stop of the thread (aborts will be ignored).
1551         * threads.c: By default, a thread will now never be interrumped while
1552         running the runtime invoke wrapper (this ensures that runtime_invoke
1553         will always return to the caller if an exception pointer is provided).
1554         There is a new special method mono_thread_force_interruption_checkpoint()
1555         to force an interruption checkpoint even if running a protected
1556         wrapper, which is used by the same runtime invoke wrapper to do a check
1557         at a safe point.
1558
1559 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1560
1561         * object.c, object-internals.h: Implemented mono_release_type_locks,
1562         which releases the cctor locks held by a thread.
1563         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1564         by a thread. Added mono_thread_exit() method to be used to safely stop
1565         a thread.
1566
1567 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1568
1569         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1570         Move null check before dereference.  Avoid indexing beyond the end
1571         of the 'modules' array.
1572
1573 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1574
1575         * metadata-internals.h (MonoImage): Add module_count field.
1576         * image.c (load_modules): Set image->module_count.
1577         (mono_image_load_file_for_image): Use image->module_count.
1578         * reflection.c (mono_image_load_module): Append to image->modules array 
1579         of dynamic assembly.
1580         (mono_module_get_object): Fix loop to actually increment index.
1581         Use image->module_count.
1582         * assembly.c (mono_assembly_load_references): Use image->module_count.
1583         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1584         Likewise.
1585
1586 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1587
1588         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1589         Avoid assert on generic types.
1590
1591 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1592
1593         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1594
1595         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1596
1597         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1598         function to convert a MarshalSpec structure to its managed counterpart.
1599
1600         * reflection.c: Fix warnings.
1601         
1602         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1603         field.
1604
1605         * icall.c (mono_create_icall_signature): Fix build.
1606
1607 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1608
1609         * icall.c: Add MakePointType icall.
1610
1611         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1612         warnings.
1613
1614 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1615
1616         * threadpool.c: reuse allocated slots in the queue.
1617
1618 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1619
1620         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1621
1622         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1623
1624         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1625         previous change.
1626
1627         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1628         ThrowOnUnmappableChar.
1629
1630         * icall.c (ves_icall_Type_GetPacking): New icall.
1631
1632 2004-09-24  Martin Baulig  <martin@ximian.com>
1633
1634         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1635
1636 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1637
1638         * appdomain.c:
1639         (mono_domain_set): allow setting a domain that is being unloaded.
1640         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1641         being unloaded.
1642
1643 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1644
1645         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1646         the GetCustomAttributes icall.
1647
1648 2004-09-23  Martin Baulig  <martin@ximian.com>
1649
1650         * object-internals.h (MonoReflectionGenericParam): Replaced
1651         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1652         with `guint32 attrs'.
1653
1654 2004-09-23  Martin Baulig  <martin@ximian.com>
1655
1656         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1657
1658 2004-09-23  Martin Baulig  <martin@ximian.com>
1659
1660         * object-internals.h (GenericParameterAttributes): New enum.
1661
1662 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1663
1664         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1665         
1666         * class.c (init_events): Fill out event->other field.
1667
1668         * class.c: Fix warnings.
1669
1670         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1671
1672 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1673
1674         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1675         walk which doesn't supply the IL offset.
1676
1677 2004-09-22  Martin Baulig  <martin@ximian.com>
1678
1679         * reflection.c (mono_reflection_setup_internal_class): If we're
1680         System.ValueType, System.Object or System.Enum, set
1681         `klass->instance_size' and create the vtable.
1682         (mono_reflection_create_internal_class): If we're an enum type,
1683         get the base class from our current corlib.
1684
1685 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1686
1687         * reflection.h (MonoResolveTokenError): New type.
1688
1689         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1690         icall.
1691
1692         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1693
1694 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1695
1696         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1697         Support also calling constructors, but only for already allocated objects.
1698
1699 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1700
1701         * reflection.c (type_get_qualified_name): If the klass is null
1702         return the typename to avoid a NullRefEx.
1703         (encode_cattr_value): Get the qualified name of the boxed type,
1704         not the underlying enumtype.  Fixes #62984.
1705
1706 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1707
1708         * marshal.c: Fix problems with previous checkin.
1709
1710 2004-09-21    <vargaz@freemail.hu>
1711
1712         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1713         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1714
1715         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1716
1717 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1718
1719         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1720         should only return a type for pointers, arrays, and passbyref types.
1721         Fixes bug #63841.
1722
1723 2004-09-21  Martin Baulig  <martin@ximian.com>
1724
1725         * domain.c (mono_debugger_check_runtime_version): New public
1726         function.
1727
1728         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1729
1730 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1731
1732         * reflection.c: Added missing sort to the declarative security 
1733         attributes table. MS implementation stops seeing the attributes if the
1734         token number regress in the table (as shown by ildasm and permview).
1735
1736 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1737
1738         * object-internals.h (MonoReflectionModule): Add 'token' field.
1739         
1740         * reflection.c (mono_reflection_get_token): Add support for Module
1741         and Assembly.
1742         (mono_module_get_object): Set 'token' field.
1743         (mono_module_file_get_object): Set 'token' field.
1744
1745         * icall.c: Add new Assembly and Module icalls.
1746
1747         * appdomain.c: Bump corlib version.
1748
1749 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1750
1751         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1752         tokens of metadata objects.
1753
1754         * reflection.h reflection.c (mono_reflection_get_token): New function
1755         to obtain the token of a metadata object.
1756
1757         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1758
1759 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1760
1761         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1762         
1763         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1764
1765 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1766
1767         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1768         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1769         AssemblyBuilder to access the permissions set in the class lib.
1770         * reflection.c: Added security attributes encoding step in 
1771         mono_image_build_metadata.
1772         * tabledefs.h: Added new security actions defined in 2.0:
1773         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1774
1775 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1776
1777         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1778         macro parameter.
1779
1780 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1781  
1782         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1783           finalized. There where random SIGSEVs at program termination, when
1784           an object being finalized was trying to do a string comparison and
1785           the current culture was already finalized.
1786  
1787 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1788
1789         * threads.c: call thread_cleanup before finishing the thread if we get
1790         there.
1791
1792 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1793
1794         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1795         assemblies from the parent. Fixes #65665.
1796
1797 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1798
1799         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1800         modifiers.
1801
1802 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1803
1804         * reflection.h: add prototype for mono_get_dbnull_object
1805         * reflection.c: add prototypes for get_default_param_value_blobs 
1806         and mono_get_object_from_blob for fussier compilers
1807
1808 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1809  
1810         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1811         false deadlock checks in class initialization.
1812  
1813 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1814
1815         * image.c (mono_image_addref): Fix comment.
1816
1817         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1818         possible.
1819
1820 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1821
1822         * reflection.c (mono_param_get_objects): Modified to return
1823         ParameterInfo.DefaultValue object.
1824
1825         (get_default_param_value_blobs):
1826         (mono_get_object_from_blob):
1827         (mono_get_dbnull_object): New helper routines. 
1828
1829         * object.c (mono_get_constant_value_from_blob): New helper routine
1830         carved out from get_default_field_value ()
1831
1832         * object-internals.h (mono_get_constant_value_from_blob): Added
1833         function declaration.
1834
1835 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1836
1837         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1838         referenced assemblies. Fixes #62135.
1839
1840         * exception.h exception.c (mono_get_exception_file_not_found2): New
1841         helper function.
1842
1843 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1844
1845         * class.h class.c: Add mono_type_get_underlying_type ().
1846
1847 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1848
1849         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1850         Fix GetTypes() to support dynamically created assemblies.
1851
1852 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1853
1854         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1855         
1856         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1857         previous patch.
1858
1859         * reflection.h reflection.c loader.c: Allow dynamic construction of
1860         pinvoke methods. Fixes #65571.
1861         
1862         * reflection.c (mono_reflection_get_type): Revert previous change since
1863         it causes regressions.
1864
1865 2004-09-08  Martin Baulig  <martin@ximian.com>
1866
1867         * class.c (class_compute_field_layout): Don't call
1868         mono_class_layout_fields() for open generic instances.
1869
1870 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1871         * threads.c appdomain.c: fix typo in GC macro
1872
1873 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1874
1875         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1876         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1877
1878 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1879
1880         * image.c (mono_image_close): Applied patch from 
1881         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1882         assembly is loaded multiple times from data.
1883         
1884         * image.c (mono_image_open): Fix warning.
1885
1886 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1887
1888         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1889         once. Fixes #58334.
1890         
1891         * reflection.c (mono_reflection_create_runtime_class): Initialize
1892         klass->nested_classes. Fixes #61224.
1893
1894 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1895
1896         * threads.c: sched_yield() on exit, to allow threads to quit.
1897
1898 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1899
1900         * object.c (mono_unhandled_exception): Remove leftover debug code.
1901
1902 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1903
1904         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1905
1906 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1907
1908         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1909         
1910         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1911
1912 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1913
1914         * marshal.c (emit_marshal_array): Null terminate string arrays.
1915         
1916         * marshal.c (raise_auto_layout_exception): Fix warning.
1917
1918         * reflection.c (mono_param_get_objects): Initialize the default value
1919         with DBNull.Value, not null. Fixes #62123.
1920
1921 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1922
1923         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1924         throw an exception with a cute explanation.
1925
1926 2004-09-06  Dick Porter  <dick@ximian.com>
1927
1928         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1929         Close the new process's thread handle, as we don't use it.  The
1930         handle stays around forever otherwise.
1931
1932 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1933
1934         * object.c (arith_overflow): Fix warning.
1935
1936         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1937         calling conventions in method refs. Fixes #65352.
1938
1939         * reflection.c: Fix warnings.
1940
1941 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1942
1943         * icall.c: Add a new icall for Array.Clear
1944
1945 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1946
1947         * object.c: When allocating an array, we have to throw
1948         an overflow exception if any of the lengths are < 0.
1949
1950 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1951
1952         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1953         properly. Also move implementation of string array marshalling to 
1954         managed code. Fixes #42316.
1955
1956 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1957
1958         * assembly.c: provide more information when loading an assembly fails.
1959
1960 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1961
1962         * filewatcher.c: don't expect the development fam package to be
1963         installed.
1964
1965 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1966
1967         * marshal.c: Make a copy of the signature cookie since it will be
1968         freed by the caller.
1969         
1970         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1971
1972         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1973
1974         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1975         marshal specs.
1976
1977         * marshal.c: More refactoring.
1978         
1979         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1980         smaller functions.
1981
1982 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1983
1984         * object.c: In mono_message_invoke, fill the output parameter array after
1985           calling the managed method (it was done before the call). This fixes
1986           bug #59299.
1987
1988 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1989
1990         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1991         as well.
1992
1993 2004-09-02  Martin Baulig  <martin@ximian.com>
1994
1995         * class.c (mono_class_instance_size): Don't allow generic type
1996         definitions or open generic instances.
1997         (mono_class_array_element_size): If we're a value type, call
1998         mono_class_instance_size() on the original class.
1999
2000         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
2001         handle generic instances.
2002
2003         * mono-debug-debugger.c (write_type): Handle generic instances
2004         like classes.
2005
2006 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
2007
2008         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
2009         the allocation request fails. Fixes #65089.
2010
2011         * object.c (mono_runtime_free_method): Do not call mono_free_method.
2012         
2013         * object.c (mono_runtime_free_method): New function to free a dynamic
2014         method.
2015
2016         * marshal.c (mono_delegate_free_ftnptr): New function to free the
2017         delegate trampoline.
2018
2019         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
2020         with hasthis as dynamic,
2021
2022         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
2023
2024         * domain.c (mono_jit_info_table_remove): New function to remove an
2025         entry from the jit info table.
2026
2027         * class-internals.h (MonoMethod): Add 'dynamic' field.
2028
2029         * loader.c: Fix warnings.
2030
2031 2004-09-01  Martin Baulig  <martin@ximian.com>
2032
2033         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
2034         instead of mono_debugger_lock() because the latter one is a no-op
2035         unless running in the debugger.
2036
2037 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2038
2039         * class.c (class_compute_field_layout): Classes with auto-layout or
2040         reference fields are not blittable.
2041         
2042 2004-09-01  Dick Porter  <dick@ximian.com>
2043
2044         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
2045         mono_image_get_filename() to get the assembly location.
2046
2047         * icall.c:
2048         * metadata.h: Fix compile warnings
2049
2050 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2051
2052         * class.c (class_compute_field_layout): System.Object is blittable.
2053
2054         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
2055         as in/out. Fixes #59909.
2056
2057 2004-09-01  Martin Baulig  <martin@ximian.com>
2058
2059         * metadata.h (MONO_TYPE_ISREFERENCE): Call
2060         mono_metadata_generic_inst_is_valuetype() if we're a generic
2061         instance to check whether our underlying type is a reference type.
2062
2063 2004-09-01  Martin Baulig  <martin@ximian.com>
2064
2065         * metadata.c (mono_type_size): If we're a generic instance, call
2066         mono_class_value_size() for value types.
2067
2068 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
2069
2070         * marshal.c: Implement more custom marshalling functionality. Fixes
2071         #64915.
2072
2073 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2074
2075         * mono-debug.c, debug-mono-symfile.c: add some locking love.
2076
2077 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
2078
2079         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
2080
2081         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
2082
2083         * icall.c: Fix some warnings.
2084
2085         * threads.c (abort_appdomain_thread): Fix unref errors.
2086         (mono_thread_current): Fix THREAD_DEBUG define.
2087
2088 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
2089
2090         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
2091
2092         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
2093
2094 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
2095
2096         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
2097         string arrays.
2098
2099 2004-08-28  Martin Baulig  <martin@ximian.com>
2100
2101         * metadata.c
2102         (mono_metadata_generic_inst_is_valuetype): New public function.
2103
2104         * metadata.h (MONO_TYPE_ISSTRUCT): Call
2105         mono_metadata_generic_inst_is_valuetype() if we're a generic
2106         instance to check whether our underlying type is a valuetype.
2107
2108 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
2109
2110         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
2111         #63768.
2112
2113 2004-08-25  Martin Baulig  <martin@ximian.com>
2114
2115         * loader.c (mono_get_method_from_token): Abstract methods can also
2116         be generic and thus have type parameters.
2117
2118         * metadata-internals.h
2119         (MonoDynamicImage): Added `GPtrArray *gen_params'.
2120
2121         * reflection.c (mono_image_get_generic_param_info): Don't create a
2122         metadata row, just add an entry to the `gen_params' array.
2123         (build_compressed_metadata): Sort the `gen_params' array and then
2124         actually create the metadata.
2125
2126 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2127
2128         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
2129
2130 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
2131
2132         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
2133
2134 2004-08-24  Martin Baulig  <martin@ximian.com>
2135
2136         * class.cs (mono_class_is_subclass_of): Like an interface, a
2137         generic instance also derives from System.Object.
2138
2139 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
2140
2141         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
2142         custom modifiers to be in any order. Fixes #61990.
2143
2144 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
2145
2146         * object.c: Register mono_object_new_fast icall.
2147         
2148         * object.c (mono_class_get_allocation_ftn): Return to calling
2149         mono_object_new_fast, since it seems faster to compute the object 
2150         size in unmanaged code than passing it as a parameter.
2151
2152         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
2153
2154         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
2155         this function with Boehm as the oom handler, so we don't have to check
2156         the result of GC_malloc.
2157
2158         * object.c: Remove checks for oom.
2159
2160         * object.h object.c (mono_class_get_allocation_ftn): New function to
2161         return the icall which can be used to allocate an instance of a given
2162         class. 
2163
2164         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
2165
2166         * class-internals.h: Add 'enabled' field.
2167
2168 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
2169
2170         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
2171
2172 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
2173         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
2174         value 0x0010.
2175
2176 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
2177
2178         * appdomain.c: use the Tls function for appdomain too,
2179         at Zoltan's request. Actually return in mono_context_get
2180
2181         * appdomain.c, profiler.c, threads.c: use __thread
2182
2183 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
2184
2185         * appdomain.c threads.c: Call GC_CreateThread on windows.
2186
2187         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
2188         multiple libraries since this don't work on windows.
2189
2190 2004-08-18  Martin Baulig  <martin@ximian.com>
2191
2192         * class-internals.h
2193         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
2194         MonoMethodHeader.
2195
2196         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2197         MonoMethodNormal since we also need it for abstract and interface
2198         methods.
2199
2200         * reflection.c
2201         (build_compressed_metadata): Sort the GenericParam table.
2202         (mono_image_create_token): Added `gboolean create_methodspec'
2203         argument; this is false when generating a MethodImpl token.
2204         (reflection_methodbuilder_to_mono_method): Abstract and interface
2205         methods may also have generic parameters.
2206
2207 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2208
2209         * appdomain.c: thread local alloc
2210
2211 2004-08-17  Martin Baulig  <martin@ximian.com>
2212
2213         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2214
2215         * icall.c
2216         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2217         argument.
2218
2219         * class.c (mono_type_get_full_name): New public function.
2220         (mono_type_get_name): Don't include the type arguments.
2221
2222 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2223
2224         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2225         for inclusion into the mono executable.
2226
2227 2004-08-16  Martin Baulig  <martin@ximian.com>
2228
2229         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2230         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2231
2232 2004-08-14  Martin Baulig  <martin@ximian.com>
2233
2234         * class.c (dup_type): Also copy the `byref' field.
2235
2236 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2237
2238         * reflection.c (create_dynamic_mono_image): Revert the last change 
2239         since it breaks bootstrap.
2240
2241 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2242
2243         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2244
2245         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2246         not free them with g_free.
2247
2248 2004-08-11  Martin Baulig  <martin@ximian.com>
2249
2250         * reflection.c (mono_reflection_setup_internal_class): Also call
2251         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2252
2253 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2254
2255         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2256         called during default (first) AppDomain creation. Keep track of
2257         Evidence when loading assemblies.
2258
2259 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2260
2261         * opcodes.c, opcodes.h: reduce runtime relocations.
2262
2263 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2264
2265         * culture-info.h, locales.c: fixes and chages to sue the new
2266         optimized format of the locale data.
2267         * culture-info-tables.h: regenerated.
2268
2269 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2270         
2271         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2272
2273 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2274
2275         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2276         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2277         * domain-internals.h: icall declaration.
2278         * icall.c: icall registration.
2279         * object-internals.h: New fields in MonoAssembly for CAS.
2280
2281 2004-08-05  Duncan Mak  <duncan@ximian.com>
2282
2283         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2284         CEE_LDELEM_ANY.
2285
2286 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2287
2288         * reflection.c: fix to deal with object[] arrays in custom ctors
2289         (bug #62550).
2290
2291 2004-08-05  Martin Baulig  <martin@ximian.com>
2292
2293         * class.c (mono_class_array_element_size): Added support for
2294         generic instances and correctly handle "recursive" types.
2295
2296 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2297
2298         * assembly.c: Fix warnings.
2299
2300 2004-08-04  Martin Baulig  <martin@ximian.com>
2301
2302         * class.c
2303         (mono_type_get_name_recurse): Added `gboolean include_arity'
2304         argument specifying whether or not we should include the generic
2305         arity in the type name.
2306         (_mono_type_get_name): New static function.
2307         (mono_class_setup_vtable): If we're a generic instance, don't
2308         include the generic arity in the names of explicit method
2309         implementations.        
2310
2311 2004-08-03  Martin Baulig  <martin@ximian.com>
2312
2313         * class.c (mono_type_get_name_recurse): Enclose the generic type
2314         arguments in `<', '>'.
2315
2316 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2317
2318         * gc.c: make GC warning messages use the trace API, they are just
2319         noise to most of the users.
2320
2321 2004-08-03  Martin Baulig  <martin@ximian.com>
2322
2323         * debug-mono-symfile.c (read_string): Correctly read the string.
2324
2325 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2326
2327         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2328         
2329         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2330         icalls.
2331         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2332
2333 2004-07-30  Martin Baulig  <martin@ximian.com>
2334
2335         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2336         Reflect latest symbol writer changes.   
2337
2338 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2339
2340         * object.c: always create an object if null is passed
2341         to Invoke() where a valuetype is expected.
2342
2343 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2344
2345         * marshal.c (mono_marshal_init): make managed
2346         signatures match native ones better for 64bits.
2347
2348 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2349
2350         * appdomain.c: hack to build correctly the private bin path on windows.
2351         Fixes bug #61991.
2352
2353 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2354
2355         * assembly.c: Load mscorlib from the correct framework directory
2356           (mono/<version>/mscorlib.dll).
2357         * appdomain.h: Added prototypes for new functions.
2358         * internals.h: Added some prototypes.
2359         * domain.c: When initializing the runtime, get from the executable and
2360           the configuration files the runtime version that the app supports.
2361           Added support methods for reading app.exe.config. Added list of versions
2362           supported by the JIT. Added two new methods: mono_init_from_assembly,
2363           which initializes the runtime and determines the required version from
2364           the provided exe file, and mono_init_version, which initializes
2365           the runtime using the provided version.
2366         * icall.c: Get machine.config from version-specific directory.
2367         * reflection.c: When generating an image, embed the version number
2368           of the current runtime.
2369
2370 2004-07-28  Dick Porter  <dick@ximian.com>
2371
2372         * socket-io.c
2373         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2374         returned sockaddr size before creating the remote address object.
2375         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2376         61608.
2377
2378 2004-07-28  Dick Porter  <dick@ximian.com>
2379
2380         * locales.c (string_invariant_compare_char): Fix invariant char
2381         compares between upper and lower cases.  Fixes bug 61458.
2382
2383 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2384         
2385         * marshal.c: actually cache stelem.ref wrappers.
2386         
2387 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2388
2389         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2390         sections and remove the mono_cli_rva_map () function.
2391
2392 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2393
2394         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2395         by Geoff Norton (<gnorton@customerdna.com>).
2396
2397 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2398
2399         * class.c: fix class loads for pointer types (typeof(int) !=
2400         typeof(int*)).
2401
2402 2004-07-27  Martin Baulig  <martin@ximian.com>
2403
2404         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2405         reading the debugging information from an external ".mdb" file.
2406
2407 2004-07-24  Martin Baulig  <martin@ximian.com>
2408
2409         * reflection.c (mono_image_get_type_info): Only write a class
2410         layout entry if we actually have a size or a packing size.
2411
2412 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2413
2414         * reflection.c (type_get_fully_qualified_name): 
2415         insert cast to get type checking of ?: with non-gcc compilers
2416
2417 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2418
2419         * rand.c: use g_getenv for both lookups of
2420         MONO_EGD_SOCKET
2421
2422 2004-07-17  Martin Baulig  <martin@ximian.com>
2423
2424         * reflection.c (mono_reflection_bind_generic_method_parameters):
2425         Set `gmethod->reflection_info'.
2426
2427 2004-07-17  Martin Baulig  <martin@ximian.com>
2428
2429         * class.c (mono_class_create_from_typedef): Insert the newly
2430         created class into the hash table before computing the interfaces
2431         since we could be called recursively.
2432
2433 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2434
2435         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2436         function to implement stelem.ref in managed code
2437         * class-internals.h, debug-helpers.c: a new wrapper type
2438         for the above.
2439
2440 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2441
2442         * gc.c: allow GC handles to work even when no GC is compiled in.
2443         Fix part of bug #61134 (GetAddrOfPinnedObject).
2444
2445 2004-07-13  Peter Williams  <peter@newton.cx>
2446  
2447         * process.c (complete_path): Make sure we don't attempt to execute
2448         directories.
2449  
2450 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2451
2452         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2453           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2454           and will add/subtract the hour if needed
2455
2456 2004-07-12  Martin Baulig  <martin@ximian.com>
2457
2458         * reflection.c (mono_field_get_object): If we have
2459         `field->generic_info', take the attributes from
2460         `field->generic_info->generic_type'.    
2461
2462 2004-07-12  Martin Baulig  <martin@ximian.com>
2463
2464         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2465         This function must be called before initializing the runtime.
2466         (mono_debug_init_1): New function; call this after initializing
2467         the runtime, but before loading the assembly.  It tells the
2468         debugger to load corlib and the builtin types.
2469
2470         * mono-debug-debugger.c: Did some larger changes in the debugging
2471         code; support recursive class declarations, make sure we actually
2472         add all classes.
2473
2474 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2475
2476         * debug-helpers.c: undo my previous patch and fixed the real issue in
2477         ../mini/exceptions-x86.c
2478
2479 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2480
2481         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2482         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2483         called from other .cctors.
2484
2485 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2486
2487         * loader.c: Removed the mono_loader_wine_init hack now that we are
2488         doing a managed version of Windows.Forms.
2489
2490 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2491
2492         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2493         threadpool.c, threads.c: remove static data from rootset.
2494
2495 2004-07-09  Dick Porter  <dick@ximian.com>
2496
2497         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2498         Don't do any more processing if the matched length was 0.  It was
2499         increasing the size of the string before.  Fixes bug 61167.
2500
2501 2004-07-09  Dick Porter  <dick@ximian.com>
2502
2503         * socket-io.h:
2504         * socket-io.c
2505         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2506         Add support for SO_PEERCRED if its available.
2507
2508 2004-07-09  Peter Bartok <pbartok@novell.com>
2509         * loader.c: winelib.exe.so error message is now only displayed if
2510         MONO_DEBUG is set. To help us avoid questions when people are trying
2511         out the new Managed.Windows.Forms.
2512
2513 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2514
2515         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2516         for isinst and castclass wrappers.
2517
2518         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2519         to libmetadata from the JIT, so they could be used by the marshalling
2520         code and the interpreter.
2521
2522         * marshal.c: Register marshalling related JIT icalls here instead of
2523         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2524         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2525
2526         * metadata.h: Remove unneeded marshalling conversions.
2527
2528         * opcodes.c: Update for new opcodes.
2529         
2530 2004-07-08  Martin Baulig  <martin@ximian.com>
2531
2532         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2533         (mono_debug_get_domain_data): Make this function static.
2534
2535 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2536
2537         * gc.c, object.h: add nice GC handle API for embedders.
2538
2539 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2540
2541         * reflection.c: more changes for the new api
2542
2543         * object.c: When we reflect on a field w/ a constant value, it
2544         will not have a memory location, so we must access metadata. Also,
2545         allow easier reading of strings so that we can read them from
2546         the constant data.
2547
2548         * class.c (mono_class_layout_fields): no need for literal fields here.
2549
2550         * class-internals.h: api changes for const fields
2551
2552         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2553
2554 2004-07-06  Martin Baulig  <martin@ximian.com>
2555
2556         * mono-debug.h: Increment version number to 44.
2557
2558         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2559         now a gpointer, rewrote this whole method.
2560
2561         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2562         function.  Add information about the wrapper in a new "misc table".
2563
2564         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2565         for the new misc table.
2566
2567 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2568
2569         * metadata-internals.h image.c: Add a cache for helper signatures.
2570
2571         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2572
2573 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2574
2575         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2576         delegates from a delegate. Fixes #61033.
2577         
2578         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2579         marshalling of stringbuilder arrays. Fixes #59900.
2580
2581 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2582
2583         * icall.c: Add EnumBuilder:setup_enum_type icall.
2584
2585 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2586
2587         * icall.c: Added a new icall for the property version of
2588         OffsetOfStringData.
2589
2590 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2591
2592         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2593         it has a constant size across platforms.
2594
2595         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2596         stack trace.
2597
2598 2004-06-29  Martin Baulig  <martin@ximian.com>
2599
2600         * mono-debug.c (mono_debug_add_method): Protect the whole function
2601         in mono_debugger_lock(), not just parts of it.
2602
2603 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2604
2605         * reflection.c: make sure padding bytes in heaps are zeroed.
2606
2607 2004-06-24  David Waite  <mass@akuma.org>
2608
2609         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2610         image.c, loader.c, locales.c, marshal.c, metadata.c,
2611         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2612         string-icalls.c, threads.c: change to C90-style comments from C99 /
2613         C++ -style
2614
2615 2004-06-24  Dick Porter  <dick@ximian.com>
2616
2617         * threads.c
2618         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2619         return createdNew.  Fixes bug 60412.
2620
2621         * threads-types.h: 
2622         * icall.c: Add createdNew parameter to CreateMutex icall
2623
2624 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2625
2626         * reflection.c, object-internals.h: save default value in params.
2627
2628 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2629
2630         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2631         no need to build a new path combining that with the application base.
2632         Fixes bug #60442.
2633
2634 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2635
2636         * reflection.c: fixed minor standard compliance issues.
2637
2638 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2639
2640         * reflection.c: fixed issue with encoding some custom attributes
2641         (arrays in properties and fields, bug #60411).
2642
2643 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2644
2645         * reflection.c: fix start address when copying the public key token.
2646
2647 2004-06-23  Martin Baulig  <martin@ximian.com>
2648
2649         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2650         the `exc' object in a static object to put it into the GC's root set.
2651
2652 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2653
2654         * reflection.c: make mono_reflection_setup_internal_class ()
2655         callable a second time to setup a new parent class.
2656
2657 2004-06-23  Dick Porter  <dick@ximian.com>
2658
2659         * threads.c: Check for WAIT_IO_COMPLETION return values.
2660
2661 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2662
2663         * appdomain.c: Removed the g_free on the public key token. Now copy 
2664         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2665         * assembly.c: Added public key token string value when loading 
2666         assemblies. Fix bug #60439.
2667         * icall.c: Added missing informations (like public key) in 
2668         GetReferencedAssemblies. Fix #60519.
2669         * image.h: Changed definition for public key token from const char*
2670         public_tok_value to guchar public_key_token [17];
2671         * reflection.c: Updated for changes to public key token.
2672
2673 2004-06-22  Lluis Sanchez Gual
2674
2675         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2676         for the field in base classes.
2677
2678 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2679
2680         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2681         mark headers as not supported, they are installed only for use by the
2682         debugger.
2683
2684 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2685
2686         * *.c, *.h: avoid namespace pollution in public headers.
2687
2688 2004-06-21  Martin Baulig  <martin@ximian.com>
2689
2690         * exception.c (mono_get_exception_security): It's in
2691         "System.Security", not in "System".
2692
2693         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2694         the exception classes.
2695
2696 2004-06-21  Martin Baulig  <martin@ximian.com>
2697
2698         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2699         Protect the exception object from being finalized.
2700
2701 2004-06-21  Martin Baulig  <martin@ximian.com>
2702
2703         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2704         public function.
2705
2706 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2707
2708         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2709         if it was not loaded before. Fix parts of #60439.
2710
2711 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2712
2713         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2714         code that was broken since Ben's change: wrappers are now
2715         dependent on the method signature only again.
2716
2717 2004-06-21  Martin Baulig  <martin@ximian.com>
2718
2719         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2720         added interface support.
2721
2722 2004-06-21  Martin Baulig  <martin@ximian.com>
2723
2724         * class.c (mono_vtable_get_static_field_data): New public method.
2725
2726 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2727
2728         * filewatcher.c : Windows build fix to be compliant with API changes.
2729
2730 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2731
2732         * class.h, class.c: more accessors.
2733         * metadata.h, metadata.c: prepare for hiding MonoType and
2734         MonoMethodSignature: people should use the accessors from now on
2735         outside of the tree.
2736
2737 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2738
2739         * *.c, *.h: more API cleanups.
2740
2741 2004-06-18  Jackson Harper  <jackson@ximian.com>
2742
2743         * assembly.c: Trace loading assemblies.
2744         * loader.c: Trace loading native libraries.
2745         * mono-config.c: Trace loading config files.
2746         
2747 2004-06-18  Dick Porter  <dick@ximian.com>
2748
2749         * locales.c: Tell ICU the lengths of strings, it can cope with
2750         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2751
2752 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2753
2754         * image.c: swapped name/filename;
2755
2756 2004-06-18  Martin Baulig  <martin@ximian.com>
2757
2758         * mono-debug-debugger.c (write_class): Write the parent class at
2759         the end of the header.
2760
2761 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2762
2763         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2764
2765 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2766
2767         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2768         (bundle_obj): New conditional define.
2769         (BUILT_SOURCES): Remove.
2770         ($(bundle_srcs)): Make parallel-make safe.
2771         (libmonoruntime_la_LIBADD): Make unconditional.
2772         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2773         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2774
2775 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2776
2777         * culture-info-tables.h: It was inconsistent with the latest
2778           supp info files.
2779
2780 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2781
2782         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2783         be loaded.
2784
2785         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2786         with gcc 2.95.
2787
2788 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2789
2790         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2791         cleaned up public header threads.h.
2792
2793 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2794
2795         * Makefile.am, *.c, *.h: more API cleanups.
2796
2797 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2798
2799         * Makefile.am: removed monosn from compilation.
2800         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2801         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2802         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2803         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2804         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2805         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2806
2807 2004-06-15  Jackson Harper  <jackson@ximian.com>
2808
2809         * assembly.c: Make locales lower case when searching the GAC for
2810         assemblies. gacutil will always make locales lowercase when
2811         installing so this effectively makes them case insensitive.
2812         
2813 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2814
2815         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2816         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2817           parameter which allows to choose whether the wait can be interrupted or 
2818           not. Also added the method mono_monitor_enter(), which locks the monitor
2819           using an infinite wait and without allowing interruption.
2820           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2821           interrupted.
2822         * object.h: Added new fields in MonoThread. suspend_event holds the event
2823           used to susped/resume the thread. synch_lock is the lock object to use for
2824           modifying the thread state.
2825         * threads.c: Use the new synch_lock object for locking, instead of "this",
2826           which can generate deadlocks.
2827           Moved thread state change in Thread.Sleep and Thread.Join from managed
2828           to unmanaged code. This avoids a deadlock when the thread was suspended
2829           just after acquiring the thread lock.
2830           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2831           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2832           which is not fully implemented in the io-layer.
2833         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2834
2835 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2836
2837         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2838         threads-types.h: more API cleanups.
2839
2840 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2841
2842         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2843         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2844         threadpool.c, threads.c: first pass at the exported API cleanup.
2845
2846 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2847
2848         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2849
2850 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2851
2852         * icall.c: added internalGetHome.
2853
2854 2004-06-14  Dick Porter  <dick@ximian.com>
2855
2856         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2857         possible to return successfully when '.' or '..' were the only
2858         entries in a directory, but were skipped.  The MonoIOStat was not
2859         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2860         Fixes bug 59574.
2861
2862 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2863
2864         * reflection.c: make binaries run on .Net 1.1 by default.
2865
2866 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2867
2868         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2869
2870 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2871
2872         * marshal.c: keep track of struct size with explicit layout
2873         (bug #59979).
2874
2875 2004-06-12  Martin Baulig  <martin@ximian.com>
2876
2877         * mono-debug-debugger.c: Comment out a debugging g_message().
2878
2879 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2880
2881         * reflection.c, reflection.h: do not free custom attrs that are cached.
2882         * icall.c: use braces to make code clearer.
2883
2884 2004-06-11  Martin Baulig  <martin@ximian.com>
2885
2886         * class.h (MonoInflatedField): New type.
2887         (MonoClassField): Replaced `MonoType *generic_type' with
2888         `MonoInflatedField *generic_info'.
2889
2890         * icall.c
2891         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2892
2893 2004-06-11  Martin Baulig  <martin@ximian.com>
2894
2895         * reflection.c (mono_image_create_method_token): Correctly encode
2896         varargs methods.
2897
2898 2004-06-11  Martin Baulig  <martin@ximian.com>
2899
2900         * metadata.c (mono_metadata_parse_method_signature): When parsing
2901         a MethodDef which has VarArgs, also set sentinelpos if we don't
2902         have any parameters.
2903
2904 2004-06-11  Martin Baulig  <martin@ximian.com>
2905
2906         * verify.c (mono_method_verify): In CEE_CALL, use
2907         mono_method_get_signature() to get the method's signature, unless
2908         we're a PInvoke method.
2909
2910 2004-06-10  Jackson Harper  <jackson@ximian.com>
2911
2912         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2913         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2914         logical name as the supplied path is just a prefix to the gac not
2915         the direct path to it.
2916         
2917 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2918
2919         * reflection.c: make the token for a created method match
2920         the token of the MethodBuilder it was created from
2921         (IKVM requires this behaviour now).
2922
2923 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2924
2925         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2926         reflection.c, socket-io.c: leak fixes.
2927
2928 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2929
2930         * icall.c: handle sentinel pos in vararg methods in position different
2931         from 0.
2932
2933 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2934
2935         * culture-info-tables.h: freshly generated.
2936
2937 2004-06-09  Martin Baulig  <martin@ximian.com>
2938
2939         * loader.c (mono_get_method_constrained): Call `mono_class_init
2940         (constrained_class)'.   
2941
2942 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2943
2944         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2945         any methods. Fixes #59629.
2946
2947 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2948
2949         * culture-info-tables.h: reflecting locale-builder updates.
2950
2951 2004-06-08  Dick Porter  <dick@ximian.com>
2952
2953         * object.h:
2954         * locales.c: Fixed compile warnings, including a real bug in
2955         CompareInfo_internal_compare.
2956         
2957 2004-06-08  Dick Porter  <dick@ximian.com>
2958
2959         * locales.c
2960         (ves_icall_System_Globalization_CompareInfo_internal_index):
2961         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2962         Double-check the resuls of usearches, because ICU currently
2963         ignores most of the collator settings here.  Fixes bug 59720.
2964         
2965 2004-06-08  Dick Porter  <dick@ximian.com>
2966
2967         * locales.c
2968         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2969         Fix memory leak and segfault-causing typo.  No idea how this one
2970         lasted so long without being noticed.
2971
2972 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2973
2974         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2975         any methods. Fixes #59629.
2976
2977 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2978
2979         * assembly.c:
2980         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2981         own the critical section before). Removed dead code (that's done
2982         in the preload hook).
2983
2984         (mono_assembly_load_with_partial_name): call the preload hook.
2985
2986 2004-06-08  Martin Baulig  <martin@ximian.com>
2987
2988         * metadata.c (mono_metadata_signature_alloc): Default
2989         `sentinelpos' to -1.
2990
2991         * reflection.c (mono_image_get_array_token): Likewise.
2992
2993 2004-06-08  Martin Baulig  <martin@ximian.com>
2994
2995         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2996
2997         * metadata.c (mono_metadata_parse_method_signature): When parsing
2998         a MethodDef which has VarArgs, set sentinelpos.
2999
3000         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
3001         `gint16' since we're using -1 for non-varargs methods.
3002
3003         * reflection.c
3004         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
3005         (method_encode_signature): Added varargs support.
3006         (method_builder_encode_signature): Likewise.
3007         (mono_image_get_varargs_method_token): New static method.
3008         (mono_image_create_method_token): New public method; this is
3009         called via an icall instead of mono_image_create_token() when
3010         calling a varargs method.       
3011
3012 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
3013
3014         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
3015
3016 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3017
3018         * culture-info-tables.h : Reflecting the latest locale-builder that
3019           fixed empty array representation ({} to {0}).
3020
3021 2004-06-07  Jackson Harper  <jackson@ximian.com>
3022
3023         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
3024         looking up extra gac paths. This allows MONO_GAC_PATH to act
3025         exactly like a prefix.
3026         
3027 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3028
3029         * reflection.c (mono_reflection_type_from_name): Make a copy of the
3030         type name before modifying it. Fixes #59405.
3031
3032 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3033
3034         * culture-info.h: added fields for "all datetime patterns".
3035         * locales.c: (  ves_icall_System_Globalization_CultureInfo
3036           _construct_datetime_format ()): fill xxx_patterns fields.
3037         * object.h: added fields for "all datetime patterns" to
3038           MonoDateTimeFormatInfo.
3039         * culture-info-tables.h: reflecting locale-builder updates.
3040
3041 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3042
3043         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
3044         the event has no add and remove methods. Fixes #59629.
3045
3046 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
3047
3048         * object.c: Fixed possible integer overflow when allocating large
3049         strings.
3050
3051 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3052
3053         * culture-info-tables.h: reflecting locale-builder updates.
3054
3055 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3056
3057         * culture-info-tables.h: reflecting locale-builder updates.
3058
3059 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
3060
3061         * culture-info-tables.h: reflecting locale-builder updates.
3062
3063 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
3064
3065         * threads.c: Made Thread.Sleep abortable.
3066
3067 2004-06-02  Martin Baulig  <martin@ximian.com>
3068
3069         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
3070
3071         * debug-mono-symfile.h: Bumped symbol file version number to 37.
3072
3073 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
3074
3075         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
3076
3077 2004-05-30  Jackson Harper  <jackson@ximian.com>
3078
3079         * reflection.c: Do not hardcode assembly versions or public key
3080         tokens anymore. All of this except the corlib section was dead
3081         code anyways.
3082         
3083 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
3084
3085         * object.c (mono_runtime_invoke_array): Automatically create boxed
3086         objects for byref valuetypes if needed. Fixes #59300.
3087         
3088         * object.c (mono_method_return_message_restore): Handle 
3089         MONO_TYPE_OBJECT as well.
3090
3091 2004-05-28  Jackson Harper  <jackson@ximian.com>
3092
3093         * reflection.c: The modified type encoding was causing build
3094         problems. Reverted for now.
3095         
3096 2004-05-28  Jackson Harper  <jackson@ximian.com>
3097
3098         * reflection.c/h: Take an assembly ref so that we dont create
3099         fully qualified names when encoding types in the same assembly as
3100         the custom attribute being emitted.
3101         * appdomain.c: Increment version number.
3102         
3103 2004-05-26  Duncan Mak  <duncan@ximian.com>
3104
3105         * icall.c
3106         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
3107         Set the full version number (major, minor, build, revision).
3108
3109 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
3110
3111         * marshal.c (emit_struct_conv): increment src/dst after blit
3112         (mono_marshal_get_managed_wrapper,
3113         mono_marshal_get_native_wrapper): make sure we have marshalling
3114         info before marshalling params (info computation affects
3115         blittable)
3116
3117         * class.c (class_compute_field_layout): correctly deal with
3118         blittable
3119         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
3120         value types (as per what windows dows by default)
3121         (mono_class_setup_mono_type): System.ValueType is blittable
3122         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
3123         blittable
3124
3125         * marshal.c (mono_marshal_load_type_info): flag types  as
3126         non-blittable if the native layout doesn't match the managed
3127         layout
3128
3129 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3130
3131         * appdomain.c: don't add stuff in the private search path that is
3132         above the application base. If application base is not set, there's
3133         no private search path.
3134
3135 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
3136
3137         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
3138         byref struct arguments in native->managed marshalling.
3139
3140 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
3141
3142         * marshal.c (mono_marshal_get_runtime_invoke): correctly
3143         cache methods using signature (special case for methods
3144         that are value type or string class)
3145         
3146         * image.c (mono_image_close): clean up allocated GSList's
3147         in runtime_invoke_cache.
3148
3149 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3150
3151         * mono-config.c: set the correct path for mono_cfg_dir on windows when
3152         there's no MONO_CFG_DIR environment variable defined.
3153
3154 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3155
3156         * threads.c: windows version must be >= 0x0500 to include OpenThread.
3157
3158 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
3159
3160         * threadpool.c: Really wait for 500ms after the async call, even if the wait
3161           is interrumped.
3162         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
3163           before waiting for it, and call CloseHandle after the wait to unref it.
3164           This will make sure that handles are not disposed too early.
3165
3166 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3167
3168         * appdomain.c:
3169         * appdomain.h:
3170         * icall.c: removed
3171         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
3172         needed now.
3173
3174         * object.c: se the application_base only for the domain that runs
3175         Main. Fixes bug #59216,
3176
3177 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3178
3179         * appdomain.c:
3180         * object.c: only the domain in which Main is run have
3181         SetupInformation.ConfigurationFile set, so moved a few lines from
3182         appdomain.c to object.c.
3183
3184 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3185
3186         * appdomain.c: we tried to load [name].(dll|exe), but according
3187         to bug #57710, we must also try [culture]/[name].(dll|exe) and
3188         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
3189         There's a test case attached to bug #58922.
3190
3191 2004-05-27  Dick Porter  <dick@ximian.com>
3192
3193         * icall.c:
3194         * file-io.c: Implemented icalls for locking and unlocking regions
3195         in a file.
3196         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3197         FALSE on error (fixes both compiler warning and real bug.)
3198
3199 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
3200
3201         * culture-info-tables.h: reflecting locale-builder updates.
3202
3203           (Added missing ChangeLog entry for 05/26)
3204
3205 2004-05-27  Jackson Harper  <jackson@ximian.com>
3206
3207         * locales.c: Fix some cut and paste errors.
3208         
3209 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3210
3211         * mono-config.c: set the correct path for config. directory on windows.
3212
3213 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3214
3215         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3216           on win32.
3217
3218 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3219
3220         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3221         from pinvoke functions.
3222         
3223         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3224
3225 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3226
3227         * culture-info-tables.h: reflecting locale-builder updates.
3228
3229 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3230
3231         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3232         #59086.
3233
3234 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3235
3236         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3237         * icall.c: Modified icalls for RNG.
3238         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3239         Windows (CryptoAPI).
3240
3241 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3242
3243         * locales.c: Fix build.
3244
3245 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3246
3247         * culture-info-tables.h: reflecting locale-builder updates.
3248
3249 2004-05-25  Jackson Harper  <jackson@ximian.com>
3250
3251         * locales.c: When creating the current culture use the $LANGs
3252         specific culture. So DateTimeFormat and NumberFormat entries are created.
3253         
3254 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3255
3256         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3257         a char array as parameter.
3258
3259 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3260
3261         * image.c: In mono_image_open(), always use an absolute path name to
3262           look for already loaded images.
3263
3264 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3265
3266         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3267         missing in the windows build (like older cygwin include files).
3268
3269 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3270
3271         * icall.c: Fixed check for possible integer overflow in Buffer_
3272         BlockCopy icall. Replaced comments style // by /* */.
3273
3274 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3275
3276         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3277         
3278         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3279         check after MONO_VTADDR. Fixes pinvoke2.exe.
3280
3281         * marshal.h marshal.c metadata.h: Add beginnings of support for
3282         ftnptr -> delegate marshalling.
3283
3284 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3285
3286         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3287         * threads.c: Fix warnings.
3288
3289 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3290
3291         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3292         * icall.c: Registered icalls for Suspend and Resume.
3293         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3294           Thread.Abort.
3295         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3296         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3297         * process.c: Use WaitForSingleObjectEx.
3298         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3299           checkpoints.
3300         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3301           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3302           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3303           background threads. Added basic support for Abort in Windows.
3304           Start new threads using a managed delegate invoke wrapper. This wrapper
3305           has an interruption checkpoint that is needed since an interruption
3306           can be requested before the thread leaves the unmanaged code that starts 
3307           the thread.
3308         * marshal.c: Added interruption checkpoint after every native call, and
3309           also before managed calls for wrappers called from unmanaged code to
3310           go into managed code.
3311         * object.h: Added new field in MonoThread to keep track of interruption
3312           requests.
3313
3314 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3315
3316         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3317         calls.
3318
3319 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3320
3321         * appdomain.c:
3322         * assembly.c:
3323         * gc.c:
3324         * locales.c:
3325         * mono-config.c:
3326         * rand.c: getenv -> g_getenv (windows!)
3327
3328         * process.c: complete_path is also used on non-windows platforms.
3329
3330 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3331
3332         * icall.c: new signature for Process_Start.
3333
3334         * process.[ch]: new signature for Process_Start. If we're on windows
3335         and UseShellExecute is false, we have to search for the program by
3336         ourselves if we don't get a full path.
3337
3338 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3339
3340         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3341         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3342
3343 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3344
3345         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3346         Fixes bug #58373.
3347
3348 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3349
3350         * process.c: use double quotes to quote program name and arguments on
3351         windows. Fixes bug #58575.
3352
3353 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3354
3355         * file-io.c: don't return "." and ".." when using windows Find*File.
3356
3357 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3358
3359         * marshal.c: Don't pass wrappers to message init because method 
3360         addressed used to lookup metadata. part of remoting[2|3] fix.
3361
3362 2004-05-15  Jackson Harper  <jackson@ximian.com>
3363
3364         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3365         path is essentially the same as MONO_PATH except that it points to
3366         GACs instead of lib directories.
3367         * loader.h: The user gac is gone so we dont need function to
3368         enable/disable it.
3369         * mono-config.c: user gac option is now gone.
3370         
3371 2004-05-15  Jackson Harper  <jackson@ximian.com>
3372
3373         * culture-info.h: Make defines more consistent, add calendar data
3374         to the culture info table.
3375         * culture-info-tables.h: Add basic calendar data. Basically
3376         everyone gets default gregorian until all the data is
3377         updated.
3378         * locales.c: Use the new consistent defines. Set calendar data for
3379         culture info objects.
3380         * object.h: add a field for calendar data to CultureInfo
3381         
3382 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3383
3384         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3385         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3386         a signature.
3387         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3388         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3389         an extra param that is the pointer of the method to invoke. The IL for
3390         the invoke method is no longer specific to the method, but to the
3391         signature of the method. Thus, we can share the same code for multiple
3392         methods. This reduces the number of methods that have to be compiled.
3393
3394 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3395
3396         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3397
3398         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3399
3400         * icall.c: Optimize Buffer.BlockCopy.
3401
3402 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3403
3404         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3405         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3406         quote). Changed them to "MMMM yyyy".
3407
3408 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3409
3410         * rand.c
3411         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3412
3413 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3414
3415         * reflection.h: Updated after changes to managed structures.
3416
3417         * appdomain.c: Bump corlib version.
3418
3419 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3420
3421         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3422         windows.
3423
3424 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3425
3426         * Makefile.am: link to ../os/libmonoos.la on windows.
3427
3428         * assembly.c:
3429                 -If MONO_DEBUG, warn about non-existing directories in
3430                 MONO_PATH.
3431                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3432                 compile time variable.
3433                 -Removed init_default_path and call mono_set_rootdir from
3434                 libmonoos.a instead (windows only).
3435
3436         * assembly.h: declare mono_assembly_getrootdir().
3437
3438         * domain.c:
3439         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3440
3441         * loader.c: s/getenv/g_getenv/
3442
3443 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3444
3445         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3446
3447         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3448
3449         * metadata.h: Add new marshalling conversions.
3450
3451         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3452         function.
3453
3454         * reflection.c (mono_reflection_get_type): Lookup the type in all
3455         modules of a multi-module assembly. Fixes #58291.
3456
3457 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3458
3459         * threads.c: Before aborting a background, set the StopRequested
3460         state.  This avoids throwing the Abort exception.
3461         In mono_thread_manage, don't continue with the shutdown until all
3462         aborted threads have actually stopped.
3463
3464 2004-05-10  Jackson Harper  <jackson@ximian.com>
3465
3466         * locales.c: Remove the modifier from culture names.
3467         
3468 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3469
3470         * Makefile.am: monosn is not installed any more. It has been deprecated
3471         in favor of sn.
3472
3473 2004-05-07  Jackson Harper  <jackson@ximian.com>
3474
3475         * locales.c
3476         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3477         Fix array construction, add bailout if the length is 0.
3478
3479 2004-05-07  Dick Porter  <dick@ximian.com>
3480
3481         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3482         machine doesn't have a DNS entry.  Patch by Urs Muff
3483         (umuff@quark.com), fixes bug 57928.
3484
3485 2004-05-06  Jackson Harper  <jackson@ximian.com>
3486
3487         * reflection.c: Handle null PublicTokens properly. alloc mem for
3488         assembly names culture so we dont crash when freeing it.
3489         
3490 2004-05-06  Jackson Harper  <jackson@ximian.com>
3491
3492         * assembly.c: Check the usergac when loading with partial names.
3493         
3494 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3495
3496         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3497         does nothing for now (not required for Linux/Windows) but the class
3498         library can call it (and a newer or modified runtime could need it).
3499         * icall.c: Registred icall.
3500
3501 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3502
3503         * loader.c: prints a message on module loading error we set MONO_DEBUG
3504         environment variable.
3505
3506 2004-05-05  Jackson Harper  <jackson@ximian.com>
3507
3508         * appdomain.c: Handle PublicKeyToken=null properly.
3509         
3510 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3511
3512         * environment.c|h: Added icall ves_icall_System_Environment_
3513         GetOSVersionString to get the current OS version as a string.
3514         * icall.c: Registred icall.
3515
3516 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3517
3518         * object.c: in mono_object_get_virtual_method(), take into account that
3519         non-virtual methods don't have a slot in the vtable. Check needed when
3520         the object is a proxy.
3521
3522 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3523
3524         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3525         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3526
3527         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3528
3529         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3530         passed when a valuetype is expected.
3531
3532         * object.c (mono_unhandled_exception): Only set the exit code if the
3533         exception happens in the main thread. Fixes thread5.exe.
3534
3535         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3536         invalid names. Fixes #58047.
3537
3538 2004-05-03  Jackson Harper  <jackson@ximian.com>
3539
3540         * assembly.c: This line was committed accidently and is unneeded.
3541         
3542 2004-05-03  Jackson Harper  <jackson@ximian.com>
3543
3544         * icall.c: Add new icall for Assembly::LoadWithPartialName
3545         * assembly.c/.h: new function that probes the GAC to load partial
3546         assembly names by Paolo Molaro.
3547         
3548 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3549
3550         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3551         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3552         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3553         full type name.
3554
3555 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3556
3557         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3558         * reflection.c: fix bug when parsing a full type name and Version is not
3559         the last thing in the string.
3560
3561 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3562
3563         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3564         crashes when it is freed.
3565
3566 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3567
3568         * assembly.c: print the compat warning to stderr.
3569
3570 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3571
3572         * assembly.c (mono_assembly_load_references): Add a compatibility
3573         hack to run old applications that might be still referencing the
3574         3300-based assemblies, only do this for System.xxx.
3575
3576 2004-05-01  Jackson Harper  <jackson@ximian.com>
3577
3578         * appdomain.c: If the culture is neutral we set it to "".
3579         
3580 2004-04-29  Jackson Harper  <jackson@ximian.com>
3581
3582         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3583
3584 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3585  
3586         * string-icalls.c: added low overhead function for copying chars
3587         * icall.c: added needed icall for the above function
3588  
3589 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3590
3591         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3592         Environment.GetLogicalDrives.
3593
3594 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3595
3596         * rand.c: try and talk to egd or prngd
3597         for random bytes if opening devices fail.
3598
3599 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3600
3601         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3602         alignment for the type using the native alignment of its members 
3603         instead of using klass->min_align.
3604
3605         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3606
3607 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3608
3609         * file-io.c:
3610         * socket-io.c: added check for sys/aio.h.
3611
3612 2004-04-28  Dick Porter  <dick@ximian.com>
3613
3614         * threads.c: Don't abort a thread thats already aborting, when
3615         terminating everything.
3616
3617 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3618
3619         * icall.c: added 2 new async calls for Socket.
3620
3621         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3622         IO on *nix systems.
3623
3624         * threadpool.c: removed unused variable.
3625
3626 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3627
3628         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3629
3630 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3631
3632         * locales.c: put back string_invariant_tolower () and
3633         string_invariant_toupper ().
3634
3635 2004-04-26 David Waite <mass@akuma.org>
3636
3637         * file-io.h:
3638         * socket-io.h:
3639         * threads.h:
3640         * unicode.h: remove comma from end of enumeration declarations
3641
3642 2004-04-26 David Waite <mass@akuma.org>
3643
3644         * debug-mono-symfile.h:
3645         * decimal.c:
3646         * mono_debug.h:
3647         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3648
3649
3650 2004-04-26  Jackson Harper  <jackson@ximian.com>
3651
3652         * appdomain.c: Increment version number.
3653         
3654 2004-04-26  Jackson Harper  <jackson@ximian.com>
3655
3656         * appdomain.c: Set assembly references public token value when
3657         PublicKeyToken is specified, not the hash_value. Free public token
3658         values when free assembly name data. Previously the public key
3659         token was hex decoded, however we are using hex encoded public key
3660         tokens, so this is not neccasary.
3661         * assembly.c: Lookup assemblies in the gac if their public token
3662         value is set. Add function to allow enabling user gac
3663         lookups. Specify whether or not the assembly was loaded from the
3664         GAC. Compare full assembly names when checking the cache for
3665         assemblies (Temporarily disabled see comment in code). Remove
3666         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3667         specifies trace-loader they get extra info to stdout on the
3668         loading of assemblies.
3669         * image.h: Add a field for an assembly references public token
3670         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3671         whether an assembly has been loaded from the GAC.
3672         * image.c: Remove a corlib -> mscorlib name mapping.
3673         * loader.h: Add function to enable/disable the user gac.
3674         * mono-config.c: Check if the usergac is enabled in the config
3675         file.
3676         * icall.c: New icall to determine whether or not an assembly has
3677         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3678         * tabldefs.h: Add constant for assemblyref flag that specifies a
3679         full public key is used instead of a public token.
3680         * reflection.c: Remove mscorlib -> corlib mappings. Set
3681         PublicTokenValue instead of hash value. This value is a hex
3682         string so it does not need to be expanded.
3683
3684 2004-04-26  Martin Baulig  <martin@ximian.com>
3685
3686         * mono-debug-debugger.c (mono_debugger_initialize): Set
3687         `mono_debugger_initialized' before calling mono_debug_lock().
3688
3689 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3690
3691         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3692           InternalToUpper/InternalToLower.
3693         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3694           removed invariant culture shortcut.  This is now done in managed code.
3695         * locales.c: (string_invariant_toupper/tolower) removed.
3696
3697 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3698
3699         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3700         Added Poll internal call.
3701
3702         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3703         call for Poll. Select was too heavy for polling a single socket.
3704
3705         * threadpool.[ch]: added mono_threadpool_cleanup.
3706         * threads.c: use it. Don't use Thread_Abort on windows.
3707
3708 2004-04-23  Martin Baulig  <martin@ximian.com>
3709
3710         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3711
3712 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3713
3714         * icall.c: Registred new icalls for key pair protection and added an
3715         icall for Environment.GetFolderPath on Windows.
3716         * security.c|h: Added new icalls for key pair protection.
3717
3718 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3719
3720         * socket-io.c: don't display the non-supported family warning for known
3721         families. Now this is not displayed on windows when checking support
3722         for IPv4/IPv6.
3723
3724 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3725
3726         * class.c: don't display the layout warning for static fields.
3727
3728 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3729
3730         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3731         * locales.c, locales.h: Added new icalls for culture-specific
3732         Char.ToLower and Char.ToUpper.
3733
3734 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3735
3736         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3737         by David Waite.
3738
3739 2004-04-20  Martin Baulig  <martin@ximian.com>
3740
3741         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3742         of the type name before passing it to mono_reflection_type_from_name().
3743
3744 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3745
3746         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3747         encodings here. Fixes #56965.
3748
3749 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3750
3751         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3752         fix test on strstr result not that I can see anything that
3753         relies on the result.
3754
3755 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3756
3757         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3758         Fixes #57081.
3759
3760         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3761
3762         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3763         function to determine which marshalling to use for strings. Fixes
3764         #56965.
3765
3766         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3767
3768         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3769
3770 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3771
3772         * icall.c: #include mono-config.h
3773
3774 2004-04-15  Jackson Harper  <jackson@ximian.com>
3775
3776         * culture-info-tables.h: Fix date formats for en-US culture.
3777         
3778 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3779
3780         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3781         ThreadPool.SetMinThreads.
3782         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3783         ThreadPool.SetMinThreads.
3784
3785 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3786
3787         * mono-config.c: also load the .config file in the directory
3788         where the assembly was found.
3789
3790 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3791
3792         * assembly.c: load per-assembly config files.
3793         * icall.c: decrapified code to get the config dir and moved to
3794         mono-config.c.
3795         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3796         per-assembly config files. When doing a dll map lookup give precedence
3797         to the per-assembly data.
3798
3799 2004-04-14  Martin Baulig  <martin@ximian.com>
3800
3801         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3802         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3803         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3804
3805         * mono-debugger-debugger.c: While the debugger is locked, remember
3806         whether the symbol tables have changes and send one single
3807         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3808
3809 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3810
3811         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3812
3813         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3814         function.
3815
3816         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3817         account when marshalling string arrays. Fixes #56965.
3818
3819 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3820
3821         * icall.c: Add new icalls mapping for security.
3822         * security.c|h: Add internal calls for WindowsIdentity,
3823         WindowsImpersonationContext and WindowsPrincipal.
3824
3825 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3826
3827         * class.c: Added comment to ensure the System.MonoDummy class
3828         is removed when no longer necessary
3829
3830 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3831
3832         * appdomain.c: Pass arguments to the bootstraping exceptions to
3833         minimize JITed methods at boot
3834
3835         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3836         second string to be null.
3837
3838         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3839         Change the protocol to minimize the JIT methods at startup.  Now
3840         it Returns the internal codepage, if the value of "int_code_page"
3841         is 1 at entry, and we can not compute a suitable code page
3842         number, returns the code page as a string.
3843
3844 2004-04-13  Jackson Harper  <jackson@ximian.com>
3845
3846         * culture-info-tables.h: Fix number of decimal digits for all
3847         english locales.
3848
3849 2004-04-13  Jackson Harper  <jackson@ximian.com>
3850
3851         * icall.c: Clairfy out of sync error message. It is not always
3852         your corlib that is out of sync.
3853
3854 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3855
3856         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3857         properties when only the set accessor is overriden. Fixes #55874.
3858
3859 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3860
3861         * assembly.c (mono_assembly_load_references): Make this thread safe.
3862         Fixes #56327.
3863
3864 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3865
3866         * monosn.c: Add missing initialization calls.
3867
3868 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3869
3870         * locales.c:
3871         ves_icall_System_Globalization_CultureInfo_construct_number_format
3872         Fix g_assert so it compiles on fussier compilers re int/ptr
3873         mismatch
3874
3875 2004-04-08  Dick Porter  <dick@ximian.com>
3876
3877         * socket-io.h:
3878         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3879         53992.  Also rearrange the code so that the internal calls return
3880         an error value and exceptions are thrown from managed code.
3881
3882         * icall.c: Add type info to the socket icalls.
3883
3884 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3885
3886         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3887         owes me a beer.
3888
3889 2004-04-07  Martin Baulig  <martin@ximian.com>
3890
3891         * class.c (mono_class_from_generic_parameter): Don't default
3892         `klass->parent' to `mono_defaults.object_type'.
3893
3894 2004-04-07  Martin Baulig  <martin@ximian.com>
3895
3896         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3897         `param->pklass->reflection_info'.       
3898
3899 2004-04-07  Jackson Harper  <jackson@ximian.com>
3900
3901         * culture-info-tables.h: Fix date separator symbol.
3902         
3903 2004-04-07  Martin Baulig  <martin@ximian.com>
3904
3905         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3906         from System.Type to System.MonoType.
3907
3908 2004-04-07  Martin Baulig  <martin@ximian.com>
3909
3910         * reflection.h
3911         (MonoReflectionGenericParam): Added `has_reference_type' and
3912         `has_value_type' fields.
3913
3914         * reflection.c (mono_image_get_generic_param_info): Encode the
3915         correct flags if we have the `class' or `struct' constraint.
3916
3917 2004-04-07  Martin Baulig  <martin@ximian.com>
3918
3919         * reflection.h
3920         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3921
3922 2004-04-07  Jackson Harper  <jackson@ximian.com>
3923
3924         * appdomain.c: Revert extra patches, just wanted to bump the
3925         version number.
3926         
3927 2004-04-07  Jackson Harper  <jackson@ximian.com>
3928
3929         * Makefile.am: Add culture-info private headers.
3930         * icall.c: Add new icalls for contructing locales.
3931         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3932         * locales.h: Declare new culture info construction methods.
3933         * object.h: Add new fields used to avoid the CultureMap to
3934         MonoCultureInfo.
3935         * culture-info.h: Definition of structs used in the culture info
3936         tables.
3937         * culture-info-tables.h: Autogenerated tables that contain culture
3938         info data. This file was generated with the locale-builder tool.
3939         * appdomain.c: Incement corlib version number.
3940         
3941 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3942
3943         * appdomain.c: (mono_runtime_init) move mono_thread_init
3944         to before mono_object_new calls so critical sections
3945         are initialized before use.
3946
3947 2004-04-07  Martin Baulig  <martin@ximian.com>
3948
3949         * icall.c
3950         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3951         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3952         (ves_icall_MonoGenericParam_initialize): Removed.
3953         (monogenericparam_icalls): Removed.
3954         (generictypeparambuilder_icalls): Added new table for
3955         System.Reflection.Emit.GenericTypeParameterBuilder.
3956
3957         * reflection.c
3958         (mono_reflection_define_generic_parameter): Removed.
3959         (mono_reflection_initialize_generic_parameter): This is now called
3960         from GenericTypeParameterBuilder's .ctor.
3961
3962 2004-04-06  Martin Baulig  <martin@ximian.com>
3963
3964         * class.c (mono_class_init): Don't inflate nested classes in a
3965         generic instance.
3966         (mono_type_get_name_recurse): Include the generic arguments for
3967         generic instances and generic type declarations.
3968         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3969         (_mono_class_get_instantiation_name): Removed.
3970         (mono_class_create_generic): Always use `gklass->name' as our name.
3971
3972         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3973
3974         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3975         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3976         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3977         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3978         closed generic methods here.
3979
3980         * reflection.c
3981         (mono_reflection_generic_inst_get_nested_types): Removed.
3982         (inflate_mono_method): Copy the generic parameters from the
3983         MonoMethodHeader into out MonoGenericMethod.
3984
3985 2004-04-06  Martin Baulig  <martin@ximian.com>
3986
3987         * row-indexes.h
3988         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3989
3990         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3991
3992         * reflection.c (build_compressed_metadata): If we have any entries
3993         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3994         set the header version to 1.1.
3995
3996 2004-04-06  Martin Baulig  <martin@ximian.com>
3997
3998         * class.c (mono_class_init): If we're a generic instance,
3999         initialize our nested classes, too.
4000         (_mono_class_get_instantiation_name): Deal with the new `!%d'
4001         suffix. 
4002
4003 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4004
4005         * process.c: quote the argument passed to the shell on windows.
4006
4007 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
4008
4009         * threads.c (mono_alloc_special_static_data): Allow this to be
4010         called during startup.
4011
4012 2004-04-02  Martin Baulig  <martin@ximian.com>
4013
4014         * icall.c
4015         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
4016
4017 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
4018
4019         * icall.c: Fix build.
4020
4021 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
4022
4023         * Makefile.am: Added security.c|h.
4024         * icall.c: Added icall for get_UserName;
4025         * security.c: New file for security related icalls. Added function
4026         get_UserName for System.Environment (fix #56144).
4027         * security.h: New. Header file for security.c
4028
4029 2004-04-02  Dick Porter  <dick@ximian.com>
4030
4031         * icall.c: Deleted the icalls that were obsoleted some time ago
4032         by the ICU string code, and which were mixed into the icall
4033         rearranging.  Fixes bug 55969.
4034
4035         * string-icalls.h: 
4036         * string-icalls.c: Deleted the code that those icalls reference.
4037
4038 2004-04-01  Martin Baulig  <martin@ximian.com>
4039
4040         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
4041
4042         * class.c (mono_class_from_generic_parameter): Don't set 
4043         TYPE_ATTRIBUTE_INTERFACE.
4044         (my_mono_class_from_generic_parameter): Likewise.
4045
4046 2004-04-01  Martin Baulig  <martin@ximian.com>
4047
4048         * loader.c (find_method): Added an optional `MonoClass *ic'
4049         argument to search in a specific interface.
4050         (mono_get_method_constrained): New public function.
4051
4052 2004-04-01  Martin Baulig  <martin@ximian.com>
4053
4054         * reflection.c (mono_image_get_generic_field_token): Use the
4055         `handleref' cache here.
4056
4057 2004-04-01  Martin Baulig  <martin@ximian.com>
4058
4059         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
4060
4061         * reflection.c (create_generic_typespec): Use the `typespec' hash
4062         here, not the `typeref' one.    
4063
4064 2004-04-01  Martin Baulig  <martin@ximian.com>
4065
4066         * class.c (mono_class_inflate_generic_type): Moved the
4067         functionality into a new static inflate_generic_type() which
4068         returns NULL if it didn't do anything.  Only increment the
4069         `mono_stats.inflated_type_count' if we actually inflated
4070         something.
4071         (mono_class_get_full): Check the classes type to see whether we
4072         need to inflate it; also inflate MONO_TYPE_(M)VAR.
4073
4074 2004-04-01  Jackson Harper  <jackson@ximian.com>
4075
4076         * reflection.c: Set culture for assembly references.
4077         
4078 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
4079
4080         * reflection.[ch], icall.[ch], Fix support for pinning variables.
4081
4082 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4083
4084         * assembly.c:
4085         (do_mono_assembly_open): the critical section also covers
4086         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
4087
4088 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4089
4090         * threads.c:
4091         (mono_manage_threads): abort the background threads when finishing.
4092         Fixes bug #47232.
4093
4094 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4095
4096         * gc.c: only close the done_event handle if there was no timeout.
4097         C-ified comments.
4098
4099 2004-03-30  Martin Baulig  <martin@ximian.com>
4100
4101         * icall.c (icall_entries): It's called "System.Activator", not
4102         "System.Activation".    
4103
4104 2004-03-30  Martin Baulig  <martin@ximian.com>
4105
4106         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
4107         (mono_class_create_from_typespec): Likewise.
4108
4109 2004-03-30  Martin Baulig  <martin@ximian.com>
4110
4111         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
4112         `has_ctor_constraint' and `initialized'.
4113
4114 2004-03-30  Martin Baulig  <martin@ximian.com>
4115
4116         * reflection.c (encode_new_constraint): New static function to add
4117         the constructor constraint attribute to a type parameter.
4118         (encode_constraints): Call encode_new_constraint() if necessary.
4119
4120         * reflection.h
4121         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
4122
4123         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
4124         
4125 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
4126
4127         * reflection.c, icall.c: add support for pinning variables. 
4128
4129 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
4130
4131         * marshal.c (mono_marshal_get_managed_wrapper):
4132         init bool local with zero rather than null.
4133
4134 2004-03-29  Martin Baulig  <martin@ximian.com>
4135
4136         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
4137         the "official" behavior here.
4138         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
4139
4140 2004-03-29  Martin Baulig  <martin@ximian.com>
4141
4142         * icall.c: Reflect latest API changes.
4143
4144 2004-03-29  Martin Baulig  <martin@ximian.com>
4145
4146         * loader.c (mono_get_method_from_token): Also call
4147         mono_metadata_load_generic_params () for abstract and interface
4148         methods; replace the type arguments in the method signature with
4149         the ones which are loaded from the metadata.
4150
4151 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
4152
4153         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
4154         of the lock is not the current thread. MS.NET don't do it, in spite of
4155         what the documentation says. See bug #56157.
4156
4157 2004-03-28  Martin Baulig  <martin@ximian.com>
4158
4159         * class.c (mono_class_init): Don't call init_properties() and
4160         init_events() for generic instances; set `prop->parent' when
4161         inflating properties.
4162
4163         * reflection.c (mono_generic_inst_get_object): Call
4164         `mono_class_init (ginst->klass)'.
4165         (mono_type_get_object): Only create a MonoGenericInst if your
4166         generic type is a TypeBuilder.
4167         (do_mono_reflection_bind_generic_parameters): Only set
4168         `ginst->is_dynamic' if our generic type is a TypeBuilder.
4169
4170 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
4171
4172         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
4173         Fixes #56091.
4174
4175 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4176
4177         * icall.c: added Kill_internal icall.
4178         * process.[ch]: added Kill_internal icall.
4179
4180 2004-03-25  Martin Baulig  <martin@ximian.com>
4181
4182         * class.h (MonoStats): Added `generic_instance_count',
4183         `inflated_method_count', `inflated_type_count' and
4184         `generics_metadata_size'.       
4185
4186 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4187
4188         * reflection.c: no warnings now.
4189
4190 2004-03-25  Martin Baulig  <martin@ximian.com>
4191
4192         * class.c (mono_class_get_full): New public function; does a
4193         mono_class_get(), but also takes a `MonoGenericContext *'.
4194
4195         * loader.c (mono_field_from_memberref): Renamed to
4196         `field_from_memberref', made static and added `MonoGenericContext *'
4197         argument.
4198         (mono_field_from_token): Added `MonoGenericInst *' argument.
4199         (method_from_memberef): Likewise.
4200         (mono_get_method_from_token): Likewise.
4201         (mono_get_method_full): New public function; does a
4202         mono_get_method(), but also takes a `MonoGenericContext *'.
4203
4204         * verify.c (mono_method_verify): Get the method's generic context
4205         and pass it to mono_field_from_token(), mono_get_method_full() and
4206         mono_class_get_full().
4207
4208 2004-03-25  Martin Baulig  <martin@ximian.com>
4209
4210         * class.c (mono_class_inflate_generic_type): Take a
4211         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4212         `MonoGenericMethod *'.
4213
4214 2004-03-25  Martin Baulig  <martin@ximian.com>
4215
4216         * loader.h (MonoMethodInflated): Store the MonoGenericContext
4217         instead of the MonoGenericMethod here.
4218
4219 2004-03-25  Martin Baulig  <martin@ximian.com>
4220
4221         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4222         each time we create a new MonoGenericInst, we also create a new
4223         context which points back to us.
4224
4225         * class.c (inflate_method): Use `ginst->context' instead of
4226         creating a new context.
4227
4228         * loader.c (method_from_memberref): Use
4229         `klass->generic_inst->context' instead of creating a new context.
4230
4231 2004-03-25  Martin Baulig  <martin@ximian.com>
4232
4233         * class.h (MonoGenericContext): New struct.
4234         (MonoGenericMethod): Removed `generic_inst'.
4235
4236         * class.c (mono_class_inflate_generic_method): Take a
4237         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4238
4239 2004-03-25  Martin Baulig  <martin@ximian.com>
4240
4241         * loader.h (MonoMethodInflated): New typedef.
4242
4243         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4244         `generic_param_count' consume just 30 bits, added `is_inflated'
4245         and `has_type_parameters' flags (one bit each).
4246
4247         * class.c (mono_class_inflate_generic_method): Create a
4248         MonoMethodInflated instead of a MonoMethodNormal and set
4249         `is_inflated' in the method signature.
4250
4251         * class.h (MonoGenericMethod): Removed `generic_method'.
4252
4253 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4254
4255         * image.c: Make sure the name of a MonoImage is always an absolute path.
4256           This fixes bug #54415.
4257
4258 2004-03-24  Martin Baulig  <martin@ximian.com>
4259
4260         * class.c (mono_class_setup_vtable): If we're a generic instance,
4261         use our generic type's vtable size.
4262
4263 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4264
4265         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4266         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4267         problems.
4268
4269 2004-03-23  Martin Baulig  <martin@ximian.com>
4270
4271         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4272         `MonoEvent *events'.
4273
4274         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4275         (typebuilder_icalls): Added "get_event_info"; calls
4276         mono_reflection_event_builder_get_event_info(). 
4277
4278         * reflection.c (mono_reflection_generic_inst_initialize): Added
4279         `MonoArray *events'.
4280         (mono_reflection_event_builder_get_event_info): New function.
4281
4282 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4283
4284         * object.h: add mono_type_initialization_init
4285
4286         * object.c (mono_runtime_class_init): 
4287         implement class constructor synchronization rules
4288         to cope with threading issues.  
4289         add mono_type_initialization_init
4290
4291         * appdomain.c (mono_runtime_init): call 
4292         mono_type_initialization_init
4293
4294         * class.h: removing initializing field from MonoVTable
4295
4296 2004-03-23  Martin Baulig  <martin@ximian.com>
4297
4298         * class.c (my_mono_class_from_generic_parameter): Use
4299         `param->name' if it's not NULL. 
4300
4301 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4302
4303         * class.c: do not insert non-virtual methods in the vtable.
4304         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4305         that means the method is non-virtual. This never would have
4306         happened before.
4307
4308 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4309
4310         * profiler.c: Added lock for accessing coverage_hash.
4311
4312 2004-03-22  Martin Baulig  <martin@ximian.com>
4313
4314         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4315         `method->method->signature->generic_param_count != 0' to make it
4316         work for interface methods.
4317
4318 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4319
4320         * process.c: quote the string passed to the shell using g_shell_quote.
4321
4322 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4323
4324         * threads.c:
4325         (mono_threads_manage): don't remove the finalizer thread and self
4326         from the threads hash table so that mono_thread_manage can be called
4327         more than once.
4328
4329 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4330
4331         * process.c: quote the arguments when UseShellExecute is true. Fixes
4332         bug #55790.
4333
4334 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4335
4336         * threads.c: set mono_thread_detach as a cleanup routine for every
4337         thread. This way it's always executed upon thread termination, either
4338         aborted or finished normally. No more xsp hangs!
4339
4340 2004-03-17  Martin Baulig  <martin@ximian.com>
4341
4342         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4343         `int count_nested' and a `MonoType **nested'.
4344
4345         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4346         most of the functionality into a new static
4347         do_mono_reflection_bind_generic_parameters() and don't take a
4348         `MonoType *nested_in' argument any more.  Don't compute nested
4349         types here.
4350         (mono_reflection_generic_inst_get_nested_types): New public method
4351         to get nested types.
4352
4353         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4354         we're a nested class.
4355
4356         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4357         mono_reflection_generic_inst_get_nested_types() to compute the
4358         nested types.
4359
4360 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4361
4362         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4363         descriptive error message under windows.
4364         
4365 2004-03-17  Martin Baulig  <martin@ximian.com>
4366
4367         * class.c (dup_type): Added `const MonoType *original' argument;
4368         copy the attrs from the original type.
4369
4370 2004-03-17  Martin Baulig  <martin@ximian.com>
4371
4372         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4373         `m->generic_inst_cache' here.
4374
4375 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4376
4377         * exception.h exception.c: Add stack_overflow_exception.
4378
4379 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4380
4381         * threadpool.c:
4382         (overlapped_callback): call SetEvent *after* invoking the callback.
4383         No need to call CloseHandle.
4384
4385 2004-03-16  Martin Baulig  <martin@ximian.com>
4386
4387         * reflection.c (mono_image_get_fieldref_token): Take a
4388         `MonoReflectionField *' instead of a `MonoClassField *' and a
4389         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4390
4391 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4392
4393         * appdomain.c: don't add the culture to the filename we're looking for
4394         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4395
4396 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4397
4398         * locales.c: don't ignore symbols when doing case insensitive compares.
4399         Thanks Dick! Fixes bug #54046.
4400
4401         * threads.c: surround 'threads' usage with enter/leave in
4402         mono_thread_manage.
4403
4404 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4405
4406         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4407         implicitly marshalled as [Out]. Fixes #55450.
4408
4409         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4410         an exception.
4411
4412 2004-03-16  Martin Baulig  <martin@ximian.com>
4413
4414         * class.c (mono_class_from_generic_parameter): Use the actual
4415         parameter name. 
4416
4417 2004-03-16  Martin Baulig  <martin@ximian.com>
4418
4419         * reflection.c (type_get_signature_size): New static function.
4420         Compues the size of the type in a method signature.
4421         (method_get_signature_size): New static function; calls
4422         type_get_signature_size() to compute the actual size of the
4423         method's signature.
4424         (method_encode_signature): Use method_get_signature_size() to get
4425         the signature's size rather than using `nparams * 10'.
4426
4427 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4428
4429         * file-io.h: define here WapiOverlapped on windows. I don't want the
4430         regular OVERLAPPED one.
4431
4432         * file-io.c:
4433         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4434         Disabling AIO on windows.
4435
4436 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4437
4438         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4439         bug #55385.
4440
4441 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4442
4443         * appdomain.c: upgraded corlib version.
4444
4445         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4446         and BeginWrite. Allow opening files for asynchrnous operations.
4447
4448         * file-io.h: new struct that maps FileStreamAsyncResult.
4449         * icall.c: added new icalls.
4450         * process.[ch]: support setting child process environment variables
4451         and use the SHELL or COMSPEC when UseShellExecute is true.
4452
4453         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4454         callback for async. IO is here and also BindHandle.
4455
4456         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4457         from here.
4458
4459 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4460
4461         * reflection.c (create_custom_attr): Allow len == 0.
4462
4463         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4464         computation on big-endian machines.
4465
4466 2004-03-13  Martin Baulig  <martin@ximian.com>
4467
4468         * class.h (MonoGenericInst): Added `int count_ifaces'.
4469
4470         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4471         `ginst->count_ifaces' instead `klass->interface_count' since we
4472         may get called before the vtable is created.
4473
4474         * loader.c (mono_method_get_param_names): If we're a generic
4475         instance, return and don't initialize the class.
4476
4477         * reflection.c (mono_reflection_setup_generic_class): Don't call
4478         ensure_runtime_vtable().
4479         (mono_reflection_bind_generic_parameters): Set
4480         `ginst->count_ifaces'.
4481
4482 2004-03-11  Jackson Harper <jackson@ximian.com>
4483
4484         * icall.c:
4485         * unicode.c:
4486         * unicode.h: Remove unused System.Char icalls.
4487         
4488 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4489
4490         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4491         code when we P/Invoke the first library in Windows.Forms, instead
4492         of when we first open the assembly.
4493
4494         * assembly.c: Drop the lookup from here.
4495
4496 2004-03-10  Martin Baulig  <martin@ximian.com>
4497
4498         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4499         class for properties, fields and events.  Finally fixes #54945.
4500
4501 2004-03-10  Martin Baulig  <martin@ximian.com>
4502
4503         * metadata.c (mono_metadata_class_equal): New static function;
4504         checks whether two generic instances or two generic parameters are
4505         equal.
4506         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4507         compare classes.        
4508
4509 2004-03-10  Martin Baulig  <martin@ximian.com>
4510
4511         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4512
4513         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4514         argument and write it into the `reflection_info' field.
4515
4516         * icall.c
4517         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4518         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4519
4520 2004-03-09  Jackson Harper  <jackson@ximian.com>
4521
4522         * char-conversions.h: use 8 bits for numeric data its all we need
4523         * icall.c: numeric data is only 8 bits now.
4524
4525 2004-03-09  Martin Baulig  <martin@ximian.com>
4526
4527         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4528
4529         * class.c (init_properties, init_events): Initialize the new
4530         `parent' field.
4531
4532         * reflection.c (typebuilder_setup_properties): Likewise.
4533         (typebuilder_setup_events): Likewise.
4534
4535         * reflection.h (MonoEventInfo): Replaced `parent with
4536         `declaring_type' and `reflected_type'.
4537
4538         * icall.c (ves_icall_get_property_info): Distinguish between
4539         declaring and reflected type.
4540         (ves_icall_get_event_info): Likewise.
4541
4542 2004-03-09  Martin Baulig  <martin@ximian.com>
4543
4544         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4545         (ves_icall_Type_GetField): Correctly set field->klass.
4546
4547 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4548
4549         * loader.h: Fix warning.
4550
4551 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4552
4553         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4554         library routine if present.  Notice that it will still continue
4555         executing even if its missing, for those working on the Gtk#
4556         edition of Windows.Forms.
4557
4558         * assembly.c (do_mono_assembly_open): If loading the
4559         System.Windows.Forms call mono_loader_wini_init.
4560
4561 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4562
4563         * class.h: Added MonoRemoteClass struct.
4564         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4565         function for MonoStrings.
4566         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4567         Added internal call for getting the proxy type.
4568         * marshal.c: Get the type of transparent proxies from its remote_class.
4569         Added methods that generate the IL for type checks and casts:
4570         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4571         mono_marshal_get_proxy_cancast.
4572         * marshal.h: Declaration of the previous new methods.
4573         * object.c: Added new moethods for creating and updating MonoRemoteClass
4574         instances: mono_remote_class, mono_upgrade_remote_class, 
4575         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4576         * verify.c: FIx transparent_proxy_fields layout.
4577         * appdomain.c: Bump corlib version.
4578
4579 2004-03-04  Jackson Harper  <jackson@ximian.com>
4580
4581         * icall.c: Add icall to access char conversion tables.
4582         * char-conversions.h: Character conversion tables.
4583         * Makefile.am: Add char-conversions.h private header file.
4584         
4585 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4586
4587         * appdomain.c (unload_thread_main): Increase unloading timeout to
4588         10 sec as a temporary workaround for Nant problems.
4589
4590 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4591
4592         * gc.c: Add checks for GC_enable and GC_disable.
4593
4594         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4595         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4596         (bug #54988).
4597         
4598 2004-02-27  Martin Baulig  <martin@ximian.com>
4599
4600         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4601         `MonoReflectionType *' instead of a `MonoType *'.
4602
4603 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4604
4605         * gc.c (run_finalize): Avoid finalizing the object representing the
4606         finalizer thread.
4607         (finalizer_thread): Fix warning.
4608
4609 2004-02-25  Martin Baulig  <martin@ximian.com>
4610
4611         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4612         argument for nested types.
4613         (mono_class_create_generic): Added support for nested generictypes.
4614
4615         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4616         `GList *nested'.
4617
4618         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4619
4620         * reflection.c (method_encode_signature): Increase the minimum
4621         value of `size' from 10 to 11.
4622         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4623         and `MonoType **types' arguments instead of the `MonoArray
4624         *types'; added `MonoType *nested_in'.  Recursively instantiate
4625         nested classes. 
4626
4627 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4628
4629         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4630         stack_overflow_ex members which are used by exception handling.
4631
4632         * appdomain.c (mono_runtime_init): Initialize the new members.
4633
4634         * gc.c (mono_gc_enable): New helper function.
4635         * gc.c (mono_gc_disable): New helper function.
4636
4637 2004-02-23  Martin Baulig  <martin@ximian.com>
4638
4639         * icall.c: I must have been really stupid - make it actually work
4640         this time ;-)
4641
4642 2004-02-23  Martin Baulig  <martin@ximian.com>
4643
4644         * loader.c (method_from_memberref): Only inflate the method if
4645         it's in another klass.
4646
4647 2004-02-23  Martin Baulig  <martin@ximian.com>
4648
4649         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4650         (mono_class_init): If we're a generic instance and an interface,
4651         compute `class->interface_id'; also create `class->interfaces'
4652         here and inflate them.
4653
4654         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4655         `ginst->is_open'.
4656         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4657
4658         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4659
4660 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4661
4662         * reflection.c (method_encode_code): Improved the error message
4663         generated by the exception.
4664
4665 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4666
4667         * icall.c: Martin did not do what he said in the ChangeLog for
4668         2004-02-18, but put back the changes for properties and events.
4669         Commenting those changes out again and adding comment to bug #54518.
4670         
4671         * process.c: removed warning.
4672
4673 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4674
4675         * marshal.c (emit_struct_conv): Print an error message instead of
4676         asserting when a type does not have the StructLayout attribute.
4677
4678 2004-02-20  Martin Baulig  <martin@ximian.com>
4679
4680         * reflection.c (mono_type_get_object): Also use the cache for
4681         generic instances.
4682         (mono_reflection_bind_generic_parameters): Always compute
4683         `ginst->ifaces'.        
4684
4685 2004-02-20  Martin Baulig  <martin@ximian.com>
4686
4687         * class.h (MonoGenericMethod): Removed `klass'.
4688
4689         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4690         *klass' argument.
4691
4692 2004-02-20  Martin Baulig  <martin@ximian.com>
4693
4694         * reflection.c (method_encode_methodspec): Actually use the
4695         uninflated signature for the memberref.
4696
4697 2004-02-20  Martin Baulig  <martin@ximian.com>
4698
4699         * class.h (MonoGenericMethod): Removed `declaring'.
4700
4701         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4702         is NULL, compute it here.
4703
4704 2004-02-20  Martin Baulig  <martin@ximian.com>
4705
4706         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4707
4708         * metadata.c (mono_metadata_generic_inst_hash): New method.
4709         (mono_metadata_generic_inst_equal): New method.
4710
4711         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4712         `klass->image->generic_inst_cache' cache to avoid creating
4713         duplicate MonoGenericInst's.
4714
4715         * class.c (mono_class_inflate_generic_type): Use the cache.
4716
4717 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4718
4719         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4720
4721 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4722
4723         * icall.c: added Socket.WSAIoctl icall.
4724
4725         * socket-io.[ch]: implemented
4726         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4727
4728 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4729
4730         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4731
4732 2004-02-18  Urs C Muff  <umuff@quark.com>
4733
4734         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4735         this work on PPC and other big-endian architectures.
4736
4737         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4738         fields with an underscore to make sure they're only accessed by
4739         the read32() macro.
4740
4741 2004-02-18  Martin Baulig  <martin@ximian.com>
4742
4743         * icall.c: Put the klass->refclass changes back for methods and
4744         fields, but not for properties and events.  We're currently not
4745         distinguishing between DeclaringType and ReflectedType for
4746         properties and events, that's what caused the regressions.
4747
4748 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4749
4750         * object.c:
4751         (mono_async_result_new): the handle can be NULL.
4752
4753         * threadpool.c: Use an event instead of a semaphore, don't initialize
4754         it until needed. This saves quite a few semaphores from being created
4755         when using the threadpool.
4756
4757 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4758
4759         * object.c (mono_string_is_interned_lookup): Fix interning of long
4760         strings. Fixes #54473.
4761
4762         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4763
4764         * icall.c: Revert the klass->refclass changes since they introduce
4765         regressions (bug #54518).
4766
4767 2004-02-18  Martin Baulig  <martin@ximian.com>
4768
4769         * class.c (mono_class_init): If we're a generic instance and don't
4770         come from a TypeBuilder, inflate our members here.
4771         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4772         (mono_class_create_generic): New public method.
4773         (mono_class_initialize_generic): Removed.
4774         (get_instantiation_name): Renamed to
4775         _mono_class_get_instantiation_name() and made it public.
4776
4777 2004-02-18  Martin Baulig  <martin@ximian.com>
4778
4779         * class.c (mono_class_inflate_generic_type): Clear the new
4780         instance's `nginst->klass' when inflating a generic instance.
4781         (mono_class_is_subclass_of): Added (basic) support for generic
4782         instances.
4783
4784 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4785
4786         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4787         MonoMempool to hold compiled native code.
4788
4789 2004-02-17  Martin Baulig  <martin@ximian.com>
4790
4791         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4792         `properties'.
4793
4794         * reflection.c (mono_reflection_generic_inst_initialize): Added
4795         `MonoArray *properties' argument.
4796
4797         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4798
4799 2004-02-17  Martin Baulig  <martin@ximian.com>
4800
4801         * icall.c (ves_icall_Type_GetFields): Renamed to
4802         ves_icall_Type_GetFields_internal() and added a
4803         `MonoReflectionType *rtype' argument; pass it to
4804         mono_field_get_object() to set the field's "reflected" type.
4805         (ves_icall_Type_GetConstructors): Likewise.
4806         (ves_icall_Type_GetEvents): Likewise.
4807         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4808         argument; pass it to mono_method_get_object() to set the method's
4809         "reflected" type.       
4810
4811 2004-02-17  Martin Baulig  <martin@ximian.com>
4812
4813         * class.h (MonoDynamicGenericInst): New type.
4814         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4815
4816         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4817         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4818         (ves_icall_MonoGenericInst_GetFields): New interncall.
4819
4820         * class.c (mono_class_from_generic): Don't call
4821         mono_class_initialize_generic() if this is a dynamic instance;
4822         ie. it's being created from a TypeBuilder.
4823         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4824         `class->byval_arg.type'.
4825
4826         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4827         to `inflate_method' and made static.
4828         (mono_reflection_inflate_field): Removed.
4829         (mono_reflection_generic_inst_initialize): New public method.
4830
4831         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4832         `ctors' and `fields'; added `initialized'.
4833
4834 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4835
4836         * debug-helpers.c (mono_method_full_name): Fix output for empty
4837         namespaces.
4838
4839 2004-02-12  Martin Baulig  <martin@ximian.com>
4840
4841         * class.h (MonoClassField): Added `MonoType *generic_type'.
4842
4843         * reflection.c (mono_image_get_fieldref_token): Added support for
4844         instantiated generic types.
4845         (field_encode_inflated_field): Removed.
4846         (mono_image_get_inflated_field_token): Removed.
4847         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4848
4849         * reflection.h (MonoReflectionInflatedField): Removed.
4850
4851 2004-02-12  Martin Baulig  <martin@ximian.com>
4852
4853         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4854         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4855
4856         * reflection.c (mono_image_get_methodspec_token): Take a
4857         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4858         (mono_image_create_token): Check whether we have a
4859         `method->signature->gen_method' and call
4860         mono_image_get_methodspec_token() if appropriate.
4861         (inflated_method_get_object): Removed.
4862         (mono_reflection_bind_generic_method_parameters): Return a
4863         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4864         (mono_reflection_inflate_method_or_ctor): Likewise.
4865
4866         * reflection.h (MonoReflectionInflatedMethod): Removed.
4867
4868 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4869
4870         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4871         for custom valuetype marshalling.
4872
4873         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4874
4875 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4876
4877         * icall.c: fixed WSAGetLastError_internal name.
4878
4879 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4880
4881         * threads.c (mono_thread_attach): Allow this to be called multiple
4882         times for a thread.
4883         
4884         * threads.c (build_wait_tids): Do not wait for ourselves.
4885
4886         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4887         appdomain list is empty.
4888
4889         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4890         memory returned by mono_string_builder_to_utf16, since it points into
4891         managed memory. Thanks to Bernie Solomon for noticing this.
4892
4893         * icall.c: Add AppDomainSetup icalls.
4894
4895         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4896
4897         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4898         types.
4899
4900         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4901         custom attributes to the method_aux struct. Also fix array indexes etc.
4902
4903         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4904         
4905 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4906
4907         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4908         (both static and runtime) and reduce startup time.
4909
4910 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4911
4912         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4913         AsAny marshalling conversion instead of crashing.
4914
4915         * marshal.c: Fix warnings.
4916
4917 2004-02-09  Martin Baulig  <martin@ximian.com>
4918
4919         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4920
4921         * reflection.h (MonoReflectionInflatedMethod): Removed the
4922         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4923
4924         * reflection.c (method_encode_methodspec): Removed the `method'
4925         argument; we get it from `gmethod->declaring'.
4926         (inflated_method_get_object): Removed the `declaring' argument.
4927
4928 2004-02-09  Martin Baulig  <martin@ximian.com>
4929
4930         * class.h (MonoGenericMethod): New type.
4931         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4932         `generic_method'.
4933
4934         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4935         a `MonoGenericMethod *gen_method' one.
4936
4937         * class.c (mono_class_inflate_generic_type): Take an additional
4938         `MonoGenericMethod * argument.  This is only non-NULL if we're
4939         inflating types for a generic method.   
4940         (mono_class_inflate_generic_signature): Renamed to
4941         inflate_generic_signature() and made static; take a
4942         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4943         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4944         instead of a `MonoGenericInst *' one.
4945         (mono_class_inflate_generic_method): Likewise.
4946
4947         * reflection.c (encode_generic_method_sig): Take a
4948         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4949         (method_encode_methodspec): Likewise.
4950         (inflated_method_get_object): Likewise. 
4951
4952         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4953         field with a `MonoGenericMethod *gmethod' one.  
4954
4955 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4956
4957         * class.h (mono_class_has_parent): add parens to expansion
4958         so you can ! this.
4959
4960 2004-02-08  Martin Baulig  <martin@ximian.com>
4961
4962         * image.h (MonoImage): Removed `generics_cache'.
4963
4964         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4965         instead of a `MonoType *' argument; removed the `inflate_methods'
4966         argument.  Don't inflate methods here.
4967
4968         * loader.c (find_method): If it's a generic instance, call
4969         mono_class_init() on the `sclass->generic_inst->generic_type'.
4970
4971         * metadata.c (mono_type_size): Make this work on uninitialized
4972         generic instances; call it on the `ginst->generic_type's class.
4973
4974         * reflection.c (mono_reflection_bind_generic_parameters): Call
4975         mono_class_from_generic() to create the `ginst->klass'.
4976
4977 2004-02-08  Martin Baulig  <martin@ximian.com>
4978
4979         * class.h (MonoClass): Changed type of `generic_inst' from
4980         `MonoType *' to `MonoGenericInst *'.
4981
4982 2004-02-08  Martin Baulig  <martin@ximian.com>
4983
4984         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4985         mono_type_get_object(), this is now creating a `MonoGenericInst'
4986         for MONO_TYPE_GENERICINST.
4987         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4988         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4989
4990         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4991         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4992         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4993         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4994         and reflected type.
4995
4996         * reflection.h (MonoReflectionInflatedMethod): Removed
4997         `declaring_type' and `reflected_type'.
4998
4999 2004-02-08  Martin Baulig  <martin@ximian.com>
5000
5001         * class.h (MonoGenericInst): Added `MonoType *parent' and
5002         `MonoType **ifaces'.
5003
5004         * reflection.h (MonoReflectionGenericInst): Removed `klass',
5005         `parent' and `interfaces'.
5006
5007         * reflection.c (mono_reflection_bind_generic_parameters): Take a
5008         `MonoType *' argument and return a `MonoType *'.
5009
5010         * icall.c
5011         (ves_icall_MonoGenericInst_GetParentType): New interncall.
5012         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
5013
5014 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5015
5016         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
5017         valuetype marshalling.
5018
5019 2004-02-06  Martin Baulig  <martin@ximian.com>
5020
5021         * class.c
5022         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
5023         (my_mono_class_from_generic_parameter): Likewise.
5024
5025 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5026
5027         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
5028         contents of the symbol files lazily.
5029
5030         * object.h (MonoThread): Add 'name' and 'name_len' fields.
5031
5032         * threads.h threads.c icall.c: New icalls for getting and setting the
5033         threads name.
5034
5035 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
5036
5037         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
5038         Raise an exception when the domain is not found.
5039
5040 2004-02-03  Martin Baulig  <martin@ximian.com>
5041
5042         * reflection.c (mono_image_get_methodspec_token): Use the
5043         uninflated signature; fixes gen-33.
5044
5045 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
5046
5047         * gc.c threads.c: Make the finalizer thread a normal managed thread so
5048         the finalizer code can use thread functionality.
5049
5050         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
5051         the finalizer thread.
5052
5053         * threads.c: Make some functions more robust.
5054
5055         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
5056
5057         * metadata.h: Add new marshalling conventions.
5058
5059         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
5060         stringbuilder marshalling. Fixes #53700.
5061
5062         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
5063
5064         * reflection.c (mono_image_get_type_info): Save declarative security
5065         info.
5066
5067         * reflection.c (mono_image_get_field_info): Handle uninitialized 
5068         unmanaged fields as well.
5069
5070         * appdomain.c: Bump corlib version.
5071
5072 2004-02-01  Martin Baulig  <martin@ximian.com>
5073
5074         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
5075         method type arguments.  
5076
5077 2004-01-30  Duncan Mak  <duncan@ximian.com>
5078
5079         * marshal.h: Add prototype for
5080         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
5081         and
5082         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
5083         fix the build.
5084
5085 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
5086
5087         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
5088         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
5089
5090 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5091
5092         * marshal.c (mono_marshal_get_native_wrapper): Add support for
5093         custom marshalling of valuetypes.
5094
5095         * marshal.c: Fix some warnings.
5096
5097 2004-01-29  Martin Baulig  <martin@ximian.com>
5098
5099         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
5100         for generic method parameters.
5101
5102         * reflection.c (method_encode_methodspec): Write the uninflated
5103         signature into the methodspec table.
5104         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
5105         is always the uninflated method.
5106         (reflection_methodbuilder_to_mono_method): Copy the generic
5107         parameters from the MethodBuilder into `header->gen_params'.
5108
5109 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5110
5111         * class.c (mono_class_from_generic_parameter): Fix warning.
5112
5113 2004-01-27  Martin Baulig  <martin@ximian.com>
5114
5115         * class.c (mono_class_from_generic_parameter): Don't create
5116         `klass->methods' here.  
5117
5118 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
5119
5120         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
5121         extension since it does not work with libraries named lib<FOO>.dll.so.
5122
5123 2004-01-25  Martin Baulig  <martin@ximian.com>
5124
5125         * class.c (mono_class_inflate_generic_type): Added support for
5126         MONO_TYPE_GENERICINST.
5127
5128         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
5129         inflate methods on open constructed types.      
5130
5131 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5132
5133         * object.c: fire ProcessExit event in the root AppDomain after running
5134         Main. Fixes bug #53299.
5135
5136 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
5137
5138         * socket-io.c: include the new socket-wrappers.h header.
5139         Use the wrappers instead of the unix socket functions to make the code
5140         more clear.
5141
5142 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
5143
5144         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
5145
5146         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5147         Fixes #22532.
5148
5149 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
5150
5151         * reflection.c (mono_image_create_pefile): Handle the case when the
5152         entry point is not a MethodBuilder.
5153
5154         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5155         field to ReflectionMethod since it is not allways a builder.
5156
5157         * reflection.c (type_get_fully_qualified_name): New helper function to
5158         return the fully qualified name of a type.
5159
5160         * reflection.c (encode_marshal_blob): Always emit the fully qualified
5161         type name for custom marshallers.
5162
5163         * reflection.c (mono_marshal_spec_from_builder): Ditto.
5164
5165         * class.c (mono_class_setup_vtable): If a parent class already 
5166         implements an interface, use the implementing methods from that class.
5167         Fixes #53148.
5168
5169 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5170
5171         * threadpool.c: just return instead of ExitThread to allow for thread
5172         clean up earlier.
5173
5174 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
5175
5176         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
5177         when closing resource modules.
5178
5179         * reflection.c (mono_image_create_pefile): Handle the case when the
5180         entry point is not a MethodBuilder.
5181
5182         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5183         field to ReflectionMethod since it is not allways a builder.
5184
5185 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5186
5187         * marshal.c (mono_marshal_get_managed_wrapper): 
5188         mono_marshal_alloc takes native int so CONV_I
5189         the arg for 64bits.
5190
5191 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
5192
5193         * reflection.c (fixup_cattrs): New function to fixup the methoddef
5194         tokens in the cattr table. Fixes #53108.
5195
5196 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5197
5198         * loader.c: don't trim ".dll" before looking up in the config file.
5199         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5200
5201 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5202
5203         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
5204         Return the module which contains the resource as well.
5205         (ves_icall_System_Reflection_Module_Close): New icall.
5206
5207         * appdomain.c: Bump corlib version number.
5208
5209         * image.c (mono_image_addref): New public function.
5210
5211         * assembly.c: Call mono_image_addref.
5212
5213         * reflection.c (mono_module_get_object): Increase reference count of 
5214         the image.
5215
5216         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5217         Fixes #22532.
5218
5219         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5220         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5221         proper exceptions on DllImport problems.
5222
5223 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5224
5225         * class.c, metadata.c: eliminate CSIZE macro.
5226
5227 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5228
5229         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5230         * object.h: Added async_callback field in MonoAsyncResult.
5231         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5232         * verify.c: Added async_callback in MonoAsyncResult layout.
5233
5234 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5235
5236         * reflection.c (mono_reflection_get_custom_attrs): Add support
5237         for Modules.
5238
5239 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5240
5241         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5242         marshalling.
5243         (mono_marshal_method_from_wrapper): Add null pointer check.
5244
5245 2004-01-16  Martin Baulig  <martin@ximian.com>
5246
5247         * debug-mono-symfile.h: Set version number to 36 and reflect
5248         latest symbol writer changes.
5249
5250 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5251
5252         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5253         multi-dimensional arrays.
5254         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5255         (mono_class_from_mono_type): Use bounded_array_class_get.
5256         
5257         * class.c (mono_bounded_array_class_get): New function which takes
5258         a 'bounded' bool argument to distinguish vectors from one dimensional
5259         arrays.
5260
5261         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5262         bounded_array_class_get if the array has bounds.
5263
5264         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5265         Search modules loaded using AssemblyBuilder:AddModule as well.
5266
5267 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5268
5269         * appdomain.c: increased corlib version.
5270         * filewatcher.c: removed g_print.
5271         * icall.c:
5272         (get_property_info): only allocate what is actually requested.
5273         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5274
5275 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5276
5277         * Makefile.am: added filewatcher.[ch]
5278         * filewatcher.[ch]: FileSystemWatcher runtime support.
5279         * icall.c: added new FSW icalls.
5280
5281 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5282
5283         * string-icalls.c: fix stringbuilder regression as suggested by
5284         Iain McCoy <iain@mccoy.id.au>.
5285
5286 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5287
5288         * process.c (process_read_stringtable_block): Recognize '007f' as
5289         a language neutral stringtable block.
5290
5291 2004-01-12  Patrik Torstensson
5292
5293         * object.h (MonoStringBuilder) : Changed layout to support our
5294         new stringbuilder class.
5295         * marshal.c: Change marshalling to support the new layout of 
5296         string builder.
5297         * appdomain.c: increased version number because new layout of
5298         string builder.
5299
5300 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5301
5302         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5303         assembly name as an string instead of an AssemblyName, since it is
5304         easier to extract info from it.
5305
5306         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5307         the culture subdirectories too. Fixes #52231.
5308
5309 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5310
5311         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5312         It takes 2 new parameters with an optional name for the method to look
5313         for and case ignoring info.
5314
5315         * threadpool.c: removed unused variable.
5316
5317 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5318
5319         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5320         It takes 2 new parameters with an optional name for the property to look
5321         for and case ignoring info.
5322         Fixes bug #52753.
5323
5324 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5325
5326         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5327         Fix #52451.
5328
5329 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5330
5331         * appdomain.c:
5332         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5333         Fixes bug #52630.
5334
5335 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5336
5337         * reflection.c: Add support for more than one unmanaged resource.
5338
5339         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5340         in field->def_value, as done in all other cases.
5341
5342         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5343         TypeBuilders.
5344
5345         * reflection.c (mono_reflection_create_runtime_class): Remove 
5346         errorneous assignment to klass->element_class, since it is already
5347         done in mono_reflection_setup_internal_class.
5348
5349 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5350
5351         * gc.c: added missing LeaveCriticalSection.
5352         * icall.c: indented a couple of lines.
5353         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5354         if we call EndInvoke inside a callback. Fixes bug #52601.
5355
5356 2004-01-07  Martin Baulig  <martin@ximian.com>
5357
5358         * mono-debug-debugger.h
5359         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5360
5361 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5362
5363         * appdomain.c: Use messages in NotImplementedException.
5364
5365         * exception.c (mono_get_exception_not_implemented): Now this takes
5366         a message argument.
5367
5368         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5369         exception instead of g_asserting an aborting when something is not
5370         implemented.
5371
5372         Add some inline docs.
5373
5374 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5375
5376         * reflection.h: Update after changes to object layout.
5377
5378         * reflection.c: Implement saving of unmanaged aka win32 resources.
5379
5380         * appdomain.c: Bump version number.
5381
5382         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5383         Handle missing domains gracefully.
5384
5385 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5386
5387         * file-io.c : On Windows, there are much more invalid_path_chars.
5388
5389 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5390
5391         * class.h, object.c: prepare for GetType () speedup.
5392
5393 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5394
5395         * profiler.c: workaround for --profile null reference exception on
5396           cygwin. Patch by Patrik Torstensson.
5397
5398 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5399
5400         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5401         make work for unaligned access.
5402
5403 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5404
5405         * class.c: small cleanup (class->fields [i] -> field).
5406         * image.c: check address of metadata is valid.
5407
5408 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5409
5410         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5411         search the list of loaded assemblies.
5412
5413         * reflection.c (mono_reflection_type_from_name): Use 
5414         mono_assembly_loaded instead of mono_image_loaded.
5415
5416         * reflection.c: Fix warnings.
5417
5418 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5419
5420         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5421         is dynamic. This is needed since an assembly can contain both dynamic and
5422         non-dynamic images.
5423
5424         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5425         assembly->dynamic.
5426
5427         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5428
5429         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5430         to store modules loaded using AddModule.
5431
5432         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5433         on Modules.
5434
5435         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5436
5437         * reflection.c (mono_image_fill_export_table_from_module): New function to
5438         fill out the EXPORTEDTYPES table from a module.
5439
5440         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5441         into a separate function. Also handle loaded non-dynamic modules.
5442
5443         * reflection.c (mono_image_basic_init): Fix memory allocation.
5444
5445         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5446
5447         * assembly.c (mono_assembly_load_references): Make this public.
5448
5449 2003-12-19  Martin Baulig  <martin@ximian.com>
5450
5451         * class.c (mono_class_initialize_generic): Made this static, take
5452         a `MonoGenericInst *' instead of a `MonoClass *'.
5453         (mono_class_from_generic): Call mono_class_initialize_generic()
5454         unless we're already initialized or being called from
5455         do_mono_metadata_parse_generic_inst().
5456
5457         * class.h (MonoGenericInst): Added `initialized' and
5458         `init_pending' flags.
5459
5460         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5461         `mono_class_init (gklass)' or mono_class_initialize_generic()
5462         here; set `generic_inst->init_pending' while parsing the
5463         `type_argv'.
5464
5465 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5466
5467         * locales.c: include string.h for memxxx prototypes
5468
5469 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5470
5471         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5472         constructor when accessing literal fields.
5473
5474 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5475
5476         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5477
5478         * reflection.c (assembly_add_resource_manifest): New function to fill
5479         the MANIFESTRESOURCE table.
5480
5481         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5482
5483         * reflection.h: Update to changes in class layout.
5484
5485         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5486         Reenable call to mono_runtime_is_shutting_down ().
5487
5488         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5489         determine if the runtime is shutting down.
5490
5491 2003-12-16  Jackson Harper <jackson@ximian.com>
5492
5493         * icall.c: comment out call to mono_runtime_is_shutting_down to
5494         fix build.
5495         
5496 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5497
5498         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5499         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5500
5501 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5502
5503         * reflection.c: move definition of swap_with_size
5504         to before its first call
5505
5506 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5507
5508         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5509
5510         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5511         icall.
5512
5513         * object.c: Fix warnings.
5514
5515         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5516         members if FlattenHierarchy is set.
5517
5518         * reflection.c (mono_image_add_decl_security): New function to emit
5519         declarative security.
5520
5521         * reflection.h reflection.c: Add support for declarative security.
5522
5523         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5524         
5525 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5526
5527         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5528         
5529         * appdomain.c verify.c: Moved corlib version checking into its own
5530         function in appdomain.c since it needs to create vtables etc.
5531
5532 2003-12-13  Patrik Torstensson <p@rxc.se>
5533
5534         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5535         instead of unwrapped server.
5536
5537 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5538
5539         * verify.c (check_corlib): Fix field index.
5540
5541 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5542
5543         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5544         GetGacPath icall.
5545
5546 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5547
5548         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5549         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5550         cope with sizeof(size_t) != sizeof(guint32).
5551
5552 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5553
5554         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5555         in case of failure.
5556
5557 2003-12-10  Mark Crichton <crichton@gimp.org>
5558
5559         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5560         in managed code.
5561
5562         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5563
5564 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5565
5566         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5567         marked as deleted.
5568
5569 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5570
5571         * verify.c (check_corlib): Handle the case when the version field is 
5572         initialized by a static constructor.
5573
5574 2003-12-08  Patrik Torstensson  <p@rxc.se>
5575
5576     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5577
5578 2003-12-08  Martin Baulig  <martin@ximian.com>
5579
5580         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5581         a MonoReflectionGenericParameter, also take the parameter index
5582         and name as arguments.
5583         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5584         (ves_icall_MonoGenericParam_initialize): New interncall.
5585         (ves_icall_Type_make_byref_type): New interncall.
5586
5587         * reflection.h (MonoReflectionGenericParam): Derive from
5588         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5589         `index' fields.
5590
5591         * reflection.c (mono_reflection_define_generic_parameter): Create
5592         and return a new MonoReflectionGenericParam; don't initialize the
5593         constraints here.
5594         (mono_reflection_initialize_generic_parameter): New public method;
5595         initializes the constraints and creates the `param->pklass'.
5596
5597 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5598
5599         * reflection.h reflection.c: Use the new fields 'num_types', 
5600         'num_fields' and 'num_methods' to track the number of types etc.
5601
5602         * verify.c (check_corlib): Check corlib version number.
5603
5604 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5605
5606         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5607         function works on all methods.
5608
5609 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5610
5611         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5612         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5613         the custom_type_info flag of the transparent proxy.
5614         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5615         objects that supports IRemotingTypeInfo.
5616         * object.h: Added custom_type_info field in transparent proxy.
5617
5618 2003-12-06  Martin Baulig  <martin@ximian.com>
5619
5620         * class.c (mono_class_create_from_generic): Removed.
5621         (mono_class_from_generic): Check `ginst->klass' before doing
5622         anything else.  This is important to fully support "recursive"
5623         generic types.
5624
5625         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5626         empty `generic_inst->klass' before doing anything else.
5627
5628 2003-12-06  Dick Porter  <dick@ximian.com>
5629
5630         * verify.c: 
5631         * object.h:
5632         * icall.c:
5633         * locales.c: Use C structs to access class fields.  Don't do a
5634         conversion between MonoString and UChar because both are
5635         platform-endian UTF-16.  Compare now takes startindex and count
5636         parameters.  Add a char overload for IndexOf.  Speed up the
5637         invariant string IndexOf.
5638
5639 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5640
5641         * Makefile.am (monosn_LDADD): Fix parallel build.
5642
5643 2003-12-04  Martin Baulig  <martin@ximian.com>
5644
5645         * icall.c
5646         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5647         (ves_icall_Type_make_array_type): New interncall.       
5648
5649 2003-12-04  Martin Baulig  <martin@ximian.com>
5650
5651         * locales.c: also change it in the !HAVE_ICU case.
5652
5653 2003-12-04  Dick Porter  <dick@ximian.com>
5654
5655         * icall.c:
5656         * locales.c: construct_compareinfo is now in CompareInfo, not
5657         CultureInfo.
5658
5659 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5660
5661         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5662         image->files array.
5663
5664         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5665         table as well.
5666
5667         * assembly.c (mono_assembly_load_references): Only load references
5668         once.
5669
5670         * class.c (mono_class_from_name): Avoid linear search of the 
5671         EXPORTEDTYPE table.
5672
5673         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5674
5675 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5676
5677         * image.h (MonoImage): Add 'field_cache' field.
5678
5679         * loader.c (mono_field_from_token): Cache field lookups.
5680         
5681         * reflection.c (mono_module_get_object): Fix name property.
5682
5683         * icall.c (ves_icall_get_enum_info): Update after changes to 
5684         mono_metadata_get_constant_index ().
5685
5686         * icall.c: Get rid of get_type_info icall, use a separate icall for
5687         each type property to avoid needless memory allocations. Fixes #51514.
5688
5689         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5690         to avoid needless binary searches.
5691
5692         * class.c (class_compute_field_layout): Move the initialization of
5693         field->def_value to mono_class_vtable ().
5694
5695         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5696         non-corlib types.
5697
5698         * object.c (mono_object_allocate): Make it inline.
5699
5700         * object.c (mono_object_allocate_spec): Make it inline.
5701         
5702 2003-12-02  Dick Porter  <dick@ximian.com>
5703
5704         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5705         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5706
5707 2003-12-01  Dick Porter  <dick@ximian.com>
5708
5709         * threads.c: Fix signature and call in CreateMutex and
5710         CreateEvent.
5711
5712 2003-12-01  Dick Porter  <dick@ximian.com>
5713
5714         * icall.c: 
5715         * locales.c: Implement string compares and searching
5716
5717         * object.h: Add extra Thread field
5718
5719 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5720
5721         * reflection.c (fixup_method): Add support for MonoCMethod.
5722
5723 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5724
5725         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5726
5727         * reflection.c (assembly_name_to_aname): Allow extra characters in
5728         assembly names. Fixes #51468.
5729
5730 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5731
5732         * exception.c (mono_exception_from_name_domain): New helper function.
5733
5734         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5735         exception object in the correct domain.
5736
5737         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5738         formatting + make a copy a the input data.
5739
5740         * loader.c (mono_get_method_from_token): Methods which contain
5741         native code do not have entries in the ImplMap.
5742
5743         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5744         Thanks to Gonzalo for spotting this.
5745         
5746         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5747         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5748
5749         * assembly.h (mono_assembly_load_from): Split the second part of 
5750         assembly loading into a new public function.
5751
5752         * exception.h (mono_get_exception_bad_image_format): New function.
5753
5754 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5755
5756         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5757         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5758         
5759         * icall.c: Add new icall for creating dynamic methods.
5760
5761         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5762
5763         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5764
5765         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5766         create a dynamic method.
5767
5768         * reflection.c (resolve_object): New helper function.
5769
5770         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5771         which manipulate it so they can also work on dynamic methods.
5772
5773         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5774         creating the MonoReflectionMethodAux structure if it is not needed.
5775         
5776         * reflection.h verify.c: Update after changes to object layout.
5777
5778         * reflection.c (method_builder_encode_signature): Fix compilation on
5779         gcc 2.95.x.
5780
5781 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5782
5783         * appdomain.h: Added support for context static fields. Added static_data
5784           field to MonoAppContext and renamed thread_static_fields to a more
5785           generic special_static_fields in MonoAppDomain, since it can now contain
5786           context static fields.
5787         * domain.c: Updated hashtable name.
5788         * object.c: Replaced field_is_thread_static() for a more generic
5789           field_is_special_static() which also checks for context static attribute.
5790           In mono_class_vtable(), added support for static context fields.
5791         * threads.c: Changed methods that manage thread static fields to more
5792           generic methods so they can be reused both for thread and context static
5793           data.
5794         * threads.h: Declared some new methods.
5795
5796 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5797
5798         * reflection.h: Update after changes to the managed types.
5799
5800         * reflection.c (encode_custom_modifiers): New helper function.
5801
5802         * reflection.c (method_encode_signature): Emit custom modifiers.
5803
5804         * reflection.c (field_encode_signature): Emit custom modifiers.
5805
5806 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5807
5808         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5809
5810         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5811         implementation.
5812
5813         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5814         icall.
5815
5816         * object.c (mono_field_get_value_object): New function.
5817
5818         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5819         specific.
5820
5821 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5822
5823         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5824         return a preallocated out-of-memory exception instance.
5825
5826         * object.c (out_of_memory): Use the new function.
5827
5828         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5829         flag is before the custom modifiers. Fixes #49802.
5830
5831 2003-11-16  Martin Baulig  <martin@ximian.com>
5832
5833         * class.c (mono_class_is_open_constructed_type): Implemented the
5834         MONO_TYPE_GENERICINST case.
5835
5836 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5837
5838         * assembly.c (mono_assembly_fill_assembly_name): New function to
5839         fill out the MonoAssemblyName structure.
5840         (mono_assembly_open): Use the new function.
5841
5842         * icall.c (fill_reflection_assembly_name): New helper function.
5843
5844         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5845         new function.
5846
5847         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5848
5849 2003-11-15  Martin Baulig  <martin@ximian.com>
5850
5851         * class.c (mono_class_is_open_constructed_type): New public
5852         function; checks whether a type is an open constructed type,
5853         ie. whether it still contains type parameters.
5854         (mono_class_inflate_generic_type): If we're a type parameter and
5855         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5856         type.
5857
5858         * class.h (MonoGenericInst): Added `guint32 is_open'.
5859
5860         * loader.c (method_from_methodspec): Check whether we're an open
5861         or closed constructed type and set `ginst->is_open'.
5862
5863         * reflection.c (mono_reflection_bind_generic_parameters): Check
5864         whether we're an open or closed constructed type and set
5865         `ginst->is_open'.
5866         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5867         from open constructed types.
5868
5869 2003-11-15  Martin Baulig  <martin@ximian.com>
5870
5871         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5872         a generic instance (instead of a generic type declaration) with
5873         unbound generic parameters, bind them to our actual types.
5874
5875 2003-11-14  Martin Baulig  <martin@ximian.com>
5876
5877         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5878
5879         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5880         an interface type, populate `res->interfaces' with instantiated
5881         versions of all the interfaces we inherit.
5882
5883 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5884
5885         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5886         when MONO_PATH is set but doesn't contain the install dir.
5887
5888 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5889
5890         * icall.c:
5891         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5892         it's also implemented in base classes. Fixes bug #50927.
5893
5894 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5895
5896         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5897         if this method is called from a finalizer. Fixes #50913.
5898
5899 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5900
5901         * threads.c: Implement VolatileRead/VolatileWrite
5902
5903         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5904
5905 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5906
5907         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5908         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5909         2.95.3.
5910
5911         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5912         from Peter Ross (pro@missioncriticalit.com).
5913         
5914 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5915
5916         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5917
5918 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5919
5920         * assembly.c (mono_assembly_load_references): Disable check because it
5921         triggers on older corlibs which lots of people have.
5922
5923 2003-11-12  Jackson Harper  <jackson@ximian.com>
5924
5925         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5926         load corlib.dll if mscorlib.dll is not found.
5927         * assembly.h: Remove corlib name define.
5928         * class.c:
5929         * domain.c:
5930         * image.c: Change corlib name to mscorlib.
5931         
5932 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5933
5934         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5935
5936 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5937
5938         * appdomain.h: Added loader_optimization here to sync with the C#
5939         code, and add disallow_binding_redirects field.
5940
5941 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5942
5943         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5944
5945         * reflection.c (mono_image_build_metadata): Fix crash on modules
5946         with no types.
5947
5948         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5949
5950         * icall.c (ves_icall_get_method_info): Return callingConvention as
5951         well.
5952
5953         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5954         namespaces from the EXPORTEDTYPE table as well.
5955
5956         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5957         from all modules inside the assembly.
5958         
5959 2003-11-11  Martin Baulig  <martin@ximian.com>
5960
5961         * reflection.c (mono_reflection_bind_generic_parameters): Make
5962         this work for interfaces.
5963
5964 2003-11-11  Martin Baulig  <martin@ximian.com>
5965
5966         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5967
5968 2003-11-11  Martin Baulig  <martin@ximian.com>
5969
5970         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5971         "MonoInflatedMethod" and "MonoInflatedCtor".
5972
5973 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5974
5975         * reflection.c (resolution_scope_from_image): Use the assembly table
5976         from the manifest module, since other modules don't have it.
5977
5978         * debug-helpers.c (mono_type_full_name): New helper function.
5979
5980         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5981
5982         * image.c (mono_image_load_file_for_image): New public function which
5983         is a replacement for the load_file_for_image in class.c.
5984
5985         * assembly.c (mono_assembly_load_module): A wrapper for the function
5986         above which does assembly association and reference loading too.
5987
5988         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5989
5990 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5991
5992         * appdomain.c: not all of the attributes for the full assembly name
5993         are required and the order doesn't matter. Fixes bug #50787.
5994
5995 2003-11-10  Dick Porter  <dick@ximian.com>
5996
5997         * locales.c: Use platform-endian UTF16
5998
5999 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6000
6001         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6002         
6003 2003-11-10  Martin Baulig  <martin@ximian.com>
6004
6005         * metadata.c
6006         (mono_metadata_load_generic_params): Make this actually work.
6007
6008         * reflection.c (mono_reflection_bind_generic_parameters): If our
6009         parent is a generic instance, pass all the `types' to it, no
6010         matter whether it has the same number of type parameters or not.
6011
6012 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6013
6014         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6015
6016         * assembly.c (mono_assembly_load_references): Move the image<->assembly
6017         assignment code to this function so it gets called recursively for all
6018         modules.
6019
6020         * image.c (load_modules): Remove the assembly assignment since it is
6021         now done by mono_assembly_load_references.
6022         
6023         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
6024         Add 'module' argument.
6025         (mono_module_get_types): New helper function.
6026         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
6027
6028 2003-11-08  Martin Baulig  <martin@ximian.com>
6029
6030         * class.c (mono_class_inflate_generic_method): Interface method
6031         don't have a header.
6032
6033         * reflection.c (mono_image_get_methodspec_token): Take an
6034         additional `MonoGenericInst *' argument instead of reading it from
6035         the header; this is necessary to support interfaces.
6036         (mono_image_create_token): Pass the `MonoGenericInst *' from the
6037         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
6038         (inflated_method_get_object): Take an additional `MonoGenericInst *'
6039         argument.
6040
6041         * reflection.h (MonoReflectionInflatedMethod): Added
6042         `MonoGenericInst *ginst'.
6043
6044 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
6045
6046         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
6047
6048 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
6049
6050         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
6051
6052 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
6053
6054         * reflection.c 
6055         (reflection_methodbuilder_from_method_builder):
6056         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
6057         initialize a ReflectionMethodBuilder structure.
6058         (mono_image_get_methodbuilder_token):
6059         (mono_image_get_ctorbuilder_token): New functions to emit memberref
6060         tokens which point to types in another module inside the same assembly.
6061
6062         * reflection.c: Use the new helper functions.
6063         
6064         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
6065
6066         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
6067         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
6068
6069         * reflection.c (resolution_scope_from_image): Emit a moduleref if
6070         neccesary.
6071
6072         * reflection.c (mono_image_build_metadata): Emit metadata only for the
6073         current module. Emit the manifest only for the main module.
6074
6075         * reflection.c (mono_image_create_token): Add assertion when a 
6076         memberref needs to be created.
6077
6078         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
6079
6080         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
6081         larger buffer for the custom attribute blob. Fixes #50637.
6082         
6083 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6084
6085         * threadpool.c: notify listener on async processing handles after
6086         invoking the async callback. Thanks to Zoltan.
6087
6088 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6089
6090         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
6091         avoid code duplication.
6092
6093         * reflection.h (MonoDynamicImage): New type which is currently unused,
6094         but will be used through the ref.emit code in place of 
6095         MonoDynamicAssembly.
6096
6097         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6098         object layout.
6099
6100         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
6101         a MonoDynamicImage instead of just a MonoImage.
6102         
6103         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
6104         icalls to ModuleBuilder but keep their semantics, so they will work
6105         with moduleb->assemblyb. This will change later.
6106         
6107 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6108
6109         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6110         object layout.
6111
6112         * reflection.c (mono_image_build_metadata): Avoid creation of a default
6113         main module, since it is now done by the managed code.
6114
6115 2003-11-03  Martin Baulig  <martin@ximian.com>
6116
6117         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
6118         `ginst->klass' here.
6119         (method_encode_methodspec): Don't use the `ginst->generic_method's
6120         klass if it's a generic instance, use `ginst->klass' in this case.
6121
6122 2003-11-03  Martin Baulig  <martin@ximian.com>
6123
6124         * reflection.c (mono_image_get_generic_method_param_info):
6125         Removed, use mono_image_get_generic_param_info() instead.
6126         (mono_image_get_type_info): Write the GenericParam table before
6127         the Method table.  This is neccessary because in the GenericParam
6128         table, type parameters of the class (ie. '!0' etc.) must come
6129         before the ones from its generic methods (ie. '!!0' etc).
6130
6131 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6132
6133         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
6134
6135 2003-11-02  Martin Baulig  <martin@ximian.com>
6136
6137         * reflection.c (create_generic_typespec): Take a
6138         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
6139         the generic parameters from it.
6140
6141 2003-11-02  Martin Baulig  <martin@ximian.com>
6142
6143         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
6144         instead of a `MonoClassField *' since we just need the type.
6145         (create_generic_typespec): New static function.  Creates a
6146         TypeSpec token for a generic type declaration.
6147         (mono_image_get_generic_field_token): New static function.
6148         (mono_image_create_token): If we're a FieldBuilder in a generic
6149         type declaration, call mono_image_get_generic_field_token() to get
6150         the token.
6151
6152 2003-11-02  Martin Baulig  <martin@ximian.com>
6153
6154         * reflection.h
6155         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
6156         `MonoReflectionGenericInst *declaring_type' and
6157         `MonoReflectionGenericInst *reflected_type' fields.
6158
6159         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
6160         `MonoReflectionGenericInst *declaring_type' and a
6161         `MonoReflectionGenericInst *reflected_type' argument instead of a
6162         single `MonoReflectionGenericInst *type' one.  Set
6163         `res->declaring_type' and `res->reflected_type' from them.
6164         (mono_reflection_inflate_field): Likewise.      
6165
6166 2003-11-02  Martin Baulig  <martin@ximian.com>
6167
6168         * class.c (mono_class_setup_vtable): Don't store generic methods
6169         in the vtable.  
6170
6171 2003-11-02  Martin Baulig  <martin@ximian.com>
6172
6173         * reflection.h (MonoReflectionGenericInst): Added
6174         `MonoReflectionType *declaring_type'.
6175
6176         * reflection.c (mono_reflection_bind_generic_parameters): Use
6177         `if (tb->parent)' instead of `klass->parent'.
6178
6179 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
6180
6181         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
6182         with an empty ASSEMBLY table.
6183
6184         * reflection.c (mono_image_build_metadata): Avoid using the same loop
6185         variable in the inner and outer loops.
6186
6187 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
6188
6189         * metadata.h (mono_metadata_make_token): Put parentheses around macro
6190         argument.
6191
6192         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
6193         
6194         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
6195         icalls. Instead, do everything in managed code. This is needed since
6196         it is hard to restore the original domain etc. in unmanaged code in the
6197         presence of undeniable exceptions.
6198
6199         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
6200         New icalls to push and pop appdomain refs.
6201
6202 2003-10-31  Martin Baulig  <martin@ximian.com>
6203
6204         * class.c (inflate_generic_type): Renamed to
6205         mono_class_inflate_generic_type() and made it public.
6206
6207         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6208         New interncall.
6209
6210         * loader.c (mono_field_from_memberref): Also set the retklass for
6211         typespecs.
6212
6213         * fielder.c (mono_image_get_inflated_field_token): New static
6214         method; creates a metadata token for an inflated field.
6215         (mono_image_create_token, fixup_method): Added support for
6216         "MonoInflatedField".
6217         (fieldbuilder_to_mono_class_field): New static function.
6218         (mono_reflection_inflate_field): New public function.
6219
6220         * reflection.h
6221         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6222         (MonoReflectionInflatedField): New typedef.     
6223
6224 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6225
6226         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6227         for Solaris and other platforms without s6_addr16
6228
6229 2003-10-30  Martin Baulig  <martin@ximian.com>
6230
6231         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6232         argument instead of two.
6233         (mono_class_inflate_generic_signature): Likewise.
6234         (inflate_generic_header): Likewise.
6235         (mono_class_inflate_generic_method): Likewise.  In addition, if
6236         `ginst->klass' is set, it becomes the new `method->klass'.
6237
6238         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6239         field.
6240
6241         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6242         first byte. [FIXME]
6243         (method_encode_methodspec): If we have generic parameters, create
6244         a MethodSpec instead of a MethodRef.
6245         (fixup_method): Added support for "MonoInflatedMethod" and
6246         "MonoInflatedCtor".
6247         (mono_image_create_token): Added support for "MonoInflatedMethod"
6248         and "MonoInflatedCtor".
6249         (inflated_method_get_object): New static function; returns a
6250         managed "System.Reflection.MonoInflatedMethod" object.
6251         (mono_reflection_bind_generic_method_parameters): Return a
6252         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6253         (mono_reflection_inflate_method_or_ctor): Likewise.
6254         (mono_image_get_generic_method_param_info): Initialize unused
6255         fields to zero.
6256         (mono_image_get_generic_param_info): Likewise.
6257
6258         * reflection.h (MonoReflectionInflatedMethod): New public
6259         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6260         "S.R.MonoInflatedCtor" classes.
6261
6262         * loader.c (method_from_memberref): If we're a TypeSpec and it
6263         resolves to a generic instance, inflate the method.
6264
6265 2003-10-28  Dick Porter  <dick@ximian.com>
6266
6267         * object.c (mono_runtime_run_main): Convert command-line arguments
6268         into utf8, falling back to the user's locale encoding to do so.
6269
6270 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6271
6272         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6273         at this time.
6274
6275         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6276
6277         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6278         up icalls at method definition time. Partially fixes #33569.
6279
6280 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6281
6282         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6283         marshalling of arrays. Fixes #50116.
6284
6285         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6286
6287         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6288         points to a vtable in the dying appdomain.
6289
6290         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6291         listeners into unmanaged code inside the lock.
6292
6293         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6294         domains and add some comments.
6295
6296 2003-10-25  Martin Baulig  <martin@ximian.com>
6297
6298         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6299
6300         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6301
6302         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6303         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6304         currently parsing.  Create the generic class and store it in
6305         `generic_inst->klass' before parsing the type arguments.  This is
6306         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6307         for an example.
6308         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6309         to support recursive typespec entries.
6310
6311         * class.c (mono_class_setup_parent): If our parent is a generic
6312         instance, we may get called before it has its name set.
6313         (mono_class_from_generic): Splitted into
6314         mono_class_create_from_generic() and mono_class_initialize_generic().
6315
6316 2003-10-25  Martin Baulig  <martin@ximian.com>
6317
6318         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6319         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6320         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6321         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6322
6323         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6324         (create_typespec): Likewise.
6325         (mono_reflection_bind_generic_parameters): Return a
6326         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6327         (mono_reflection_inflate_method_or_ctor): New public function.
6328
6329         * reflection.h (MonoReflectionGenericInst): New typedef.        
6330
6331 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6332
6333         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6334         inside the domain lock. Fixes #49993.
6335         
6336         * object.c (mono_class_vtable): When typed allocation is used, 
6337         allocate vtables in the GC heap instead of in the mempool, since the
6338         vtables contain GC descriptors which are used by the collector even
6339         after the domain owning the mempool is unloaded.
6340
6341         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6342
6343         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6344         reflect what it does. Also invalidate mempools instead of freeing
6345         them if a define is set.
6346
6347         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6348         of the appdomain.
6349         
6350         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6351         hold the finalizable objects in this domain.
6352
6353         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6354         appdomain.
6355
6356         * appdomain.c (mono_domain_set): New function to set the current
6357         appdomain, but only if it is not being unloaded.
6358
6359         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6360         appdomain which is being unloaded.
6361         
6362         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6363         unloading of the root appdomain.
6364
6365         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6366         icall to execute a method in another appdomain. Intended as a 
6367         replacement for InternalSetDomain, which can confuse the code 
6368         generation in the JIT.
6369
6370         * appdomain.c (mono_domain_is_unloading): New function to determine
6371         whenever an appdomain is unloading.
6372
6373         * appdomain.c (mono_domain_unload): New function to correctly unload
6374         an appdomain.
6375
6376         * assembly.c (mono_assembly_load_references): Check that an assembly
6377         does not references itself.
6378
6379         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6380         domain manually, it asks the finalizer thread to do it, then waits for
6381         the result. Also added a timeout.
6382
6383         * icall.c: Register the new icalls.
6384
6385         * threads.h threads.c: Export the mono_gc_stop_world and 
6386         mono_gc_start_world functions.
6387         
6388         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6389         function to fill out the mempool with 0x2a.
6390
6391 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6392
6393         * reflection.h (MonoReflectionMethodAux): New structure to store
6394         information which is rarely used, thus is not in the MonoMethod
6395         structure.
6396
6397         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6398         store the aux info.
6399
6400         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6401         and marshalling info into the aux structure.
6402
6403         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6404         from the aux structure.
6405
6406         * loader.c (mono_method_get_param_names): Retrieve the param names from
6407         the aux structure.
6408         
6409 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6410
6411         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6412         warning.
6413
6414 2003-10-21  Dick Porter  <dick@ximian.com>
6415
6416         * socket-io.c
6417         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6418         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6419
6420 2003-10-21  Martin Baulig  <martin@ximian.com>
6421
6422         * reflection.c (mono_reflection_bind_generic_parameters):
6423         `klass->parent' is NULL for interfaces.
6424
6425 2003-10-21  Martin Baulig  <martin@ximian.com>
6426
6427         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6428
6429 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6430
6431         * exception.c (mono_exception_from_name_msg): New helper function for
6432         creating exceptions and initializing their message field.
6433
6434         * exception.c: Simplify functions using the new helper.
6435
6436         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6437         New function.
6438
6439         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6440         mono_raise_exception, since otherwise gcc doesn't generate the function
6441         epilog for raise_exception, confusing the stack unwinding in the JIT.
6442         Fixes #45043.
6443
6444         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6445         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6446         Fixes #49499.
6447
6448 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6449
6450         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6451         utf8.
6452
6453 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6454
6455         * icall.c: Removed GetUninitializedObject method because
6456           AllocateUninitializedClassInstance does the same.
6457
6458 2003-10-18  Martin Baulig  <martin@ximian.com>
6459
6460         * class.c (inflate_generic_signature): Renamed to
6461         mono_class_inflate_generic_signature() and made it public.
6462         (my_mono_class_from_generic_parameter): New static function; if we
6463         don't already have the generic parameter's MonoClass, create a
6464         very simple one which is just used internally in the runtime and
6465         not passed back to managed code.
6466
6467         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6468
6469         * metadata.h (MonoMethodSignature): Moved the
6470         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6471         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6472
6473         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6474         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6475         interncall on the MonoMethod class, not on MethodInfo.
6476         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6477         calling mono_reflection_bind_generic_method_parameters() directly.
6478
6479         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6480         return the already computed `method->signature'.
6481         (method_from_methodspec): New static function to load a method
6482         from a MethodSpec entry.
6483         (mono_get_method_from_token): Call the new method_from_methodspec()
6484         for MethodSpec tokens.  
6485         (mono_get_method_from_token): If we're a generic method, load the
6486         type parameters.
6487
6488         * reflection.c (mono_image_get_memberref_token): Allow
6489         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6490         table.
6491         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6492         (mono_image_create_token): First check whether it's a generic
6493         method (so we'd need to create a MethodSpec), then do the other
6494         two alternatives.
6495         (mono_reflection_bind_generic_method_parameters): Return a
6496         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6497         called directly from the interncall.
6498
6499 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6500
6501         * reflection.c (load_public_key): Move loading of the public key
6502         into managed code.
6503
6504         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6505
6506         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6507         fields.
6508
6509         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6510         culture, hash_alg and public_key. Fixes #49555.
6511
6512 2003-10-17  Martin Baulig  <martin@ximian.com>
6513
6514         * class.h (MonoGenericInst): Moved this declaration here and added
6515         `MonoMethod *generic_method'.
6516
6517         * icall.c
6518         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6519         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6520
6521         * metadata.c (mono_metadata_type_equal): Two types of
6522         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6523         index; ie. don't compare the address of the `MonoGenericParam'
6524         structure.
6525         (mono_metadata_load_generic_params): Removed the `MonoMethod
6526         *method' argument.
6527
6528         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6529         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6530
6531         * reflection.c (method_encode_signature): Encode the number of
6532         generic parameters.
6533         (encode_generic_method_sig): New static function.
6534         (method_encode_methodspec): New static function; creates an entry
6535         in the MethodSpec table for a generic method.
6536         (mono_image_get_methodspec_token): New static function.
6537         (mono_image_create_token): Call mono_image_get_methodspec_token()
6538         for generic methods.
6539         (mono_reflection_bind_generic_method_parameters): New public
6540         function.  Instantiates a generic method.
6541
6542 2003-10-16  Martin Baulig  <martin@ximian.com>
6543
6544         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6545         *gen_params' here from MonoMethodHeader.
6546
6547         * metadata.c (mono_metadata_parse_method_signature): If we have
6548         generic parameters, initialize `method->gen_params' and then set
6549         the correct `type->data.generic_param' in all the parameters.
6550
6551 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6552
6553         * threads.c (mono_threads_get_default_stacksize): New function to 
6554         return the default stacksize.
6555
6556         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6557         termination of the finalizer thread, since the previous method had
6558         race conditions. Fixes #49628.
6559
6560         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6561         as for the other managed threads.
6562
6563 2003-10-16  Martin Baulig  <martin@ximian.com>
6564
6565         * class.c (inflate_generic_signature): Copy `generic_param_count'
6566         and `gen_params'.
6567
6568         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6569         New interncall.
6570
6571         * metadata.c (mono_metadata_parse_method_signature): Actually set
6572         the `method->generic_param_count' here.
6573         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6574
6575 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6576
6577         * object.h: Add a new field to TypedRef to simplify the implementation
6578         of the REFANY opcodes in the JIT.
6579
6580         * icall.c: Make use of the new field.
6581
6582         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6583         dynamically.
6584
6585 2003-10-15  Martin Baulig  <martin@ximian.com>
6586
6587         * class.c (mono_class_from_gen_param): Renamed to
6588         mono_class_from_generic_parameter() and moved most of the
6589         functionality from mono_reflection_define_generic_parameter()
6590         here; ie. we create a "real" class here.
6591         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6592         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6593         previously been called.
6594
6595         * class.h (MonoGenericParam): Moved the declaration of this struct
6596         here from metadata.h and added `MonoMethod *method'.
6597
6598         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6599         interncall.
6600
6601         * loader.c (mono_get_method_from_token): If we have any generic
6602         parameters, call mono_metadata_load_generic_params() to read them
6603         from the MONO_TABLE_GENERICPAR.
6604
6605         * metadata.c (mono_metadata_load_generic_params): Added
6606         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6607
6608         * metadata.h (MonoMethodSignature): Replaced
6609         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6610         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6611
6612         * reflection.c (mono_reflection_define_generic_parameter): Moved
6613         most of the functionality into the new
6614         mono_class_from_generic_parameter(); set the `method' field if
6615         we're a method parameter.       
6616
6617 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6618
6619         * marshal.c (emit_struct_conv): if native size is 0
6620         emit no code.
6621
6622 2003-10-14  Martin Baulig  <martin@ximian.com>
6623
6624         * icall.c: The generics API has changed in the spec since it was
6625         added to System.Type; these modifications make it match the spec
6626         again.
6627         (ves_icall_Type_GetGenericParameters): Renamed to
6628         `ves_icall_Type_GetGenericArguments'.
6629         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6630         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6631         `ves_icall_MonoType_get_HasGenericArguments'.
6632         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6633         `ves_icall_MonoType_get_IsGenericParameter'.
6634         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6635         this is no interncall anymore.
6636         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6637         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6638
6639 2003-10-14  Martin Baulig  <martin@ximian.com>
6640
6641         * reflection.c (mono_reflection_bind_generic_parameters): Also
6642         inflate generic methods if we're reading the class from IL.
6643
6644 2003-10-13  Martin Baulig  <martin@ximian.com>
6645
6646         * reflection.c (mono_reflection_define_generic_parameter): This
6647         method isn't called directly from the icall anymore; take a
6648         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6649         method generic parameters.
6650         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6651         (method_builder_encode_signature): Encode generic parameters.
6652         (mono_image_get_method_info): Write generic params to the
6653         MONO_TABLE_GENERICPARAM table.
6654
6655         * reflection.h (MonoReflectionMethodBuilder): Added
6656         `MonoArray *generic_params'.
6657
6658         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6659
6660         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6661         wrapper for mono_reflection_define_generic_parameter().
6662         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6663
6664 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6665
6666         * marshal.h: Add missing function to fix build.
6667
6668         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6669         the SetLastError pinvoke attribute.
6670
6671         * marshal.c (mono_marshal_set_last_error): New helper function called
6672         by the generated code.
6673         
6674         * marshal.c (mono_mb_emit_branch): New helper function.
6675
6676         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6677
6678         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6679         classes as parameters and return values of delegates. Fixes #29256. 
6680
6681 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6682
6683         * locales.c: use gint32 in non HAVE_ICU case
6684
6685 2003-10-11  Martin Baulig  <martin@ximian.com>
6686
6687         * mono-debug.c (mono_debug_add_method): Added a workaround for
6688         bug #48591.
6689
6690 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6691
6692         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6693         delegates passed to native code must use the STDCALL calling 
6694         convention. Fixes #35987.
6695
6696 2003-10-10  Martin Baulig  <martin@ximian.com>
6697
6698         * class.c (inflate_generic_type): If we're inflating for a generic
6699         type instance (and not for a generic method), return
6700         MONO_TYPE_MVAR unchanged.
6701
6702 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6703
6704         * string-icalls.c: Join ignores null strings in the source array.
6705         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6706         * threads.c: GetAvailableTheads is slightly more accurate.
6707
6708 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6709
6710         * threads.h threads.c : add mono_threads_set_default_stacksize
6711         and pass default to CreateThread calls.
6712
6713 2003-10-09  Dick Porter  <dick@ximian.com>
6714
6715         * icall.c:
6716         * locales.h:
6717         * locales.c: Internal calls for constructing CultureInfo and
6718         related objects from libicu (if its available.)
6719
6720 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6721
6722         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6723
6724 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6725
6726         * threadpool.c: added an argument to async_invoke_thread that is the
6727         item to process, pass the MonoAsyncResult to the thread start function
6728         when creating a new thread. This way we don't need to acquire any lock
6729         when we're creating a new thread. Readded a semaphore for faster
6730         response times (instead of that Sleep i added).
6731
6732 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6733
6734         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6735         get daylight change dates better on Windows, fix handling
6736         of platforms without tm_gmtoff.
6737
6738 2003-10-06  Martin Baulig  <martin@ximian.com>
6739
6740         * class.c (inflate_generic_method): Renamed to
6741         mono_class_inflate_generic_method() and made public.
6742         (mono_class_init): Don't inflate the generic methods here.
6743         (mono_class_from_generic): Added `gboolean inflate_methods'
6744         argument.  Inflate the methods here.
6745
6746         * loader.c (mono_method_get_param_names): Ignore instances of
6747         generic types for the moment.
6748
6749         * reflection.c (fixup_method): Added support for inflated methods.
6750         (mono_image_create_token): Use mono_image_get_methodref_token()
6751         for inflated methods.
6752         (mono_custom_attrs_from_param): Ignore instances of generic types
6753         for the moment.
6754         (mono_reflection_bind_generic_parameters): New public function.
6755         Moved all the functionality from
6756         ves_icall_Type_BindGenericParameters() here and added support for
6757         dynamic types.
6758         (mono_reflection_define_generic_parameter): Initialize
6759         `klass->methods' here.
6760
6761         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6762         functionality into mono_reflection_define_generic_parameter().
6763         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6764         TypeBuilder, return that TypeBuilder.
6765
6766 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6767
6768         * appdomain.c: removed mono_delegate_semaphore.
6769
6770         * threadpool.c:
6771         (mono_thread_pool_add): moved hash table creation inside and the thread 
6772         creation outside of the critical region.
6773         (mono_thread_pool_finish): removed obsolete code.
6774         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6775         continue or exit the thread depending on the queue.
6776
6777 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6778
6779         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6780         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6781         handle more bool marshalling options
6782
6783 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6784
6785         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6786         arrays of structs. Also add a more descriptive error message when
6787         a structure member is marshalled as LPArray.
6788
6789 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6790
6791         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6792         marshalling arrays of complex types. Fixes #29098. Also remove an
6793         usused and incomplete function.
6794
6795 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6796
6797         * gc.c: report heap_size - free_bytes as total memory allocated
6798         (bug#49362).
6799
6800 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6801
6802         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6803         fix timezone handling problems on Windows.
6804         
6805         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6806         asserts when the year is outside the range handled by ms the functions.
6807
6808         * class.c (setup_interface_offsets): If the class is an interface,
6809         fill out its interface_offsets slot.
6810
6811 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6812
6813         * threadpool.c: mark threadpool threads as background.
6814
6815 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6816
6817         * decimal.c - define DECINLINE to nothing if not using GCC
6818
6819 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6820
6821         * assembly.c: More refcount fixes.
6822
6823 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6824
6825         * string-icalls.c: if we're not trimming, return the same string.
6826         When not splitting, don't create a new string.
6827
6828 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6829
6830         * image.c:
6831         (mono_image_open): increment the ref_count inside the critical section.
6832
6833 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6834
6835         * image.c (mono_image_open): Fix reference counting bug.
6836
6837 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6838
6839         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6840         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6841         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6842         mono_lookup_pinvoke_call throws.        
6843
6844 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6845
6846         * reflection.c (mono_reflection_parse_type): Fix #49114.
6847
6848         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6849         temporary workaround for cygwin header problem.
6850
6851         * object.c (mono_object_isinst): Synchronize this with the code
6852         generated by the JIT for casts.
6853
6854 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6855
6856         * reflection.c (encode_type): Fix #38332.
6857
6858 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6859
6860         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6861         the original method from the wrapper method.
6862
6863 2003-09-25  Martin Baulig  <martin@ximian.com>
6864
6865         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6866         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6867         (ves_icall_Type_get_IsGenericInstance): New interncall.
6868
6869 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6870
6871         * object.c: fix cast warning in big endian code.
6872
6873 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6874
6875         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6876         
6877 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6878
6879         * assembly.c: don't call check_env from mono_assembly_load. It's
6880         already done once in mono_assemblies_init and may cause headaches when
6881         multiple threads are loading assemblies.
6882
6883 2003-09-19  Martin Baulig  <martin@ximian.com>
6884
6885         * reflection.c (mono_reflection_define_generic_parameter): Don't
6886         allocate `klass->methods', set `klass->flags' to
6887         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6888
6889 2003-09-18  Martin Baulig  <martin@ximian.com>
6890
6891         * class.c (mono_class_init): Don't create `class->methods' if it's
6892         already initialized.
6893
6894         * metadata.c (mono_metadata_load_generic_params): Make this
6895         actually work.
6896
6897         * reflection.c (mono_reflection_define_generic_parameter): Set
6898         parent class and interfaces from the constraints.
6899
6900         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6901         to keep this struct in sync with the declaration in TypeBuilder.cs.
6902
6903 2003-09-17  Martin Baulig  <martin@ximian.com>
6904
6905         * metadata.h (MonoType): Replaced the data's `int type_param'
6906         field with `MonoGenericParam *generic_param'.
6907         (MonoGenericParam): Added `MonoClass *klass'.
6908
6909         * class.c (mono_class_from_gen_param): Removed the
6910         `MonoImage *image' and `int type_num' arguments.
6911
6912         * metadata.c (mono_metadata_parse_generic_param): New static
6913         method; creates a MonoGenericParam which just contains the index.
6914         (do_mono_metadata_parse_type): Call
6915         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6916         MONO_TYPE_MVAR.
6917
6918         * reflection.c (mono_image_typedef_or_ref): Generic type
6919         parameters may be in the same assembly, but never use a typedef
6920         for them.
6921         (mono_reflection_define_generic_parameter): We're now creating a
6922         "real" class for the type parameter; it's now safe to call
6923         mono_class_from_mono_type() on the class'es type, it'll do the
6924         right thing.
6925
6926 2003-09-16  Martin Baulig  <martin@ximian.com>
6927
6928         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6929         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6930         the `symfile' data structure must be fully initialized before it
6931         gets added to the table.
6932
6933 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6934
6935         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6936
6937         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6938         class init trampolines.
6939
6940 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6941
6942         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6943         to the built-in profiler to turn off time and allocation profiling
6944         respectively.
6945
6946 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6947
6948         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6949         g_direct_equal.
6950
6951         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6952         in human readable form.
6953
6954 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6955
6956         * reflection.c icall.c: Fixed warnings.
6957
6958         * image.c (load_class_names): Use a temporary hash table to hold the
6959         namespaces in order to avoid doing many string comparisons.
6960
6961         * image.h: Fix typo.
6962
6963         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6964         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6965         since the NULL case is short-circuited inside g_hash_table_lookup, 
6966         leading to better performance.  
6967
6968         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6969         obtain the first custom attribute for a given index. Depends on the
6970         CustomAttribute table being sorted by the parent field.
6971
6972         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6973         for better performance.
6974
6975 2003-09-07  Martin Baulig  <martin@ximian.com>
6976
6977         * class.c (mono_class_init): If we're a generic instance, inflate
6978         all our methods instead of loading them from the image.
6979         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6980
6981 2003-09-07  Martin Baulig  <martin@ximian.com>
6982
6983         * mono-debug-debugger.c: Added support for constructors.
6984
6985 2003-09-06  Martin Baulig  <martin@ximian.com>
6986
6987         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6988         New interncall.
6989
6990         * reflection.c (mono_reflection_setup_generic_class): Call
6991         ensure_runtime_vtable() to create the vtable.
6992
6993 2003-09-05  Martin Baulig  <martin@ximian.com>
6994
6995         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6996         MONO_TYPE_MVAR.
6997
6998 2003-09-04  Martin Baulig  <martin@ximian.com>
6999
7000         * reflection.c (mono_reflection_define_generic_parameter): Generic
7001         parameters start with zero.
7002
7003 2003-09-04  Martin Baulig  <martin@ximian.com>
7004
7005         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
7006
7007         * reflection.h (MonoReflectionGenericParam): New typedef.
7008         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
7009         the generic parameters from the managed TypeBuilder.
7010
7011         * reflection.c (mono_reflection_define_generic_parameter): New function.
7012         (mono_reflection_create_runtime_class): Encode generic parameters.
7013         (mono_reflection_setup_generic_class): New function; this is
7014         called after adding adding all generic params to the TypeBuilder.
7015         (encode_type): Added MONO_TYPE_VAR.
7016
7017 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
7018
7019         * class.h class.c (mono_class_needs_cctor_run): Moved this method
7020         here from the JIT.
7021
7022         * assembly.h assembly.c: Moved the AOT loading code into an assembly
7023         load hook.
7024
7025 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
7026
7027         * reflection.h reflection.c class.h class.c: Delete duplicate 
7028         definition of mono_type_get_name () from reflection.c and export the
7029         one in class.c.
7030
7031         * class.c: Class loading fixes from Bernie Solomon 
7032         (bernard@ugsolutions.com).
7033
7034         * reflection.c: Endianness fixes from Bernie Solomon 
7035         (bernard@ugsolutions.com).
7036         
7037 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
7038
7039         * assembly.h assembly.c: Define a file format version for AOT
7040         libraries.
7041         
7042         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
7043
7044         * appdomain.h (MonoJitInfo): New field to determine whenever the
7045         code is domain neutral.
7046         
7047 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
7048
7049         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
7050
7051 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
7052
7053         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
7054         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
7055         Avoid caching the result since strings must be domain specific. Fixes
7056         #48050.
7057
7058 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
7059
7060         * marshal.c (mono_marshal_init): Make this callable multiple times
7061         since it is hard to find a correct place to call it.
7062
7063         * object.c (mono_runtime_class_init): Execute static constructors in
7064         the correct appdomain.
7065
7066         * image.c (build_guid_table): Handle the case when multiple images have
7067         the same GUID.
7068
7069 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7070
7071         * icall.c: added a couple of icalls for System.Web.
7072
7073 2003-08-28  Martin Baulig  <martin@ximian.com>
7074
7075         * icall.c (ves_icall_Type_BindGenericParameters): Use
7076         `klass->generic_inst' instead of `&klass->byval_arg' in the
7077         mono_type_get_object() call.  The returned type must be
7078         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
7079
7080 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
7081
7082         * NOTES: New file.
7083
7084         * object.c (mono_class_proxy_vtable): Make it thread safe.
7085
7086         * pedump.c: Fix warning.
7087
7088         * object.c appdomain.h: Get rid of metadata_section. 
7089         It is no longer needed and it was causing deadlocks with domain->lock.
7090
7091         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
7092
7093 2003-08-26  Martin Baulig  <martin@ximian.com>
7094
7095         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
7096
7097 2003-08-26  Martin Baulig  <martin@ximian.com>
7098
7099         * pedump.c (main): Call mono_metadata_init(),
7100         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
7101         and mono_loader_init().
7102
7103 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
7104
7105         * loader.h: Add missing include to fix build.
7106
7107         * image.h: mono_image_load_references is no more.
7108
7109         * assembly.c: Reworked assembly loading to make it really thread safe.
7110         After these changes, the assembly returned by mono_assembly_open is
7111         fully initialized, i.e. all its references assemblies are loaded.
7112
7113         * assembly.c (mono_image_load_references): Renamed to 
7114         mono_assembly_load_references, and made private, since clients no
7115         longer need to call it.
7116
7117         * class.c: Removed calls to mono_assembly_load_references, since it was
7118         a source of deadlocks.
7119
7120         * loader.h loader.c class.h class.c: Protect data structures using a 
7121         new lock, the loader lock.
7122
7123         * class.c (mono_class_setup_vtable): Create temporary hash tables and
7124         GPtrArrays only when needed.
7125
7126         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
7127         into empty structures by mcs. Fixes pinvoke7.cs.
7128         
7129         * domain.c (mono_init): Call a new initialization function.
7130
7131         * appdomain.c (mono_runtime_init): Call the new initializer function
7132         of the marshal module.
7133
7134         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
7135         inserted into empty structures by mcs. Fixes pinvoke7.cs.
7136
7137         * marshal.h marshal.c: Added locks around the wrapper caches to make
7138         this module thread safe.
7139
7140         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
7141         this argument. Fixes pinvoke1.exe.
7142
7143 2003-08-25  Lluis Sanchez <lluis@ximian.com>
7144
7145         * object.h: Added call_type field to MonoMethodMessage and the corresponding
7146         enumeration of values. Removed fields to store remote call output values in
7147         MonoAsyncResult. Not needed any more.
7148         * object.c: Initialize call_type and async_result fields in mono_message_init.
7149         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
7150         dispatching the message.
7151         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
7152         async call to finish. To do it use a message with EndInvoke call type.
7153
7154 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
7155
7156         * loader.h loader.c (mono_method_hash_marhal_info): New function which
7157         determines whenever a method has marshalling info.
7158
7159 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7160
7161         * assembly.c: fix the build on windows.
7162
7163 2003-08-22 Lluis Sanchez <lluis@ximian.com>
7164
7165         * object.cs: Fixed bug #47785.
7166
7167 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
7168
7169         * string-icalls.c (StringReplace): If their are no occurances of
7170         the old string found return a reference to the supplied
7171         string. This saves some memory and matches MS behavoir.
7172         
7173 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7174
7175         * socket-io.c: fixed compilation for systems that define AF_INET6
7176         and don't define SOL_IP/SOL_IPV6.
7177
7178 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
7179
7180         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
7181         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
7182
7183         * rawbuffer.c rawbuffer.h: Make this module thread safe.
7184
7185         * domain.c: Make this module thread safe.
7186
7187         * domain.c (mono_init): Call new initialization function.
7188
7189         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
7190         reference types too. Fixes #38812.
7191
7192         * image.c (mono_image_init): Fixed warnings.
7193
7194         * class.c (mono_class_from_typeref): Handle assembly load failure
7195         correctly.
7196
7197         * appdomain.c (add_assemblies_to_domain): Handle the case when
7198         the references of an assembly are not yet loaded.
7199
7200         * metadata.c image.c assembly.c: Moved initialization of global
7201         variables to a separate function called at startup since lazy 
7202         initialization of these variables is not thread safe.
7203         
7204         * image.c assembly.c: Made this module thread safe by adding locks in 
7205         the appropriate places.
7206
7207         * domain.c (mono_init): Call the new initialization functions of the
7208         three modules.
7209
7210 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
7211
7212         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7213           make a direct call. It is proxy's work to make the call asynchronous.
7214           mono_delegate_end_invoke(): If the targe is a proxy, just collect
7215           the return values.
7216         * object.cs: mono_method_call_message_new(): read AsyncResult and
7217           state object from parameters list, if this info is requested.
7218         * object.h: Added fields to store remote call output values in
7219           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7220
7221 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7222
7223         * object.h: add needed fields to MonoThread.
7224         * threads.c, threads.h: allow registering a function to cleanup data
7225         allocated per thread by the JIT.
7226
7227 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7228
7229         * loader.h: portability fix by Bernie Solomon
7230         * <bernard@ugsolutions.com>.
7231
7232 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7233
7234         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7235         return a MonoArray. This simplifies the code and also ensures that
7236         the cache allways contains an object reference as a value.
7237
7238         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7239         function.
7240
7241 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7242
7243         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7244         fixes a problem with byte ordering when getting the address family for
7245         a socket.
7246
7247 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7248
7249         * .cvsignore: Added monosn.
7250
7251         * reflection.h reflection.c loader.c: Added support for parameter
7252         marshalling to dynamically created types. Fixes #47295.
7253
7254 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7255
7256         * rand.c: remove useless warnings.
7257
7258 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7259
7260         * class.c: implemented ldtoken for methods and fieldrefs.
7261
7262 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7263
7264         * threadpool.c: when mono_async_invoke was called, no one took care of
7265         monitoring the queue. So if the method invoked took some time and we
7266         got new async invoke requests after 500 ms (the thread created waited
7267         that long in WaitForSingleObject), the new async invoke was not called
7268         until the previous one finished.
7269
7270         This is fixed now. Thanks to Totte for helping with it.
7271
7272 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7273
7274         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7275
7276 2003-08-11  Martin Baulig  <martin@ximian.com>
7277
7278         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7279
7280 2003-08-06  Martin Baulig  <martin@ximian.com>
7281
7282         * mono-debug-debugger.c: Added support for static fields,
7283         properties and methods.
7284
7285 2003-08-06  Martin Baulig  <martin@ximian.com>
7286
7287         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7288         make this work for applications with multiple application domains.
7289
7290 2003-08-04  Martin Baulig  <martin@ximian.com>
7291
7292         * mono-debug-debugger.c: Completely reworked the type support; the
7293         most important thing is that we're now just using one single
7294         `MonoType' instance per type.
7295
7296 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7297
7298         * mono-endian.h, mono-endian.c, icall.c: Added icall
7299         ves_icall_System_Double_AssertEndianity to assert double word endianity
7300         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7301
7302 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7303
7304         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7305         support, icalls and fixes.
7306
7307 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7308
7309         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7310         classes that are a punctuation character in .NET is not the same a
7311         g_unichar_ispunct.
7312
7313 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7314
7315         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7316
7317 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7318
7319         * icall.c: Add new MemCopy internalcall.
7320         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7321         Simplified code; It is not necessary to handle all the cases here,
7322         as the C# code takes care of it.  Only handle the case of the name
7323         resource embedded into the assembly.
7324
7325         Changed signature to return the data pointer and the size of the
7326         data. 
7327
7328 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7329
7330         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7331         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7332
7333 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7334
7335         * socket-io.c: ignore EINTR error in select.
7336
7337 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7338
7339         * class.h, class.c: removed unused subclasses field in MonoClass.
7340
7341 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7342
7343         * icall.c: improve fix of get_base_definition(). If the parent class
7344           doesn't have the mehod, look at the parent of the parent.
7345         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7346           to check if a parameter is an in or out parameter
7347           (PARAM_ATTRIBUTE_IN is not set by default).
7348           mono_method_return_message_restore(): Use mono_class_value_size to
7349           get the size of a value type. mono_type_stack_size (parameterType)
7350           does not return the correct value if parameterType is byRef.
7351           mono_load_remote_field(), mono_load_remote_field_new(),
7352           mono_store_remote_field(), mono_store_remote_field_new():
7353           raise exception if the remote call returns an exception.
7354
7355 2003-07-28  Martin Baulig  <martin@ximian.com>
7356
7357         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7358         method.  This is a wrapper around mono_runtime_invoke() which
7359         boxes the instance object if neccessary.
7360
7361 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7362
7363         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7364         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7365
7366 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7367
7368         * icall.c: disable mcs bug workaround.
7369
7370 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7371
7372         * object.c (mono_runtime_class_init): Take the metadata_section
7373         mutex before obtaining the domain mutex.
7374
7375         * appdomain.h: Added definition of metadata_section mutex here. 
7376
7377         * object.c: define metadata_mutex here.
7378
7379 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7380
7381         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7382         fixed.
7383
7384 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7385
7386         * reflection.c: Fix bug #46669
7387
7388 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7389
7390         * exception.c:
7391         * exception.h:
7392         * icall.c:
7393         * object.h: fill in the type name for TypeLoadException.
7394
7395 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7396
7397         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7398         relationship between TypeBuilders while compiling corlib) and bug
7399         45993 (Array types returned from the runtime while compiling
7400         corlib were from the loaded corlib).
7401
7402 2003-07-22  Martin Baulig  <martin@ximian.com>
7403
7404         * mono-debug-debugger.c: Reworked the type support a bit more;
7405         distinguish between types and classes.
7406
7407 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7408
7409         * icall.c: add IsArrayImpl icall.
7410
7411 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7412
7413         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7414         initializing real_size only once. Also fix bug #46602.
7415
7416 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7417
7418         * object.c: Renamed mono_metadata_section to metadata_section.
7419
7420 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7421
7422         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7423           empty array if the type is an array. Fixed.
7424           ves_icall_MonoMethod_get_base_definition: if the base method
7425           is abstract, get the MethodInfo from the list of methods of
7426           the class.
7427         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7428           and it was 1-based. Fixed in mono_param_get_objects.
7429
7430 2003-07-20  Martin Baulig  <martin@ximian.com>
7431
7432         * mono-debug.h: Set version number to 31.
7433         (mono_debug_init): Added `MonoDomain *' argument.
7434
7435         * mono-debug-debugger.c: Reworked the type support; explicitly
7436         tell the debugger about builtin types; pass the `klass' address to
7437         the debugger.
7438
7439 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7440
7441         * image.c: Allow new metadata tables to be loaded without a
7442         warning. Also update the warning message to give the new constant value.
7443                 
7444 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7445
7446         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7447         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7448         array type representation changes.
7449
7450 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7451
7452         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7453         on Environment.Exit () call.
7454
7455 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7456
7457         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7458         requires a matching corlib.
7459
7460 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7461
7462         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7463           Committed again without the CRs.
7464         
7465 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7466
7467         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7468           getting it from the "this" socket instance. Did not work
7469           if the socket is a subclass of Socket.
7470           Also fixed bug #35371.
7471
7472 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7473
7474         * metadata.c: fixed size for TypedByRef.
7475         * loader.c: when searching for a method, consider the vararg amrker.
7476         * unicode.c, decimal.c: constify some arrays.
7477
7478 2003-07-15  Dick Porter  <dick@ximian.com>
7479
7480         * socket-io.c: Fixed compilation for gcc < 3.2.
7481
7482         Fixed compilation for machines that don't have AF_INET6 (thanks to
7483         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7484
7485         Fixed compile warnings.
7486         
7487         Fixed formatting and line endings.
7488
7489 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7490
7491         * socket-io.h:
7492         * socket-io.c: Added IPv6 support.
7493
7494 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7495
7496         * class.c (mono_class_is_assignable_from): New function to implement
7497         the is_assignable_from logic. Used by mono_object_isinst, 
7498         Type::IsAssignableFrom () and the interpreter.
7499
7500         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7501         Object, even interfaces.
7502         
7503         * object.c (mono_object_isinst): Implement in terms of 
7504         is_assignable_from.
7505
7506         * icall.c (ves_icall_type_is_assignable_from): New icall.
7507
7508 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7509
7510         * domain.c (foreach_domain): fix compiler warning.
7511
7512 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7513
7514         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7515         not available on all plattforms
7516
7517 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7518
7519         * image.h image.c: Store the metadata version string in MonoImage.
7520         * icall.c: New icall to retrieve the image version.
7521         * reflection.c (create_dynamic_image): Fill in the image version field
7522         * reflection.c (build_compressed_metadata): Use the image version
7523         from the image structure.
7524
7525 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7526
7527         * appdomain.c: modified comment.
7528         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7529         That will be its last iteration when mono_gc_cleanup is called from
7530         mono_runtime_cleanup and before the domain is unloaded.
7531
7532         Fixes bug #45962.
7533
7534 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7535
7536         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7537         attributes.
7538
7539 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7540
7541         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7542         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7543         Bernie Solomon <bernard@ugsolutions.com>.
7544
7545 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7546
7547         * object.c, object.h: provide mono_object_new_fast() for faster
7548         allocation in some special cases.
7549
7550 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7551
7552         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7553         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7554
7555 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7556
7557         * threadpool.c: fix leaks.
7558
7559 2003-07-01  Dick Porter  <dick@ximian.com>
7560
7561         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7562         using MonoGHashTables.  Fixes threadpool bug posted to list.
7563
7564 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7565
7566         * image.h, image.c: added support to load an assembly from a byte array.
7567         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7568         assembly bundle support.
7569
7570 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7571
7572         * threadpool.c (mono_thread_pool_add): keep a reference to the
7573         AsyncResult to prevent GC
7574
7575 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7576
7577         * class.c: leak fix.
7578
7579 2003-06-25  Dick Porter  <dick@ximian.com>
7580
7581         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7582         for the async object, the WaitHandle object will close the handle.
7583         Fixes bug 45321.
7584
7585 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7586
7587         * class.c: in mono_array_class_get (), lookup from the hash with the
7588         same type we insert: this works around a bug in
7589         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7590         lluis. The real fix will have to wait for after the release.
7591
7592 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7593
7594         * icall.c: fix memory leak when getting type members.
7595
7596 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7597
7598         * reflection.c: added more pubtoken special cases.
7599
7600 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7601
7602         * class.c: handle field offset correctly when class size
7603         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7604
7605 2003-06-20  Martin Baulig  <martin@ximian.com>
7606
7607         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7608         *image' field.
7609
7610 2003-06-20  Martin Baulig  <martin@ximian.com>
7611
7612         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7613
7614 2003-06-20  Martin Baulig  <martin@ximian.com>
7615
7616         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7617         just distinguish between variables in registers and variables at
7618         an offset relative to a register.
7619
7620 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7621
7622         * icall.c: #ifdef out latest changes until mcs is fixed.
7623
7624 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7625
7626         * icall.c: return members in metadata order.
7627
7628 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7629
7630         * icall.c: avoid infinite loop in GetTimeZoneData.
7631
7632 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7633
7634         * icall.c: added Marshal.Prelink/All icalls.
7635
7636 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7637
7638         * object.c, object.h: fix warnings and do some overflow checking
7639         when creating arrays.
7640
7641 2003-06-17  Dick Porter  <dick@ximian.com>
7642
7643         * file-io.h:
7644         * file-io.c: File attributes need to be tweaked slightly when
7645         passed from the managed to the w32 world.
7646
7647 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7648         * profiler.h profiler-private.h profiler.c: Rework last patch
7649         based on suggestion by Paolo.
7650         
7651 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7652
7653         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7654         instruction level coverage data collection.
7655         * profiler.h profiler.c (: Added new callback function which can be
7656         used by the profiler to limit which functions should have coverage
7657         instrumentation.
7658         * profiler.c (mono_profiler_load): Call g_module_build_path to
7659         generate the file name of the profiler library.
7660
7661 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7662
7663         * profiler.c, profiler.h, profiler-private.h: added basic block 
7664         coverage profiling API.
7665
7666 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7667
7668         * reflection.c (mono_reflection_create_runtime_class): Add support
7669         for events in dynamically generated code.
7670
7671         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7672         not allocated.
7673
7674 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7675
7676         * icall.c: when getting timezone info, return reasonable values if we
7677         can't get the actual data.
7678
7679 2003-06-14  Dick Porter  <dick@ximian.com>
7680
7681         * threads.c (start_wrapper): Remove the reference to the thread
7682         object in the TLS data, so the thread object can be finalized.
7683         This won't be reached if the thread threw an uncaught exception,
7684         so those thread handles will stay referenced :-( (This is due to
7685         missing support for scanning thread-specific data in the Boehm GC
7686         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7687
7688 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7689
7690         * reflection.c: ensure streams and tables are first allocated with
7691         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7692
7693 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7694
7695         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7696
7697 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7698
7699         * reflection.c (mono_reflection_create_runtime_class): Add support for
7700         properties to dynamically created classes.
7701         * reflection.c: Fix a few places where non-MonoObjects were inserted
7702         into the tokens hashtable.
7703
7704 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7705
7706         * object.c: some support to handle out of memory exceptions.
7707
7708 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7709
7710         * marshal.c (mono_marshal_get_native_wrapper): support reference
7711         return types
7712
7713 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7714
7715         * object.h, object.c: more portability stuff from Bernie Solomon.
7716         Unexport mono_object_allocate(). Added mono_object_unbox ().
7717         Set exitcode when an unhandled exception is thrown.
7718
7719 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7720
7721         * marshal.c (mono_marshal_get_native_wrapper): use custom
7722         marshaler for return types.
7723
7724 2003-06-10  Dick Porter  <dick@ximian.com>
7725
7726         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7727         ip_mreq is available
7728
7729 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7730
7731         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7732         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7733         by Bernie Solomon <bernard@ugsolutions.com>.
7734
7735 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7736
7737         * gc.c (mono_gc_init): Avoid error message on shutdown when
7738         GC_DONT_GC=1 is used.
7739
7740         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7741         New icall to return the GUID of a module.
7742
7743 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7744
7745         * class.c: ensure instance size always includes the parent's size
7746         even whem class size is set explicitly (fixes bug#44294).
7747
7748 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7749
7750         * profiler.h, profiler.c: made the simple profiler thread-safe,
7751         get more accurate timing info. Allow the loading of an
7752         externally-developed profiler module.
7753
7754 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7755
7756         * marshal.c (mono_marshal_get_native_wrapper): improved
7757         class/byref arguments.
7758         (mono_marshal_get_native_wrapper): better string marshaling support.
7759
7760 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7761
7762         * class.c: ensure .pack and .size are handled correctly and
7763         simplified layout of static fields.
7764
7765 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7766
7767         * appdomain.c
7768         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7769
7770         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7771         current directory (fix bug 44008)
7772
7773 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7774
7775         * marshal.c (mono_marshal_get_native_wrapper): started support for
7776         custom marshalers.
7777         (mono_delegate_to_ftnptr): consider marshalling specifications
7778
7779 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7780
7781         * reflection.c, reflection.h: emit custom marshal info.
7782
7783 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7784
7785         * object.c: free the GError.
7786         * icall.c: added CloseEvent_internal.
7787         * threads.[ch]:
7788         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7789         call.
7790
7791 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7792
7793         * loader.c (mono_method_get_signature): Add support for dynamic
7794         assemblies.
7795
7796 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7797
7798         * reflection.c: fixed bug #43905.
7799
7800 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7801
7802         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7803         handling TypedReference and ArgIterator.
7804         * loader.c, loader.h: added function to get signature at call site.
7805
7806 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7807
7808         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7809         data readonly. Buglets and warning fixes. Some MethodSpec support.
7810
7811 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7812
7813         * class.h, class.c, object.c: remove relative numbering support.
7814
7815 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7816
7817         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7818         free the string, until we get a chance to fix Gtk#
7819
7820 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7821
7822         * marshal.c: revert last patch.
7823
7824 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7825
7826         * icall.c: updates for new mono_class_vtable() not calling
7827         the type constructor anymore.
7828
7829 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7830
7831         * object.h, object.c: separate vtable creation from type
7832         initialization. Make running the .cctor thread safe.
7833
7834 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7835
7836         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7837
7838 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7839
7840         * loader.c (mono_get_method): consider calling convention
7841
7842 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7843
7844         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7845         to return the invisible global type for a module.
7846
7847         * reflection.c (mono_image_build_metadata): Emit global fields too.
7848
7849 2003-05-20  Peter Williams  <peterw@ximian.com>
7850
7851         * loader.c (mono_lookup_internal_call): Add a few newlines.
7852
7853 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7854
7855         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7856         literal strings.
7857
7858         * appdomain.c (set_domain_search_path): Recalculate search path when
7859         AppDomainSetup.PrivateBinPath changes.
7860
7861         * object.c (mono_class_compute_gc_descriptor): It turns out some
7862         parts of the class libs (like System.Thread) holds pointers to
7863         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7864         to treat native int a pointer type here.
7865         
7866 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7867
7868         * appdomain.h, domain.c: add hashtable for jump target resolution.
7869
7870 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7871
7872         * reflection.h reflection.c icall.c: Added new icalls 
7873         GetManifestResourceInfoInternal, GetModulesInternal and support
7874         infrastructure.
7875
7876 2003-05-16  Dick Porter  <dick@ximian.com>
7877
7878         * icall.c:
7879         * file-io.h:
7880         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7881
7882 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7883
7884         * object.c: mono_store_remote_field: little fix to previous patch.
7885
7886 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7887
7888         * class.c: add constructors to array classes.
7889         * icall.c: special case array construction for InternalInvoke (),
7890
7891 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7892
7893         * class.h class.c reflection.c object.c: Added support for field
7894         defaults in dynamically generated classes.
7895
7896 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7897
7898         * reflection.c: properly encode charset for ddlimport.
7899
7900 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7901
7902         * threads.c: allow compiling without GC.
7903
7904 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7905
7906         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7907         handling of thread static data.
7908
7909 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7910
7911         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7912
7913 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7914
7915         * class.c (mono_array_class_get): always set the serializable flags
7916         (mono_array_class_get): always set the SEALED attribute for array types
7917
7918 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7919
7920         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7921         attributes (fix for bug 42021).
7922
7923 2003-05-12  Dick Porter  <dick@ximian.com>
7924
7925         * gc.c: Don't run finalizers when the finalizer thread is
7926         finishing up, because the default domain has already been
7927         destroyed.
7928
7929 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7930
7931         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7932         value is null, we should throw an exception.   This is slightly
7933         different than the other conventions used for the constructor.
7934
7935 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7936
7937         * socket-io.c: fixed windows build.
7938
7939 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7940
7941         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7942
7943 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7944
7945         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7946         compilers.
7947
7948 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7949
7950         * class.c (mono_class_layout_fields): Add experimental GC aware
7951         auto layout facility. Requires class library changes to work correctly.
7952
7953         (mono_class_setup_vtable): Avoid overriding explicit interface
7954         method implementations. Fixes iface3.exe test.
7955
7956         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7957         object reference.
7958         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7959         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7960
7961         * metadata.h: Add new type classification macro which determines
7962         whenever the type holds an object reference.
7963
7964 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7965
7966         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7967
7968 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7969
7970         * gc.c (finalizer_thread): Work around a GC bug.
7971
7972 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7973
7974         * marshal.c (emit_struct_conv): allow unions
7975
7976         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7977
7978 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7979
7980         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7981
7982 2003-05-06  Martin Baulig  <martin@ximian.com>
7983
7984         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7985
7986 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7987
7988         * socket-io.c:
7989         (Select_internal): allow NULLs, don't create arrays if not needed.
7990         Coupled with Socket.cs changes.
7991
7992         * threadpool.c:
7993         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7994         register a finalizer for it that will close the semaphore handle. This
7995         fixes the leak and make Lupus' test run with > 4080 loops.
7996
7997 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7998
7999         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
8000         Jerome Laban (bug #42287)
8001
8002 2003-05-02  Martin Baulig  <martin@ximian.com>
8003
8004         * debug-mono-symfile.h
8005         (MonoSymbolFile): Moved declaration into mono-debug.h.
8006         (MonoDebugMethodJitInfo): Likewise.
8007         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
8008         argument.
8009         (_mono_debug_address_from_il_offset): Take a
8010         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
8011
8012         * mono-debug.h
8013         (MonoDebugDomainData): New struct.
8014         (mono_debug_get_domain_data): New function.
8015         (mono_debug_add_method): Take an additional `MonoDomain *'
8016         argument.
8017         (mono_debug_source_location_from_address): Likewise.
8018         (mono_debug_il_offset_from_address): Likewise.
8019         (mono_debug_address_from_il_offset): Likewise.
8020
8021 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
8022
8023         * reflection.c: one more check for null type in custom attrs.
8024
8025 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8026
8027         * reflection.c: avoid warning (comparison is always false due to limited
8028         range of data type).
8029
8030 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8031
8032         * icall.c: throw an exception in Type.GetField if the argument 'name'
8033         is NULL.
8034
8035 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
8036
8037         * reflection.c: fixed handling of enums in named arguments to custom
8038         attributes (bug #42123).
8039
8040 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
8041
8042         * reflection.c: use the right array element type and handle
8043         a null for a Type argument, too.
8044
8045 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
8046
8047         * reflection.c: handle arrays as arguments to custom attributes.
8048
8049 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
8050
8051         * reflection.c: handle a string value in a custom attr
8052         ctor that takes an object.
8053
8054 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
8055
8056         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
8057         (fix bug #42063)
8058
8059 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
8060
8061         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
8062
8063 2003-04-27  Martin Baulig  <martin@ximian.com>
8064
8065         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
8066         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
8067         MONO_DEBUGGER_EVENT_BREAKPOINT.
8068         (mono_breakpoint_trampoline_code): Removed.
8069         (mono_debugger_event_handler): The last argument is now a
8070         `guint32'.
8071         (mono_debugger_insert_breakpoint_full): Removed the
8072         `use_trampoline' argument.
8073         (mono_debugger_method_has_breakpoint): Likewise.
8074         (mono_debugger_trampoline_breakpoint_callback): Renamed to
8075         mono_debugger_breakpoint_callback(); take the method and
8076         breakpoint number as arguments.
8077
8078 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
8079
8080         * metadata.c: fix off by one when loading parameters attributes.
8081
8082 2003-04-24  Martin Baulig  <martin@ximian.com>
8083
8084         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
8085
8086 2003-04-24  Martin Baulig  <martin@ximian.com>
8087
8088         * mono-debug-debugger.c: Moved all code which interacts with the
8089         Mono Debugger here.
8090
8091         * debug-mono-symfile.c: This code now just deals with the symbol
8092         file itself, the debugger code is now in mono-debug-debugger.c.
8093
8094 2003-04-23  Martin Baulig  <martin@ximian.com>
8095
8096         * mono-debug.c (mono_debug_source_location_from_il_offset):
8097         New method; like mono_debug_source_location_from_address(), but
8098         takes an IL offset instead of a machine address.
8099
8100 2003-04-23  Martin Baulig  <martin@ximian.com>
8101
8102         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
8103         `line' field; this is now computed by the debugger.
8104
8105 2003-04-23  Martin Baulig  <martin@ximian.com>
8106
8107         * mono-debug.[ch]: New files.  This is the new debugging interface.
8108
8109         * mono-debug-debugger.[ch]: New files.  Moved all code which
8110         interacts with the Mono Debugger here.
8111
8112 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
8113
8114         * domain.c (mono_init): initialize mono_defaults.monitor_class
8115
8116 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
8117
8118         * reflection.c (method_encode_code): Add a spicy exception to help
8119         future compiler authors.
8120
8121 2003-04-21  Martin Baulig  <martin@ximian.com>
8122
8123         * icall.c
8124         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8125         Make this work with relative pathnames; g_filename_to_uri() needs
8126         an absolute filename.
8127
8128 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
8129
8130         * icall.c: Track name changes in Object and ValueType.
8131
8132 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
8133
8134         * metadata.c (mono_type_stack_size): size should be a multiple of
8135         sizeof (gpointer)
8136
8137 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8138
8139         * gc.c:
8140         (internal_domain_finalize): moved into mono_domain_finalize. No need
8141         to create another thread because the finalizers will be run in the
8142         finalizer thread.
8143         
8144         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
8145         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
8146         to be run (MS does this too).
8147
8148 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
8149
8150         * object.c (mono_class_compute_gc_descriptor): Update comment.
8151
8152         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
8153
8154         * image.h: Add synchronized wrapper cache.
8155
8156         * image.c (do_mono_image_open): Initialize cache.
8157
8158         * reflection.c (create_dynamic_mono_image): Initialize cache.
8159
8160 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8161
8162         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
8163         ves_icall_System_Buffer_ByteLengthInternal.
8164
8165 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
8166
8167         * reflection.c: setup klass->nested_in earlier. Allow
8168         a dash in the assembly name.
8169
8170 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
8171
8172         * metadata.c (mono_type_to_unmanaged): dont access
8173         type->data.klass for MONO_TYPE_OBJECT
8174         (mono_type_to_unmanaged): consider System.Delegate class
8175
8176 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
8177
8178         * class.c: just setup supertypes in the proper place instead of
8179         initializing the full element class for arrays.
8180
8181 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
8182
8183         * class.c: ensure the element class of arrays is initialized.
8184         Setup the supertype info for array classes, too.
8185
8186 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
8187
8188         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
8189
8190 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8191
8192         * Makefile.am: re-added -m option when running cygpath. This way,
8193         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
8194         separator.
8195         * mono-config.c: same codepath for locating mono config file for WIN32
8196         and the rest.
8197         * assembly.c: if mono_assembly_setrootdir is called, don't override
8198         the value set.
8199
8200 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8201
8202         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8203         MONO_ASSEMBLIES variable.
8204
8205 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8206
8207         * icall.c: added Assembly::GetNamespaces() icall.
8208
8209 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8210
8211         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8212
8213 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
8214
8215         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8216         * object.c: fixed bug in the construction of vtable for proxies
8217
8218 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8219
8220         * object.c (mono_array_new): Mark mono_array_new as an icall.
8221
8222 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8223
8224         * class.c: fixed test for public method when overriding interfaces.
8225         Closes bug #40970.
8226
8227 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8228
8229         * appdomain.h, domain.c: added mono_domain_foreach() to
8230         be able to access the currently loaded appdomains.
8231         * object.c: make string interning work across sppdomains.
8232         Mark some functions for use as icalls.
8233
8234 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8235
8236         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8237
8238         * reflection.h reflection.c: Allocate long living data using 
8239         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8240
8241         * reflection.c: Double the allocation size in streams instead of
8242         increasing it, to prevent unneccesary copying on large assemblies.
8243         
8244         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8245         creation if the assembly does not have the Run flag set.
8246
8247 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8248
8249         * class.h: avoid the C++ keywords in header files (Jerome Laban
8250         spotted and fixed this).
8251
8252 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8253
8254         * object.c:
8255         (mono_unhandled_exception): fill in the arguments for the
8256         UnhandledException event. Only trigger that event for the default
8257         domain (as MS does).
8258
8259 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8260
8261         * object.c: Improve typed allocation stuff based on suggestions from
8262         Paolo. Also turn it on if the GC library supports it.
8263
8264 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8265
8266         * object.c object.h class.h: Added experimental typed allocation
8267         facility using the interfaces in gc_gcj.h.
8268
8269         * os/gc_wrapper.h: Added new include files.
8270         
8271 2003-04-03  Martin Baulig  <martin@ximian.com>
8272
8273         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8274         which is not yet enabled by default.
8275
8276         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8277         functions.
8278         (mono_gc_lock, mono_gc_unlock): New static functions.
8279
8280         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8281         functions; stop/start the world for the garbage collector.  This
8282         is using the windows API; we need to complete the SuspendThread()/
8283         ResumeThread() implementation in the io-layer to make this work on Unix.
8284         (mono_gc_push_all_stacks): New public function; tells the garbage
8285         collector about the stack pointers from all managed threads.
8286
8287 2003-04-03  Martin Baulig  <martin@ximian.com>
8288
8289         * object.h (MonoThread): Added `gpointer stack_ptr'.
8290
8291         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8292
8293 2003-04-03  Martin Baulig  <martin@ximian.com>
8294
8295         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8296
8297 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8298
8299         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8300         field.last.
8301
8302 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8303
8304         * loader.c (mono_lookup_internal_call): Report the corlib that is
8305         out of sync.
8306
8307 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8308
8309         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8310         System.DBNull (it's class not valuetype).
8311
8312 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8313
8314         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8315         if the array method was already assigned a token (fixes bug#40646).
8316
8317 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8318
8319         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8320         if no assembly is given.
8321
8322 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8323
8324         * metadata.h: Added the new tables.
8325
8326         * row-indexes.h: Added definitions for new tables.
8327
8328         * metadata.c: Add schemas for new tables, and add support for
8329         computing the sizes of them.
8330
8331         * class.c: Update for handling the new type cases.
8332
8333 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8334
8335         * metadata.h (MONO_TYPE_IS_VOID): new macro
8336
8337 2003-03-31  Martin Baulig  <martin@ximian.com>
8338
8339         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8340
8341         * threads.c (mono_thread_new_init): Call `thread_created' in the
8342         mono_thread_callbacks.
8343
8344 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8345
8346         * loader.h: added marshalbyrefobject_class to mono_defaults
8347         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8348         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8349           generation of output parameters.
8350           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8351         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8352           contextbound and the target object belongs to the context of the caller.
8353         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8354         * object.c: Implemented support for interfaces and abstract classes
8355           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8356           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8357
8358 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8359
8360         * class.h class.c (mono_class_is_subclass_of): New function.
8361         
8362         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8363         routines for most common case (calls from ArrayList::ToArray).
8364
8365         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8366         routine so programs which call Environment::Exit() can be profiled.
8367
8368         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8369         Added MONO_ARCH_SAVE_REGS.
8370
8371         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8372
8373 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8374
8375         * blob.h: Add a couple of new MonoType types definitions.
8376
8377         * tabledefs.h: Add a couple of new call convs.
8378
8379 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8380
8381         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8382         the layout of the class.
8383
8384         * reflection.c (alloc_table): double the size on overflow to avoid
8385         unnecessary copying.
8386
8387         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8388         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8389         null so it can be garbage collected.
8390         
8391 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8392
8393         * reflection.c (mono_reflection_get_type): Return the resolved type
8394         only if it is in the assembly we searched.
8395
8396         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8397
8398         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8399         method.
8400
8401 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8402
8403         * appdomain.c:
8404         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8405         the right one is 'file:///blah', but MS allows it.
8406         * assembly.c:
8407         (mono_assembly_open): allow 'file://blah'
8408
8409         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8410
8411 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8412
8413         * socket-io.c: fixes bug #40310.
8414
8415 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8416
8417         * reflection.c (mono_reflection_parse_type): handle deeply nested
8418         types correctly.
8419
8420         * reflection.c (mono_image_create_token): Use unique token values
8421         since they will be put into a hash table.
8422
8423         * class.c (mono_class_setup_vtable): If a method occurs in more than
8424         one place in the vtable, and it gets overriden, then change the
8425         other occurances too.
8426
8427         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8428         object as return type.
8429
8430 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8431
8432         * icall.c: Deleted "ToString" implementation for double and float
8433         because they are full implemented in managed code.
8434
8435 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8436
8437         * reflection.c, reflection.h: implemented and exported functions
8438         to retrieve info about custom attributes.
8439
8440 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8441
8442         * appdomain.c: moved Uri handling to assembly.c
8443         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8444         work when using a file Uri in *nix and windows.
8445
8446         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8447         GetReferencedAssemblies.
8448
8449 2003-03-18  Dick Porter  <dick@ximian.com>
8450
8451         * icall.c: Rename a couple of internal calls
8452
8453         * threads.c: Set the thread state to Stopped when a thread exits.
8454         Fixes bug 39377.
8455
8456 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8457
8458         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8459         New icall.
8460
8461         * object.c (mono_class_vtable): fix warning.
8462
8463 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8464
8465         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8466
8467         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8468         memory.
8469         (method_encode_clauses): Create exception info structures in the right
8470         order.
8471         (mono_reflection_setup_internal_class): Initialize supertypes field.
8472
8473         * class.c object.c: Handle interfaces which implement other interfaces 
8474         correctly.
8475
8476         * class.h class.c: Move the supertypes array initialization code into 
8477         a separate function so it can be used for dynamic types too. Also call
8478         it earlier, in mono_class_init(), since it can be used before the
8479         type is initialized.
8480
8481 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8482
8483         * Makefile.am:
8484         * assembly.c:
8485         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8486
8487         * appdomain.c:
8488         * appdomain.h:
8489         * marshal.c:
8490         * object.c: remove warnings.
8491
8492 2003-03-13  Martin Baulig  <martin@ximian.com>
8493
8494         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8495         (MonoDebugLexicalBlockEntry): New types.
8496
8497         * debug-mono-symfile.c
8498         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8499
8500 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8501
8502         * process.c: ret can be any non-zero value accroding to MS doc.
8503
8504 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8505
8506         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8507         fixing a warning for a miss-used prototype, would have cause
8508         random memory corruption.
8509
8510 2003-03-07  Martin Baulig  <martin@ximian.com>
8511
8512         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8513         getting really annoying ....
8514
8515 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8516
8517         * reflection.c (fixup_method): added support for array methods.
8518
8519 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8520
8521         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8522         (pointed out by Michael Adams).
8523
8524 2003-03-04  Dick Porter  <dick@ximian.com>
8525
8526         * icall.c: Temporarily reverted the Double and Single ToString()
8527         change, because it broke nunit.
8528
8529 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8530
8531         * object.h, threads.h: make include files compatible with C++
8532         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8533
8534 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8535
8536         * icall.c: Erased ToString helper functions for Double and Single.
8537         Now, that implementations ar all in managed code (Double and Single
8538         Formatters).
8539
8540 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8541
8542         * appdomain.c: Added method for initializing the default context of
8543         a domain. Added internal call for getting the default context.
8544         * appdomain.h: Added context variable in MonoDomain struct.
8545         * domain.c: mono_domain_set also sets the default context of the domain
8546         * icall.c: Mapped internal method InternalGetDefaultContext.
8547         * object.c: mono_object_get_virtual_method returns always a remoting
8548         wrapper if the object is a transparent proxy.
8549         mono_runtime_invoke_array: when creating an object by calling the
8550         constructor, if the created object is a proxy, then the constructor should
8551         be called using the a remoting wrapper.
8552
8553 2003-03-03  Dick Porter  <dick@ximian.com>
8554
8555         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8556         variable so it compiles on solaris.  Problem spotted by
8557         Christopher Taylor <ct@cs.clemson.edu>
8558
8559 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8560
8561         * appdomain.c:
8562         (get_info_from_assembly_name): don't leak value.
8563
8564         * icall.c:
8565         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8566         result.
8567
8568 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8569
8570         * assembly.c: export mono_image_load_references ().
8571         * class.c: handle function pointers. mono_class_from_name() now
8572         supports nested type names directly.
8573
8574 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8575
8576         * reflection.h reflection.c: Encode already created dynamic methods 
8577         and fields correctly as a DEF instead of a REF.
8578
8579         * reflection.c: Get rid of the force_ref argument to 
8580         mono_image_typedef_or_ref since it was wrong in the first place.
8581
8582         * string-icalls.c: add error checking to string constructors according
8583         to the MSDN docs.
8584
8585         * reflection.c: Emit types in the order their TypeBuilders were 
8586         created. Previously, a new table index was assigned to each type before
8587         the tables were emitted. This was wrong because the signature blob
8588         might already refer to a type by its original table index.
8589
8590 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8591
8592         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8593         change.
8594         
8595 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8596
8597         * Makefile.am: make assemblies dir have \ instead of / on windows.
8598
8599 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8600
8601         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8602         iterate over the NESTEDCLASS table using a linear search since the
8603         table is not guaranteed to be sorted by the secondary key.
8604
8605         * class.c (mono_class_create_from_typedef): fixed up call to
8606         mono_metadata_nesting_typedef.
8607         
8608 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8609
8610         * marshal.c (mono_string_to_byvalstr): clear the memory as
8611         suggested by Jerome Laban <jlaban@wanadoo.fr>
8612
8613 2003-02-26  Dick Porter  <dick@ximian.com>
8614
8615         * process.c: Cope with padding in .rsrc blocks
8616
8617 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8618
8619         * metadata.h: reverted the filter_len change, it breaks reflection
8620         
8621 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8622
8623         * metadata.h: added a new field to store the filter_len
8624         
8625
8626 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8627
8628         * reflection.c: handle custom attributes for types and members
8629         created with Reflection.Emit (bug#38422).
8630
8631 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8632
8633         * reflection.c: define RTSpecialName automatically for constructors for
8634         compatibility with MS.NET.
8635
8636         * reflection.c (mono_reflection_create_runtime_class): initialize
8637         nested_in field of dynamically created classes.
8638
8639 2003-02-22  Martin Baulig  <martin@ximian.com>
8640
8641         * debug-mono-symfile.h: Incremented version number.
8642
8643 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8644
8645         * object.h icall.c process.c: fix warnings.
8646
8647 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8648
8649         * appdomain.h appdomain.c:
8650         (mono_domain_try_type_resolve): split the 
8651         name_or_tb argument into a name and a tb argument.
8652         (mono_domain_has_type_resolve): new function to check whenever the
8653         application has registered a TypeResolve event handler.
8654         
8655         * icall.c reflection.h reflection.c: move the type resolve logic into
8656         mono_reflection_get_type () so it will be invoked when 
8657         Assembly::GetType () is called.
8658
8659         * reflection.c:
8660         (mono_reflection_get_type): renamed to get_type_internal.
8661         (mono_reflection_get_type): fixed type name generation so it works 
8662         for nested types too.
8663         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8664         costly type name generation if there is no resolve event handler.
8665
8666 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8667
8668         * class.c, image.c: load exported types from file references.
8669
8670 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8671
8672         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8673           used to cache the managed methods used to create proxies and make 
8674           remote invocation of methods.
8675         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8676           to be remotely created.
8677         * object.c: Modified the method mono_class_vtable(). It now initializes 
8678           the remote flag of the vtable. Modified mono_object_new_specific(), 
8679           so now it checks the remote flag.
8680         * icall.c: Added a couple of internal methods, one for enabling instance 
8681           creation interception for a type, and one for creating objects bypassing
8682           the remote check.
8683
8684 2003-02-18  Martin Baulig  <martin@ximian.com>
8685
8686         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8687         New interncall to get a method's metadata token.
8688
8689         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8690         New interncall for the debugger.
8691
8692 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8693
8694         * class.c (mono_class_setup_vtable): allocate supertype array
8695
8696 2003-02-18  Martin Baulig  <martin@ximian.com>
8697
8698         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8699
8700 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8701
8702         * reflection.c:
8703         (assembly_name_to_aname): jump over unknown properties (i've found
8704         something like: 'type, assembly, version=xxx, custom=null, public...',
8705         so now will ignore custom=null and still get the rest of the values).
8706
8707 2003-02-17  Dick Porter  <dick@ximian.com>
8708
8709         * threads.c: Have Thread.Start() wait for a semaphore to signal
8710         that the thread has set up all its local data.  This fixes bug
8711         34323, where Abort() raced the new thread's TLS data.
8712
8713         Also removes the handle_store() call from start_wrapper, because
8714         threads are now always created suspended and there is no longer a
8715         race between the parent and child threads to store the info.
8716
8717 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8718
8719         * image.c: explain the #- heap issue in a message, hopefully
8720         avoiding FAQs on mono-list.
8721
8722 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8723
8724         * icall.c:
8725         (GetEntryAssembly): if the domain has not invoked
8726         AppDomain.ExecuteAssembly yet, return the assembly of the default
8727         AppDomain.
8728
8729 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8730
8731         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8732
8733 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8734
8735         * metadata.c, reflection.c: simple speedup to type hash
8736         and equals code.
8737
8738 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8739
8740         * image.c, image.h, class.c, assembly.c: move module loading
8741         to MonoImage. When loading metadata, consider alignemnet from
8742         the start of metadata, not from the metadata address in memory.
8743
8744 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8745
8746         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8747         AssemblyBuilder objects. Factored out custom attribute creation into
8748         a separate function.
8749         (create_custom_attr): new function to create custom attributes.
8750
8751 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8752
8753         * Makefile.am: Got tired of typing the full pathname to pedump.
8754         Until there is another option, am installing this.
8755
8756 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8757
8758         * class.c (class_compute_field_layout): always set field->parent 
8759         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8760
8761 2003-02-11  Dick Porter  <dick@ximian.com>
8762
8763         * threads-types.h:
8764         * monitor.c: Rewrote Monitor, making lock much faster and
8765         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8766         creates them as needed.
8767
8768         * exception.c: Added SynchronizationLockException
8769
8770         * threads.c: Deleted old Monitor implementation.  The new one is
8771         in a new file.
8772
8773 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8774
8775         * class.c: handled TypedReference type code. Set the correct size for
8776         class data. Setup interface_offsets for interface classes, too.
8777
8778 2003-02-09  Martin Baulig  <martin@ximian.com>
8779
8780         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8781
8782 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8783
8784         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8785         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8786         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8787         * verify.c: check for code that runs after the end of the method.
8788
8789 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8790
8791         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8792         "System.Math::Round2".
8793         * sysmath.h: Added Floor, Round and Round2 definitions.
8794         * sysmath.c: Modified certain functions that were not 100% compliant
8795         with MS.NET (math precision) and added the implementation of Floor,
8796         Round and Round2.
8797
8798 2003-02-07  Martin Baulig  <martin@ximian.com>
8799
8800         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8801
8802 2003-02-07  Martin Baulig  <martin@ximian.com>
8803
8804         * debug-mono-symfile.c: Reflected latest symwriter changes.
8805         (mono_debug_create_mono_symbol_file): Removed.
8806         (mono_debug_open_mono_symbol_file): Take an argument which
8807         specifies whether to create a dynamic symbol file.
8808
8809 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8810
8811         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8812
8813 2003-02-05  Martin Baulig  <martin@ximian.com>
8814
8815         * reflection.c (mono_image_build_metadata): Make this public,
8816         protect it against being called multiple times, don't create
8817         resources and don't build the compressed metadata here.
8818         (mono_image_create_pefile): Do this here.
8819
8820         * icall.c
8821         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8822
8823 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8824
8825         * socket-io.c: fixed bug #36322.
8826
8827 2003-02-06  Piers Haken <piersh@friskit.com>
8828
8829         * appdomain.[ch]:
8830         * class.h:
8831         * debug-mono-symfile.c:
8832         * icall.c:
8833         * loader.c:
8834         * mono-config.c:
8835         * monosn.c:
8836         * reflection.c:
8837         * socket-io.c: warning cleanups
8838
8839 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8840
8841         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8842         function. works like remoting invoke, but does a check for the Proxy first.
8843
8844 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8845
8846         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8847
8848 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8849
8850         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8851         array of pointers.
8852         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8853         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8854
8855         * object.c (mono_store_remote_field_new): used by the new jit
8856         instead of mono_store_remote_field
8857         (mono_load_remote_field_new): used by the new jit
8858         instead of mono_load_remote_field
8859
8860 2003-02-05  Patrik Torstensson
8861
8862         * appdomain.c: changed unload to take the domain id instead
8863         of domain
8864         
8865         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8866
8867
8868 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8869
8870         * appdomain.c: don't look for assemblies in ApplicationBase if
8871         PrivateBinPathProbe is set.
8872
8873 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8874
8875         * object.c: make the first argument in main_args contain the absolute
8876         path to the assembly. Fixes bug #37511.
8877
8878 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8879
8880         * icall.c: get correct UTC offset for countries not using daylight
8881         time saving. Fixes bug #30030.
8882
8883 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8884
8885         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8886         and 1 are the family).
8887
8888 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8889
8890         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8891
8892         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8893
8894 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8895
8896         * reflection.c: added support for SignatureHelper tokens, which is
8897         needed by the Calli opcode.
8898
8899         * reflection.h: track changes to SignatureHelper class.
8900
8901         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8902
8903 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8904
8905         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8906
8907 2003-02-03  Patrik Torstensson
8908         * appdomain.[c|h], domain.c : 
8909          - Added support for getting a domain via domain id
8910          - Support for setting and getting domain from System.AppDomain 
8911            (used in cross appdomain channel)
8912          - Added support for get/set for a MonoAppContext on a thread 
8913            (Context class in System.Runtime.Remoting.Contexts),
8914          - Removed hack in Get/SetData and ExecuteAssembly.
8915         
8916         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8917         the managed world to get control when a proxy is created.
8918
8919         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8920         
8921 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8922
8923         * icall.c
8924         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8925         Populate the codebase field as well.
8926
8927 2003-02-02  Martin Baulig  <martin@ximian.com>
8928
8929         * debug-mono-symfile.c
8930         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8931         (mono_debug_symfile_add_method): Allow interncalls.
8932
8933 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8934
8935         * icall.c: throw parse exception if strtod fails or the string is empty.
8936
8937 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8938
8939         * marshal.c: handle object type separately from defined
8940         class types.
8941
8942 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8943
8944         * marshal.c: handle NATIVE_LPSTR for strings when it's
8945         explicitly specified.
8946
8947 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8948
8949         * reflection.c, reflection.h, icall.c: setup the reflection
8950         handle cache for ModuleBuilders and AssemblyBuilders.
8951
8952 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8953
8954         * reflection.c (reflection_methodbuilder_to_mono_method): set
8955         pinvoke flag
8956
8957 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8958
8959         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8960
8961 2003-01-29  Dick Porter  <dick@ximian.com>
8962
8963         * threads.c: No need for the fake_thread kludge now that Thread
8964         doesn't run a class constructor
8965         
8966 2003-01-29  Dick Porter  <dick@ximian.com>
8967
8968         * threads.c: Use g_direct_hash instead of the rather bogus
8969         g_int_hash
8970
8971 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8972
8973         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8974         (fix pinvoke12.exe)
8975         (mono_marshal_get_struct_to_ptr): generate valid IL code
8976         (mono_marshal_get_ptr_to_struct): generate valid IL code
8977         (*): correctly set sig->pinvoke, we need to memdup the signature
8978         to do that
8979
8980 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8981
8982         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8983         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8984
8985 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8986
8987         * profiler.c: provide more callers information.
8988
8989 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8990
8991         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8992
8993         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8994
8995         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8996
8997 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8998
8999         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
9000         exception instead of going into an infinite loop on dates which it 
9001         can't yet handle.
9002
9003         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
9004         out-of-range exception if needed.
9005
9006         * class.c (mono_class_setup_vtable): allow a virtual method to provide
9007         an implementation for an interface method and to override an inherited
9008         method at the same time. 
9009         Imagine a scenario when a virtual method is used to override a
9010         virtual abstract method in a parent class, and this same method 
9011         provides an implementation for an method inherited from an interface. 
9012         In this case, the interface resolution code will set im->slot, which 
9013         means that the virtual method override pass will skip this method 
9014         which means a pointer to the abstract method inherited from the parent
9015         will remain in the vtable of this non-abstract class.
9016
9017         * class.c: (mono_class_setup_vtable): continue search for a real 
9018         method if only an abstract method is found.     
9019
9020 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
9021
9022         * reflection.c: add size to encoding for ByValStr and ByValArray
9023         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
9024
9025 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9026
9027         * class.c (mono_class_setup_vtable): pass the override info as an
9028         argument.
9029
9030         * class.c (mono_class_setup_vtable): set the slot of overriding methods
9031         correctly.
9032         
9033         * reflection.c (ensure_runtime_vtable); add support for method 
9034         overrides.
9035         
9036 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9037
9038         * reflection.c (resolution_scope_from_image): Hack to work to work with
9039         dynamic assemblies.
9040
9041         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
9042         added a 'force_ref' argument to force this function to allways return 
9043         a TypeRef. This is needed by mono_image_get_memberref_token ().
9044         
9045 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9046
9047         * reflection.c (mono_image_get_type_info): interfaces really don't have
9048         a parent.
9049
9050         * reflection.c (mono_image_basic_init): fill out missing fields of
9051         image structure.
9052
9053         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
9054         dynamic assemblies. This is required so dynamic assemblies show up in
9055         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
9056         Type::GetType() etc. This is consistent with MS behaviour.
9057
9058         * image.c image.h reflection.c: add newly created classes to the name 
9059         cache so mono_class_get () will find them.      
9060
9061 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9062
9063         First part of changes to get IKVM.NET running under mono.
9064         
9065         * appdomain.h, appdomain.c: added new function 
9066         mono_domain_try_type_resolve() which will emit TypeResolve events. 
9067         This function will call AppDomain::DoTypeResolve to do the actual work.
9068
9069         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
9070         moved existing code dealing with dynamic tokens to a new function 
9071         called mono_reflection_lookup_dynamic_token (). This function will 
9072         raise TypeResolve events when appropriate. Since reflection.c is not 
9073         part of libmetadata, a new hook function called 
9074         mono_lookup_dynamic_token() is added to class.c which will call this.
9075
9076         * assembly.h assembly.c: make the invoke_load_hook function public,
9077         so it can be called for dynamic assemblies.
9078
9079         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
9080
9081         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
9082         type isn't found.
9083
9084         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
9085         MonoGHashTable, since it contains pointers to objects which the GC 
9086         needs to track.
9087
9088         * assembly.c (search_loaded): remove unused variable.
9089         
9090 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
9091
9092         * object.c: fixed issue exposed by gcc-generated IL programs
9093         that use RVA data for pointers.
9094
9095 2003-01-25  Martin Baulig  <martin@ximian.com>
9096
9097         * threads.c (start_wrapper): Moved the initialization of
9098         `start_func' above the mono_new_thread_init() call to which we
9099         pass it as argument.
9100
9101 2003-01-24  Martin Baulig  <martin@ximian.com>
9102
9103         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
9104         the MonoThread pointer.
9105
9106 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
9107
9108         * icall.c: Rename `PowImpl' to Pow.
9109
9110 2003-01-23  Dick Porter  <dick@ximian.com>
9111
9112         * threads.c (start_wrapper): Create a Thread object if needed, so
9113         the Main() thread can do the class initialisation in a subthread
9114         that has been set up to allow managed code execution.
9115
9116         Pass the thread ID instead of the MonoThread pointer to the thread
9117         start and attach callbacks.  This change is required, because the
9118         jit thread start callback must be called _before_ the Thread
9119         object can be created.
9120         
9121         (mono_thread_init): Removed much object creation code that is no
9122         longer needed.  No managed code is called from here now.
9123
9124         * object.c (mono_runtime_exec_managed_code): Create a subthread
9125         for Main, and call back to the runtime to use it.
9126         Set the exit code when Main exits.
9127
9128         * gc.c: Make sure domain finalisation happens in a subthread.
9129         Re-enable threaded GC, fixing bug 31333 (again).
9130
9131         * environment.c: System.Environment internall calls (so far just
9132         ExitCode is here, the others are still in icall.c)
9133
9134         * appdomain.c (mono_runtime_cleanup): All threads running managed
9135         code should have finished before mono_runtime_cleanup() is
9136         reached, so no need to clean up threads.
9137
9138 2003-01-22  Martin Baulig  <martin@ximian.com>
9139
9140         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
9141         `gpointer func' arguments.      
9142         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
9143         but added `MonoThread *thread' argument.
9144         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
9145
9146         * threads.c (mono_new_thread_init): Added `gpointer func' argument
9147         and pass it to the mono_thread_start_cb callback.
9148         (mono_install_thread_callbacks): New public function to install a
9149         set of callbacks which are set by the debugger.
9150         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
9151
9152 2003-01-22  Martin Baulig  <martin@ximian.com>
9153
9154         * Makefile.am: Install debug-mono-symfile.h.
9155
9156 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
9157
9158         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
9159
9160 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
9161
9162         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
9163         * class.c (mono_ptr_class_get): correctly set access levels of pointers
9164         (mono_array_class_get): correctly set access levels of arrays
9165
9166 2003-01-20      Patrik Torstensson
9167         * image.h (MonoAssemblyName): changed major, minor, build, revision
9168         from signed to unsigned.
9169
9170 2003-01-20  sean kasun <skasun@azstarnet.com>
9171
9172         * reflection.c (load_cattr_value): Now this handles
9173         MONO_TYPE_SZARRAY.  Fixes bug #35629
9174
9175 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
9176
9177         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
9178         integer value
9179
9180 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9181
9182         * decimal.c: fixed bug #26056.
9183
9184 2003-01-17  Martin Baulig  <martin@ximian.com>
9185
9186         * gc.c: Raise an ExecutionEngineException instead of using g_error().
9187
9188 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9189
9190         * exception.[ch]:
9191         (mono_get_exception_type_initialization): new function.
9192
9193         * object.c: throw a TypeInitializationException when an exception is
9194         thrown invoking the class constructor.
9195
9196 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9197
9198         * reflection.c: fixed attribute reading.
9199
9200 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9201
9202         * icall.c:
9203         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9204         provided, look for the type in the calling assembly and then in
9205         mscorlib; if the assembly name is provided, only try that one.
9206
9207 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9208
9209         * object.c: register the vtable before there is a chance it's
9210         queried again recursively.
9211
9212 2003-01-13  Duncan Mak  <duncan@ximian.com>
9213
9214         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9215         gc-internal.h. 
9216         
9217 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9218
9219         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9220
9221 2003-01-11  Martin Baulig  <martin@ximian.com>
9222
9223         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9224         this to 20 for the release.
9225
9226 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9227
9228         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9229
9230         * loader.c (mono_method_get_marshal_info): bug fix
9231
9232         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9233         structures with explicit layout
9234
9235 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9236
9237         * profiler.c: made the output more readable (and sorted). 
9238         Added caller information for the allocation profiler.
9239
9240 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9241
9242         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9243
9244 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9245
9246         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9247         to get value types.
9248         
9249 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9250
9251         * object.c, profiler.h, profiler.c, profiler-private.h:
9252         Added object allocation profiler.
9253
9254 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9255
9256         * reflection.h, reflection.c: handle global methods.
9257         Compress blob entries.
9258
9259 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9260
9261         * marshal.c: fix compilation.
9262
9263 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9264
9265         * loader.c (mono_method_get_marshal_info): impl.
9266
9267         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9268
9269 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9270
9271         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9272         for reference types.
9273
9274 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9275
9276         * loader.c: fixed off by one error in loaded parameter names.
9277
9278 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9279
9280         * marshal.c (mono_marshal_get_icall_wrapper): like
9281         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9282         instead of a MonoMethod.
9283
9284 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9285
9286         * decimal.c: fixed bug #36537.
9287
9288 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9289
9290         * marshal.c: throw a missing method exception if a
9291         P/Invoke method is not found.
9292
9293 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9294
9295         * icall.c: allow a null this for constructors.
9296
9297 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9298
9299         * icall.c: raise the proper exceptions if the arguments to the
9300         internal Invoke are incorrect.
9301
9302 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9303
9304         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9305
9306 2003-01-03  Martin Baulig  <martin@ximian.com>
9307
9308         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9309
9310 2002-12-31  Martin Baulig  <martin@ximian.com>
9311
9312         * debug-mono-symfile.c: Completely rewrote the type section.
9313         Instead of using individual malloc()ed fields, we use one big
9314         continuous memory area and offsets into this area.
9315         See the comments in the source code for details.
9316
9317 2002-12-30  Martin Baulig  <martin@ximian.com>
9318
9319         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9320
9321 2002-12-30  Martin Baulig  <martin@ximian.com>
9322
9323         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9324         line number table in this data blob instead of using an external
9325         pointer.
9326
9327 2002-12-28  Martin Baulig  <martin@ximian.com>
9328
9329         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9330
9331 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9332
9333         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9334         as a boxed return type.
9335
9336 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9337
9338         * appdomain.c
9339         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9340         g_build_filename to properly get separators on the filename created.
9341
9342         * object.h: Small change, introduce MonoMarshalByRefObject to
9343         track the layout of that structure in the C# universe as we make
9344         changes there.
9345
9346 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9347
9348         * object.c: removed assert to allow static fields on interfaces.
9349         * loader.c: a TypeSpec may be used for any type, not just arrays.
9350
9351 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9352
9353         * class.c, class.h: added mono_class_array_element_size ().
9354         Ignore static methods in interfaces.
9355
9356 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9357
9358         * threads.c: fixed the build under cygwin.
9359
9360 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9361
9362         * reflection.c: handle nullref constants. Allocate keys for
9363         reflection handles with the GC.
9364
9365 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9366
9367         * threads.c, threads.h: added mono_thread_get_abort_signal()
9368         to get a suitable signal for thread abort.
9369
9370 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9371
9372         * metadata.c: fix handling of ExportedType table.
9373
9374 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9375
9376         * icall.c: added WriteWindowsDebugString internal call.
9377
9378 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9379
9380         * reflection.h: added fields to match C# implementation.
9381
9382 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9383
9384         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9385
9386 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9387
9388         * gc.h, gc-internal.h: Rename header for GC internal calls to
9389         gc-internal.h from gc.h as to not clash with Boehm GC having its
9390         header installed as <gc.h> in outside include paths.
9391         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9392         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9393
9394 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9395
9396         * icall.c: assign minor, build and revision in FillName.
9397
9398 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9399
9400         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9401         Added support for running code generated by Reflection.Emit.
9402
9403 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9404
9405         * appdomain.c: check for NULL argument in LoadFrom.
9406
9407 2002-12-10  Dick Porter  <dick@ximian.com>
9408
9409         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9410
9411 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9412
9413         * appdomain.c: fix buglet when building exe file name.  Handle full
9414         assembly name (needed after latest changes to AssemblyName).
9415         * image.c:
9416         (mono_image_close): free some hashtables.
9417
9418 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9419
9420         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9421         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9422         on some systems (redhat 7.3) 
9423
9424 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9425
9426         * threads.c: delete the critical section of a sync block,
9427         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9428
9429 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9430
9431         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9432
9433 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9434
9435         * appdomain.[ch]: handle the assembly preload event to try loading the
9436         assemblies using the paths we have in the current domain.
9437
9438         * assembly.[ch]: created an assembly preload hook that is called to try
9439         loading the assembly by other means that the ones provided here.
9440
9441         * domain.c: initialize the domain search path.
9442
9443         From now on, assemblies (TODO: except corlib and System) are loaded
9444         according to these rules when using mono_assembly_load ():
9445
9446                 1. It tries to load the assembly from the ApplicationBase
9447                 of the current domain appending .dll and .exe (TODO: have to
9448                 try loading from name/name.dll and name/name.exe).
9449
9450                 2. It tries the search path specified in PrivateBinPath for the
9451                 current domain (if any).
9452
9453                 3. Previous behavior.
9454
9455 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9456
9457         * icall.c: implemented GetInterfaceMap() related icall.
9458         * domain.c, loader.h: load MethodInfo in mono_defaults.
9459
9460 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9461
9462         * gc.c: disable the finalizer thread for now, untill all the issues
9463         with it are resolved.
9464
9465 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9466
9467         * string-icalls.c: handle embedded nulls in string ctor when the
9468         length is specified.
9469
9470 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9471
9472         * class.c: look for explicit interface implementation in parent
9473         classes, too.
9474
9475 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9476
9477         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9478
9479 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9480
9481         * gc.c: protect handles with a critical section.
9482
9483 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9484
9485         * icall.c:
9486         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9487         parameters. If no assembly specified, try getting the type from all
9488         the assemblies in the current domain, else, load the assembly and get
9489         the type from it.
9490
9491 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9492
9493         * marshal.c: applied patch from Aleksey Demakov that fixes
9494         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9495
9496 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9497
9498         * icall.c: fixed get_location.
9499
9500 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9501
9502         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9503         declarations to make it work with older gcc. 
9504
9505         * loader.c (mono_get_method): set signature->pinvoke for native calls
9506
9507 2002-11-20  Dick Porter  <dick@ximian.com>
9508
9509         * threads.c (mono_thread_init): Set the main thread's handle
9510
9511 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9512
9513         * gc.c: allow compilation without GC support. Changed to match the
9514         mono coding style.
9515
9516 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9517
9518         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9519
9520 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9521
9522         * reflection.c: set a public key token on the core assemblies.
9523
9524 2002-11-18  Dick Porter  <dick@ximian.com>
9525
9526         * threads.c: Split out some thread initialisation so that other
9527         files can set the start callback function.
9528
9529         * gc.c: Run finalisers in a separate thread, to avoid stack
9530         overflow.  Fixes bug 31333.
9531
9532         * appdomain.c: Set up GC finalisation thread.
9533
9534         * reflection.c: 
9535         * object.c: 
9536         * domain.c: Use gc.h macros for GC_malloc
9537         
9538 2002-11-15  Dick Porter  <dick@ximian.com>
9539
9540         * threadpool.c: 
9541         * threads.c:
9542         * appdomain.c: Removed mono_runtime_init_with_attach(),
9543         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9544         merging the extra parameter with the existing function.  Removed
9545         unneeded code in mono_thread_attach().
9546
9547 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9548
9549         * image.c (mono_image_loaded_by_guid): a method to get loaded
9550         images by guid. 
9551         (load_metadata_ptrs): we store the guid as string.
9552
9553 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9554
9555         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9556
9557         * metadata.c (mono_guid_to_string): imported method form Zoltan
9558         Varga (slightly modified)
9559
9560         * assembly.c (mono_assembly_open): load precompiled code
9561
9562         * loader.h (MonoMethod): we store the method token for use in the
9563         aot compiler. 
9564
9565 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9566
9567         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9568         the hook function called when an assembly is loaded.
9569         
9570         * domain.c: Modified file.
9571         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9572
9573         Fixes bug #33196.
9574
9575 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9576
9577         * reflection.c: Map PEFileKind to the value expected by the WinNT
9578         image loader. 
9579
9580 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9581
9582         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9583         Read until the buffer is filled completely.
9584
9585 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9586
9587         * icall.c: implemented MonoType.InternalGetEvent ().
9588
9589 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9590
9591         * appdomain.c: implemented InitAppDomainSetup. Delayed
9592         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9593         the entry_assembly.
9594
9595         * assembly.c: base_dir is now an absolute path ending with
9596         G_DIR_SEPARATOR.
9597
9598         * icall.c: modified get_location according to the above changes.
9599
9600         * object.c: init AppDomain.SetupInformation for the default domain after
9601         we have the entry assembly.
9602
9603         * domain.c: when unloading a domain, setup = NULL.
9604
9605 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9606
9607         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9608
9609 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9610
9611         * object.h, object.c: introduced mono_object_get_virtual_method ()
9612         to lookup the method invoked on an object when a callvirt is done on
9613         a method.
9614         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9615
9616 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9617
9618         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9619         current domain when loaded an assembly and failed to load it.
9620
9621         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9622
9623 2002-10-31  Dick Porter  <dick@ximian.com>
9624
9625         * icall.c: 
9626         * file-io.h: 
9627         * file-io.c: Return the error status in a parameter, as the
9628         GetLastError() value has long since been blown away if we try and
9629         look it up in a subsequent internal call invocation.  Delete the
9630         GetLastError() internal call, because it's useless.
9631
9632 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9633
9634         * class.[ch]: added cast_class to fix bug 29517
9635
9636 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9637
9638         * marshal.c: create valid IL code in the filter clause:
9639         the new JIT is less forgiving:-)
9640
9641 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9642
9643         * icall.c: removed get_property internal call.
9644
9645 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9646
9647         * appdomain.h domain.c: Added an ID to appdomains.
9648         
9649         * threads.c threads.h icall.c: Implement icall
9650         Thread:GetDomainID(), and remove unused icall 
9651         CurrentThreadDomain_internal.
9652
9653 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9654
9655         * icall.c: Don't recurse through the base types in GetConstructor.
9656         Fixes bug #32063. 
9657
9658 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9659
9660         * mempool.h, mempool.c: added mono_mempool_empty() and
9661         mono_mempool_stats().
9662
9663 2002-10-23  Dick Porter  <dick@ximian.com>
9664
9665         * file-io.c: 
9666         * file-io.h: 
9667         * icall.c: Added MonoIO.GetFileType internal call
9668
9669 2002-10-17  Dick Porter  <dick@ximian.com>
9670
9671         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9672         delegate semaphore before waiting for all threads to finish,
9673         because new threads can also call async delegates.  Fixes bug
9674         32004.
9675
9676         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9677         of 3 seconds, in case another async job is queued.  (This part is
9678         needed because the bug fix reintroduced the 3s exit lag.)  This
9679         makes the mono_runtime_shutdown flag superfluous.
9680
9681 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9682
9683         * reflection.c: include ehader size in method section headers.
9684         Really check for suplicated modules entries.
9685
9686 2002-10-17  Martin Baulig  <martin@gnome.org>
9687
9688         * debug-mono-symfile.c: Added back support for locals.
9689
9690 2002-10-14  Martin Baulig  <martin@gnome.org>
9691
9692         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9693         MONO_TYPE_VOID.
9694
9695 2002-10-14  Martin Baulig  <martin@gnome.org>
9696
9697         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9698         mono_class_get() instead of looking in the class cache. 
9699
9700 2002-10-13  Martin Baulig  <martin@gnome.org>
9701
9702         * debug-mono-symfile.c: Set version number to 28, include the
9703         signature in method names.
9704
9705 2002-10-13  Martin Baulig  <martin@gnome.org>
9706
9707         * debug-mono-symfile.h: Set version number to 27.
9708
9709 2002-10-11  Martin Baulig  <martin@gnome.org>
9710
9711         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9712
9713 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9714
9715         * metadata.c, metadata.h: added helper function to allocate signatures.
9716
9717 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9718
9719         * icall.c: added internal call to get the location of machine.config.
9720
9721 2002-10-08  Martin Baulig  <martin@gnome.org>
9722
9723         * debug-mono-symfile.c: Ignore classes with a pending init for the
9724         moment.
9725
9726 2002-10-03  Dick Porter  <dick@ximian.com>
9727
9728         * threads.c: Freebsd pthread_t is a pointer
9729
9730 2002-10-03  Dick Porter  <dick@ximian.com>
9731
9732         * socket-io.c: Implemented GetHostName_internal
9733
9734 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9735
9736         * mono-config.c:
9737         (mono_config_parse_file): don't leak the text.
9738
9739 2002-10-02  Martin Baulig  <martin@gnome.org>
9740
9741         * debug-mono-symfile.c: Added support for methods.
9742
9743 2002-10-01  Martin Baulig  <martin@gnome.org>
9744
9745         * debug-mono-symfile.c: Don't emit methods and line numbers for
9746         the dynamic symbol file, just write the type table.  We can easily
9747         have an external helper program which creates a symbol file for an
9748         IL file.        
9749
9750 2002-10-01  Dick Porter  <dick@ximian.com>
9751
9752         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9753         Only add the handle to the cleanup array when we're about to
9754         launch the thread.  Bug 31425 deadlocked when the test was run on
9755         mono under w32.
9756
9757 2002-10-01  Martin Baulig  <martin@gnome.org>
9758
9759         * debug-mono-symfile.c: Added support for properties.
9760
9761 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9762
9763         * reflection.c: unaligned store fix from Mark Crichton
9764         <crichton@gimp.org>.
9765
9766 2002-09-27  Martin Baulig  <martin@gnome.org>
9767
9768         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9769         New interncall.
9770
9771 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9772
9773         * assembly.h, assembly.c: use a sane API to hook into the assembly
9774         loading process instead of a useless special-purpouse hack
9775         (ngen needs a hook, too, for example).
9776
9777 2002-09-27  Dick Porter  <dick@ximian.com>
9778
9779         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9780         io-layer can set up some process handle info.  Not needed on w32,
9781         but doesn't hurt either.
9782
9783         * process.c: Pass the program name in the second parameter to
9784         CreateProcess, so the path is searched.  Include the working
9785         directory. Implemented process name, process enumeration, and some
9786         process detail internal calls.
9787         
9788         * icall.c: Added internal calls for process lookup, and some
9789         process details
9790
9791 2002-09-26  Martin Baulig  <martin@gnome.org>
9792
9793         * assembly.c (mono_install_open_assembly_hook): New global
9794         function to install a function to be invoked each time a new
9795         assembly is loaded.
9796         (mono_assembly_open): Run this callback function if set.
9797
9798         * debug-mono-symfile.c: Put back line numbers for the dynamic
9799         symbol file and also record the .il file as source file.  This
9800         allows us to install the temporary symbol file as `file.dbg' just
9801         like a compiler-generated one.
9802
9803 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9804
9805         * Corrected typo in gc.c (BOHEM vs BOEHM).
9806
9807 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9808
9809         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9810         GetProperties. Also avoid calling g_slist_length in GetProperties and
9811         GetMethods.
9812
9813 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9814
9815         * reflection.c: avoid unaligned stores (bug spotted by
9816         Mark Crichton  <crichton@gimp.org>).
9817
9818 2002-09-25  Martin Baulig  <martin@gnome.org>
9819
9820         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9821         instead of guint64 for addresses and added prologue/epilogue info.
9822
9823 2002-09-25  Martin Baulig  <martin@gnome.org>
9824
9825         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9826         store line number info.  For the dynamic symbol file, we only need
9827         to provide the JIT generated dynamic line number info for the dynamic
9828         symbol file.
9829
9830 2002-09-25  Martin Baulig  <martin@gnome.org>
9831
9832         * debug-mono-symfile.h: Incremented version number.
9833
9834 2002-09-24  Martin Baulig  <martin@gnome.org>
9835
9836         * class.c (mono_debugger_class_init_func): New global function
9837         pointer variable.
9838         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9839         call it.
9840
9841         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9842         function.  This is called via the mono_debugger_class_init_func
9843         hook to add all types to the dynamic type table.
9844         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9845         from its metadata token.
9846
9847         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9848         New interncall for the debugger.
9849
9850 2002-09-24  Nick Drochak <ndrochak@gol.com>
9851
9852         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9853         before using it in case it is null.
9854         
9855 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9856
9857         * metadata.c: allow custom modifiers in local var signatures
9858         (bug spotted by Zoltan Varga).
9859
9860 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9861
9862         * class.c: deal with the <Module> class that may have a NULL vtable.
9863         Eliminate warnings.
9864
9865 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9866
9867         * image.c, image.h: more strong name helpers.
9868         * monosn.c: more work: convert pem keys to cryptoapi format.
9869
9870 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9871
9872         * string-icalls.c: speedup IndexOf.
9873
9874 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9875
9876         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9877
9878 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9879
9880         * icall.c: cleanup: use mono_object_domain ().
9881
9882 2002-09-23  Martin Baulig  <martin@gnome.org>
9883
9884         * debug-mono-symfile.c: Improved type support.
9885
9886 2002-09-22  Martin Baulig  <martin@gnome.org>
9887
9888         * debug-mono-symfile.c: Added support for reference types and strings.
9889
9890 2002-09-22  Martin Baulig  <martin@gnome.org>
9891
9892         * debug-mono-symfile.c: Started to work on the type table.
9893
9894 2002-09-21  Martin Baulig  <martin@gnome.org>
9895
9896         * debug-mono-symfile.c: Largely reworked the symbol table format.
9897         The symbol table is now incrementally updated each time a new
9898         method is added.  We're now also using our own magic and version
9899         so that you don't need to recompile all your classes if the
9900         dynamic table changes.
9901         (mono_debug_update_mono_symbol_file): Removed.
9902         (mono_debug_symfile_add_method): New function to add a method.
9903
9904 2002-09-21  Martin Baulig  <martin@gnome.org>
9905
9906         * icall.c
9907         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9908         New interncall.
9909
9910         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9911         New interncall to get a method from its metadata token.
9912
9913 2002-09-21  Martin Baulig  <martin@gnome.org>
9914
9915         * debug-mono-symfile.c: Create type table.
9916
9917 2002-09-20  Martin Baulig  <martin@gnome.org>
9918
9919         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9920
9921 2002-09-20  Martin Baulig  <martin@gnome.org>
9922
9923         * debug-mono-symfile.c: Provide information about params and locals.
9924
9925 2002-09-20  Martin Baulig  <martin@gnome.org>
9926
9927         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9928         New interncall.
9929
9930         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9931         interncall to get a method from its metadata token.
9932
9933 2002-09-20  Martin Baulig  <martin@gnome.org>
9934
9935         * debug-mono-symfile.c: Added a few checks for method->header
9936         being non-NULL.  This should never happen, but for the moment
9937         let's use a g_warning() rather than a g_assert().
9938
9939 2002-09-19  Mark Crichton  <crichton@gimp.org>
9940
9941         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9942         even if support for it isn't present.  Added an #ifdef to fix this.
9943
9944         * socket-io.c: Added checks back for Solaris support.
9945
9946 2002-09-19  Martin Baulig  <martin@gnome.org>
9947
9948         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9949         changes in the symbol file format.
9950
9951 2002-09-18  Martin Baulig  <martin@gnome.org>
9952
9953         * debug-mono-symfile.c: Set version number to 21.
9954
9955 2002-09-18  Dick Porter  <dick@ximian.com>
9956
9957         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9958         on netbsd.  Fixes bug 30051.
9959
9960 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9961
9962         * reflection.c:
9963         (set_version_from_string): little fix.
9964
9965 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9966
9967         * monosn.c, Makefile.am: added strong name utility.
9968         * reflection.h, reflection.c: implemented delayed signing,
9969         locale, version and hash id assembly attributes.
9970
9971 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9972
9973         * loader.c, metadata.c: load param attributes in signatures.
9974
9975 2002-09-16  Martin Baulig  <martin@gnome.org>
9976
9977         * debug-mono-symfile.c: Added string table with all method names.
9978
9979 2002-09-14  Martin Baulig  <martin@gnome.org>
9980
9981         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9982         fast method lookup.
9983
9984 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9985
9986         * reflection.c: record the public key token of referenced assemblies.
9987
9988 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9989
9990         * image.c, image.h: added functions to get the strong name and the
9991         public key of an assembly.
9992         * pedump.c: use them.
9993
9994 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9995
9996         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9997
9998 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9999
10000         * marshal.c (mono_marshal_get_managed_wrapper): Added
10001         MONO_TYPE_BOOLEAN 
10002
10003 2002-09-11  Martin Baulig  <martin@gnome.org>
10004
10005         * gc.c: Call GC_unregister_disappearing_link() on all links when
10006         finalizing them, this is necessary to aviod a crash in boehm's
10007         finalize handler.
10008
10009 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10010
10011         * gc.c: handle GetTarget for finalized objects spotted and fixed by
10012         nick@chemlab.org.
10013
10014 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10015
10016         * icall.c: implemented MonoType::Module.
10017         * reflection.c, reflection.h: mono_module_get_object () from
10018         Tomi Pakarinen <tomi.pakarinen@welho.com>.
10019
10020 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10021
10022         * icall.c: ignore overridden methods in GetMethods ().
10023         Fix for FieldInfo::SetValue().
10024         * object.c: handle float/double in runtime invoke.
10025
10026 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10027
10028         * object.c: allow a constructor to be called again on an object.
10029
10030 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10031
10032         * class.h, class.c: move field layout code to it's own function and
10033         export it. Get an interface id earlier. Move fields in MonoClass
10034         so they are more cache friendly and align the bitfields.
10035         * loader.c: temporary handle get_param_names() for a runtime method.
10036         * reflection.c, reflection.h: more code to handle runtime creation of
10037         types.
10038
10039 2002-09-09  Martin Baulig  <martin@gnome.org>
10040
10041         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
10042         signature with the pinvoke field being set for the actual call.
10043
10044 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10045
10046         * icall.c: removed some unused icalls. Start of map of glib charsets
10047         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
10048
10049 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10050
10051         * debug-helpers.c: break infinite loop (found and fixed by
10052         Holger Arnold <harnold@gmx.de>).
10053
10054 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10055
10056         * icall.c: target may be null in create_delegate.
10057
10058 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10059
10060         * marshal.c: handle a boolean return type.
10061
10062 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10063
10064         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
10065
10066 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10067
10068         * gc.c: fix weakreferences.
10069
10070 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10071
10072         * icall.c: added icall to get default codepage.
10073
10074 2002-09-03  Dick Porter  <dick@ximian.com>
10075
10076         * threads.h: 
10077         * threads.c: Use MonoThread instead of MonoObject where
10078         apropriate.
10079
10080         Store running thread objects in a hash table, so that we have all
10081         the info to hand when waiting for them to finish
10082         (means we don't need OpenThread() any more, so mingw builds should
10083         be fully functional again.)
10084
10085         * verify.c:
10086         * object.h: Added thread ID to MonoThread
10087
10088 2002-09-03  Martin Baulig  <martin@gnome.org>
10089
10090         * icall.c (System.Reflection.Assembly::get_location): New interncall.
10091
10092 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10093
10094         * icall.c: fixed leak in get_temp_path. Thanks lupus.
10095
10096 2002-09-03  Martin Baulig  <martin@gnome.org>
10097
10098         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
10099         argument to store the end address of the disassembled instruction.
10100
10101         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
10102         here from debug-symfile.h.
10103         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
10104         JIT into this struct.
10105         (MonoSymbolFile): Added `char *image_file' field.
10106         (MonoDebugGetMethodFunc): Removed.
10107         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
10108         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
10109         (mono_debug_find_method): New method.
10110
10111         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
10112         create a full symbol file.
10113         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
10114         and static symbol files.
10115         (mono_debug_find_method): The symbol file keeps an internal method hash,
10116         call this to get a MonoDebugMethodInfo from a MonoMethod.
10117
10118         * debug-symfile.[ch]: Removed.
10119
10120 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
10121
10122         * image.c (do_mono_image_open): Remove linker version check.
10123
10124 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
10125
10126         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
10127         wrappers for instance methods.
10128         
10129 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10130
10131         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
10132
10133 2002-08-28  Dick Porter  <dick@ximian.com>
10134
10135         * Makefile.am: Export HOST_CC for w32 builds
10136
10137 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10138
10139         * file-io.c process.c: MonoString are null terminated, no
10140         need for mono_string_to_utf16() anymore.
10141
10142 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10143
10144         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
10145
10146 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
10147
10148         * icall.c, reflection.h: speedup System.MonoType.
10149
10150 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10151
10152         * reflection.c: allow null as the value of a string argument in
10153         custom attributes constructors.
10154
10155 2002-08-27  Martin Baulig  <martin@gnome.org>
10156
10157         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
10158         `trampoline_address' field.
10159
10160 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
10161
10162         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
10163         check (fixes bug #29486) 
10164
10165 2002-08-27  Martin Baulig  <martin@gnome.org>
10166
10167         * debug-mono-symfile.c: Changed the file format in a way that allows us
10168         open it read-only and to use a specially malloced area for all the
10169         dynamic data.  We can now also generate a symbol file on-the-fly if we're
10170         debugging IL code and there is no MCS generated symbol file for it.
10171
10172 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10173
10174         * object.c: added a define for a good string and array
10175         creation speedup (not enabled by default because we need to deal with
10176         the synch stuff).
10177
10178 2002-08-26  Martin Baulig  <martin@gnome.org>
10179
10180         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
10181         function to create a dynamic symbol file.  This is used by the
10182         debugger to create a symbol file for IL code on-the-fly.
10183
10184 2002-08-26  Martin Baulig  <martin@gnome.org>
10185
10186         * loader.c (mono_lookup_pinvoke_call): Include the error message
10187         from g_module_error() in the error message.
10188
10189 2002-08-24  Martin Baulig  <martin@gnome.org>
10190
10191         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
10192         function to update the symbol file.  The symbol file is mmap()ed
10193         writable, but private.  This allows us to install the symbol file
10194         together with the assembly.
10195
10196 2002-08-24  Martin Baulig  <martin@gnome.org>
10197
10198         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
10199         but they can read the new symbol file format which mcs is now creating.
10200
10201         * debug-symfile.c (mono_debug_find_source_location): Moved to
10202         debug-mono-symfile.c; this is now operating on the new symbol file.
10203
10204 2002-08-23  Martin Baulig  <martin@gnome.org>
10205
10206         * debug-helpers.c (mono_method_desc_from_method): New function to get
10207         a MonoMethodDesc from a MonoMethod.
10208
10209 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10210
10211         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10212         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10213
10214 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10215
10216         * string-icalls.[ch]: make helper methods static.
10217
10218 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10219
10220         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10221         types to it and to SetValueInternal.
10222
10223         * object.c: Moved handle_enum label to its proper place. This was the
10224         f... bug! ;-)
10225
10226         This time i compiled mcs and gtk-sharp and they both work.
10227
10228 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10229
10230         * icall.c: reverted partially my previous patch until 
10231         object.c:set_value handles enums correcly.
10232
10233 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10234
10235         * icall.c:
10236         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10237         (ves_icall_System_Environment_get_MachineName): removed warning when
10238         compiling under cygwin.
10239
10240 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10241
10242         * object.c: fixed field_get_value() for reference types.
10243
10244 2002-08-22  Dick Porter  <dick@ximian.com>
10245
10246         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10247         Don't free a buffer while it's still needed.  Patch from Jonathan
10248         Liger <Jonathan.liger@wanadoo.fr>
10249
10250 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10251
10252         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10253         internal call.
10254
10255 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10256
10257         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10258         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10259
10260         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10261         we call unmanaged code which throws exceptions.
10262
10263 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10264
10265         * appdomain.h: added per-domain entry_assembly.
10266         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10267         arguments.
10268         * icall.c: Assembly::GetEntryAssembly icall.
10269         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10270         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10271
10272 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10273
10274         * appdomain.h, gc.c: added mono_domain_finalize ().
10275
10276 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10277
10278         * object.c:
10279         (mono_print_unhandled_exception): changed g_warning by g_printerr
10280         because g_log has a 1024 characters limit (yeah, i got a big stack
10281         trace). Don't print exception name, that should be in ToString 
10282         returned string.
10283
10284 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10285
10286         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10287         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10288
10289 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10290
10291         * object.c:
10292         (mono_print_unhandled_exception): after previous commit, i realized
10293         that MS calls ToString on the exception. I changed this function to
10294         do that. This way we get stack_trace for free.
10295
10296 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10297
10298         * object.c:
10299         (mono_print_unhandled_exception): invoke Message property instead of
10300         getting 'message' field from Exception. Don't allocate memory for
10301         'trace' and 'message' if not needed.
10302
10303 2002-08-18  Dick Porter  <dick@ximian.com>
10304
10305         * unicode.c: Fix asserts to match Encoder.cs checks
10306
10307 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10308
10309         * marshal.c: fix unaligned store issue and a few wrong
10310         opcode argument types.
10311
10312 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10313
10314         * icall.c: added GetUninitializedObjectInternal internal call.
10315
10316 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10317
10318         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10319         to the right domain.
10320
10321 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10322
10323         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10324
10325         * class.c (class_compute_field_layout): set blittable to false for Strings
10326
10327         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10328
10329 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10330
10331         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10332         first chunk of code to create types at runtime. Code to
10333         handle ReflectedType/DeclaringType. Make reflection handles
10334         domain specific.
10335
10336 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10337
10338         * class.c: set correct name in arrays.
10339
10340 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10341
10342         * appdomain.c (mono_domain_transfer_object): make it work with
10343         valuetypes. bug fixes.
10344
10345 2002-08-12  Dick Porter  <dick@ximian.com>
10346
10347         * object.h: Rename some parameters to avoid c++ keywords (Patch
10348         from Joseph Wenninger <kde@jowenn.at>)
10349
10350 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10351
10352         * icall.c: added icall to implement Assembly.GetFile*.
10353
10354 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10355
10356         * reflection.h, reflection.c: code to embed managed resources.
10357
10358 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10359
10360         * class.c: move all the type size stuff into
10361         class_compute_field_layout().
10362
10363 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10364
10365         * class.c: ensure enums have always the correct instance size.
10366         * unicode.c: remove wrong assert.
10367
10368 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10369
10370         * assembly.c: fix mem corruption issue.
10371         * image.h, image.c: added mono_image_get_resource () to access
10372         managed resources.
10373         * icall.c: implemented Assembly.EntryPoint property and some
10374         Managed Resources related internalcalls.
10375
10376
10377 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10378
10379         * image.c, image.h: impemented mono_image_get_entry_point ().
10380         * appdomain.c: use mono_image_get_entry_point.
10381
10382 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10383
10384         * reflection.c: support the object type argument when loading
10385         custom attributes.
10386
10387 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10388
10389         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10390         String as return type.
10391
10392 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10393
10394         * reflection.c: fix encoding of named args for custom attrs to match
10395         the ms implementation. Read them back when instantiating custom
10396         attributes.
10397
10398 2002-08-02  Radek Doulik  <rodo@ximian.com>
10399
10400         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10401         by Dietmar as quick fix
10402         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10403         16 as stack size, used on more places as quick fix before Dietmar
10404         will fix it properly
10405
10406 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10407
10408         * object.h, object.c: added accessors for fields and properties.
10409
10410 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10411
10412         * class.c, class.h: made mono_class_get_field_from_name ()
10413         loop on parent types.
10414         Added mono_class_get_property_from_name ().
10415
10416 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10417
10418         * class.c, class.h: move the code to setup the type vtable in its own
10419         function so that it can be reused also for types created at runtime.
10420         Eliminate the "class" identifier from the header file.
10421         * reflection.c: setup the vtable for enums so that we can create
10422         objects for use in SetConstant ().
10423
10424 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10425
10426         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10427         instead of the delegate itself as this pointer (bug #28383)
10428
10429 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10430
10431         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10432         conversions.
10433
10434 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10435
10436         * loader.c: don't set the pinvoke bit on icalls.
10437
10438 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10439
10440         * debug-helpers.c (mono_method_full_name): only print a number to
10441         indicate wrapper type (so that the output is more readable in traces).
10442
10443 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10444
10445         * class.c (mono_class_init): include method override patch from Paolo
10446
10447 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10448
10449         * icall.c: fixed GetTypeCode().
10450
10451 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10452
10453         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10454         use real delegate invoke function to make it work with multicast
10455         delegates (fix bug# 28291).
10456
10457 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10458
10459         * object.c: load constant strings.
10460
10461 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10462
10463         * reflection.c: no magic numbers.
10464         * tabledefs.h: security action enum.
10465
10466 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10467
10468         * assembly.c: fix possible memory corruption.
10469
10470 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10471
10472         * reflection.h, reflection.c: added support for linking resources.
10473         * verify.c: check we have an updated corlib.
10474
10475 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10476
10477         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10478         string arrays.
10479         (mono_marshal_string_array): null terminate unmanaged string arrays.
10480         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10481
10482 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10483
10484         * icall.c: Type.GetType () can now return also types from the
10485         calling assembly.
10486
10487 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10488
10489         * loader.h, loader.c: stack walking support.
10490         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10491         GetCallingAssembly.
10492
10493 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10494
10495         * marshal.c: added optimisations for blittable types 
10496
10497         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10498         (mono_class_setup_mono_type): set blittable attribute for single
10499         and double.
10500
10501         * marshal.c (mono_string_utf8_to_builder): impl.
10502         (mono_string_builder_to_utf8): impl.
10503         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10504
10505 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10506
10507         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10508         (mono_marshal_get_managed_wrapper): impl. byref types
10509
10510 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10511
10512         * icall.c:
10513         (search_method): don't display debug message. 
10514
10515 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10516
10517         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10518
10519 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10520
10521         * appdomain.c: set the missing filename when throwing exception.
10522
10523 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10524
10525         * metadata.c (mono_type_size): code cleanup
10526         (mono_type_stack_size): removed some test code
10527
10528 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10529
10530         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10531         mono_get_exception_file_not_found now.
10532
10533         * exception.c (mono_exception_from_name_two_strings): New version
10534         that will call a constructor with two string arguments. 
10535         (mono_get_exception_file_not_found): New helper routine, used to
10536         report file-not-found errors.
10537
10538 2002-07-20  Dick Porter  <dick@ximian.com>
10539
10540         * process.h:
10541         * process.c: Pass file handles to CreateProcess
10542         
10543         * icall.c:
10544         * file-io.h:
10545         * file-io.c: Implemented CreatePipe
10546
10547 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10548
10549         * metadata.c (mono_get_param_info): set alignment for value types
10550
10551 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10552
10553         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10554         Constify mono_domain_assembly_open().
10555         * loader.c: handle null namespace in icalls.
10556
10557 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10558
10559         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10560         (emit_str_to_ptr_conv): marshal object as structs
10561
10562         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10563
10564         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10565
10566 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10567
10568         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10569         (mono_marshal_get_native_wrapper): we an now return value types
10570
10571 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10572
10573         * verify.c: more checks implemented.
10574
10575 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10576
10577         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10578         (fix bug #27695)
10579         (mono_marshal_get_native_wrapper): allow byref arguments
10580         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10581         impl. PtrToStringXXX methods
10582         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10583         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10584         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10585         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10586         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10587
10588 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10589
10590         * reflection.c: fix buglet in parsing an assembly name.
10591
10592 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10593
10594         * marshal.c (emit_ptr_to_str_conv): first impl.
10595
10596 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10597
10598         * object.c, class.h: cache the vtable in the class as suggested by
10599         vargaz@freemail.hu (Zoltan Varga).
10600
10601 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10602
10603         * class.h, loader.c: added mono_field_from_token().
10604         * verify.c: first cut of type checking code.
10605
10606 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10607
10608         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10609
10610 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10611
10612         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10613         (fix bug #27782)
10614         (mono_marshal_get_remoting_invoke): impl.
10615         (mono_delegate_begin_invoke): impl.
10616         (mono_mb_emit_save_args): impl.
10617         (mono_delegate_end_invoke): impl.
10618         (mono_marshal_get_delegate_begin_invoke):
10619         (mono_marshal_get_delegate_end_invoke):
10620         (mono_marshal_get_delegate_invoke): generate a special name for
10621         those methods (including the signature) and associate them whith
10622         the delegate class. 
10623
10624 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10625
10626         * reflection.[ch]: 
10627         (mono_reflection_type_from_name): now it has a MonoImage parameter
10628         which is used as the default image to search the type in. If the image
10629         is NULL or getting the type from it fails, it defaults to corlib.
10630
10631         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10632         new parameter.
10633
10634 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10635
10636         * reflection.c: update the parameter table index.
10637
10638 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10639
10640         * domain.c: don't include the mark byte in the string hash.
10641
10642 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10643
10644         * icall.cs: icall for Type.GetTypeCode ().
10645         * verify: a couple of fixes and disabled local initialization checks.
10646
10647 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10648
10649         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10650
10651         * debug-helpers.c (mono_method_full_name): print the type of the
10652         runtime wrapper
10653
10654         * metadata.c (mono_signature_hash): a hash function for signatures
10655         (mono_signature_hash): better hash algorithm
10656
10657         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10658
10659         * debug-helpers.c (mono_method_full_name): this can now generate
10660         method names with signatures
10661
10662         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10663         method dont have this pointers.
10664
10665 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10666
10667         * reflection.c: fixup typebuilder tokens.
10668         * image.c: fix buglet.
10669         * marshal.h: remove whitespace.
10670         * metadata.h, metadata.c: reinstate code that was removed.
10671         * verify.c: handle catch directives and fix another couple of bugs.
10672
10673 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10674
10675         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10676         (mono_marshal_get_native_wrapper): make it comp. with the old code
10677         (mono_marshal_get_native_wrapper): support boolean
10678         (mono_marshal_get_managed_wrapper): support more types
10679
10680 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10681
10682         * class.c (class_compute_field_layout): compute class->blittable attribute.
10683
10684 2002-07-09  Dick Porter  <dick@ximian.com>
10685
10686         * threads.c: Make the thread cleaning up cope with threads that
10687         call ExitThread()
10688
10689 2002-07-08  Radek Doulik  <rodo@ximian.com>
10690
10691         * reflection.c (method_encode_code): use non-translated values to
10692         compute finally_start, this fixes exception handling on ppc, yay!
10693
10694         * decimal.h (struct signscale): fix endianess
10695
10696 2002-07-07  Radek Doulik  <rodo@ximian.com>
10697
10698         * reflection.c: swap box_val and not val
10699
10700 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10701
10702         * reflection.c, reflection.h: handle full assembly info in type name.
10703         Handle Type arguments when loading custom attributes.
10704         * icall.c: updated to use new mono_reflection_type_from_name () method.
10705
10706 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10707
10708         * loader.c:
10709         (method_from_memberref): also print assembly name when method not found.
10710
10711 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10712
10713         * icall.c:
10714         (ves_icall_TypeGetProperties): fixed bug #27473. 
10715
10716 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10717
10718         * reflection.c: display image name and token when cannot find the
10719         .ctor for an attribute.
10720
10721 2002-07-05  Martin Baulig  <martin@gnome.org>
10722
10723         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10724
10725 2002-07-04  Dick Porter  <dick@ximian.com>
10726
10727         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10728         compile on mingw.  This will cause mingw builds to not wait for
10729         subthreads to terminate after the main thread does.  I've lodged a
10730         bug with the mingw developers for them to wrap OpenThread().
10731
10732 2002-07-03  Dick Porter  <dick@ximian.com>
10733
10734         * threads.c: Store thread IDs instead of handles, because
10735         GetCurrentThread() returns a pseudohandle and therefore stores
10736         useless values.  mono_thread_cleanup() continues checking the
10737         array of threads until it is empty, to cope with subthreads
10738         spawning new threads after the main thread has finished.
10739
10740         * profiler.h:
10741         * profiler.c:
10742         * profiler-private.h: Pass the thread ID to thread profiler
10743         functions, instead of a handle
10744
10745 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10746
10747         * verify.c: fixes to make it more usable.
10748         * pedump.c: added --verify code to verify IL code in an assembly.
10749
10750 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10751
10752         * reflection.c: turn errors into warnings to allow compiling corlib.
10753
10754 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10755
10756         * reflection.c: add special cases to compile corlib.
10757
10758 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10759
10760         * reflection.c: handle properties with only a set method.
10761
10762 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10763
10764         * opcodes.h: add enum with opcodes in opval order.
10765
10766 2002-07-01  Dick Porter  <dick@ximian.com>
10767         
10768         * object.h:
10769         * object.c (mono_runtime_run_main): Removed unneeded argument
10770
10771 2002-06-28  Martin Baulig  <martin@gnome.org>
10772
10773         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10774
10775 2002-06-27  Dick Porter  <dick@ximian.com>
10776
10777         * threads.c: Store the handle in both the parent thread and in the
10778         subthread, to minimise the time between starting a new thread and
10779         storing its ID.
10780
10781 2002-06-26  Dick Porter  <dick@ximian.com>
10782
10783         * appdomain.c (mono_runtime_cleanup): Close the socket library
10784         after all the threads have finished, not before
10785
10786 2002-06-26  Martin Baulig  <martin@gnome.org>
10787
10788         * debug-symfile.c (mono_debug_find_source_location): Added
10789         `guint32 *line_number' argument.  If it's not NULL, store the line number
10790         there and return the file name without the line number.
10791
10792 2002-06-25  Dick Porter  <dick@ximian.com>
10793
10794         * icall.c:
10795         * process.h:
10796         * process.c: Process forking and other support functions
10797
10798 2002-06-25  Dick Porter  <dick@ximian.com>
10799
10800         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10801         things dont happen when the image is closed.
10802         (mono_image_lookup_resource): Walk the resource section looking
10803         for a particular entry
10804
10805         * cil-coff.h: PE resource section decoding
10806
10807 2002-06-25  Dick Porter  <dick@ximian.com>
10808         
10809         * assembly.h:
10810         * assembly.c: 
10811         (mono_assembly_foreach): Accessor functions to walk the list of
10812         loaded assemblies
10813         (mono_assembly_set_main):
10814         (mono_assembly_get_main): Process methods need to know which
10815         assembly is the "main" one
10816
10817         * object.c (mono_runtime_run_main): Record the main assembly
10818
10819         * debug-helpers.c: Fix typo
10820
10821 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10822
10823         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10824         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10825
10826 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10827
10828         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10829
10830 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10831
10832         * image.c (do_mono_image_open): Initialize reference count,
10833         otherwise we leak the MonoImage.
10834
10835 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10836
10837         * reflection.c: small tweak to handle self-hosting.
10838
10839 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10840
10841         * reflection.c: fix type name parse code.
10842
10843 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10844
10845         * reflection.c: break out of the loop.
10846         * image.c: special case corlib.
10847
10848 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10849
10850         * reflection.c: add all the custom attrs at the end to ensure the
10851         ctors have been properly initialized when the attributes are defined
10852         in the current assembly.
10853
10854 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10855
10856         * reflection.c: handle correctly multiple-nested types.
10857
10858 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10859
10860         * row-indexes.h: fix typos.
10861         * reflection.c: adjust for typos and fix method_def_or_ref
10862         encoding in MethodImpl table.
10863
10864 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10865
10866         * reflection.c: fix entry point patching (thanks Serge!).
10867
10868 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10869
10870         * verify.c: add check for System.Exception
10871
10872 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10873
10874         * image.c, class.c: minifix for code just c&p'ed.
10875         * reflection.c: warning fix.
10876         * object.h, loader.h, domain.c: load also StringBuilder.
10877
10878 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10879
10880         * marshal.h, marshal.c: some support code to handle complex marshaling.
10881
10882 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10883
10884         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10885         Better signatures with vtable error dump.
10886
10887 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10888
10889         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10890
10891 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10892
10893         * icall.c (ves_icall_Type_GetField): impl.
10894
10895 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10896
10897         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10898         to retrieve a marshal description blob for a field or param.
10899
10900 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10901
10902         * reflection.h, reflection.c: change order of nested type emission
10903         to avoid table corruption. The NestedTypes table is sorted.
10904         * icall.c: change order of GetConstructor results to workaround mcs bug.
10905
10906 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10907
10908         * reflection.h, reflection.c: handle field and param marshal
10909         information.
10910
10911 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10912
10913         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10914
10915 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10916
10917         * reflection.c: fix call convention.
10918
10919 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10920
10921         * reflection.h, reflection.c: mono_image_get_memberref_token()
10922         takes a type instead of a class, now. Added
10923         mono_image_get_array_token() to create tokens for the special
10924         multi-dim array methods.
10925
10926 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10927
10928         * assembly.c: handle modules (no assembly table). Split
10929         loading references in its own function.
10930         * class.c: handle moduleref resolution scope.
10931         * image.c, image.h: cache module name in image.
10932
10933 2002-06-07  Martin Baulig  <martin@gnome.org>
10934
10935         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10936         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10937
10938 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10939
10940         * icall.c: more signature fixes that used uint instead of int.
10941
10942 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10943
10944         * reflection.c: fixed signature of field refs.
10945
10946 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10947
10948         * class.c, reflection.c: handle typerefs of nested types
10949         (both on read and when writing files).
10950
10951 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10952
10953         * icall.c: fix method signatures that tried to workaround the previous
10954         typo, d'oh!
10955
10956 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10957
10958         * debug-helpers.c: fix typo.
10959
10960 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10961
10962         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10963         rewrote the PE/COFF writing code (our programs are understood by the
10964         ms runtime, now).
10965
10966 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10967
10968         * gc.c, gc.h, icall.c: weakreference support.
10969
10970 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10971
10972         * Makefile.am, mono-config.c: use $(sysconfdir).
10973
10974 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10975
10976         * icall.c: changed default precision of Double.ToString() to 15.
10977         Fixed memory leak. Unified with Single.ToString.
10978
10979 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10980
10981         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10982
10983 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10984
10985         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10986         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10987         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10988         and myself.
10989
10990 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10991
10992         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10993
10994 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10995
10996         * reflection.c, socket-io.c: more compilation fixes.
10997
10998 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10999
11000         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
11001         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
11002         unicode.c: warning and compiler compatibility fixes.
11003
11004 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11005
11006         * class.h, metadata.c: fixed warnings/compilation errors.
11007
11008 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11009
11010         * Makefile.am, mono-config.c, mono-config.h: configuration file
11011         support routines.
11012         * loader.c, loader.h: make Dll mapping configurable at runtime in the
11013         config file. Export methods to insert and lookup mappings.
11014
11015 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
11016
11017         * reflection.c: handle types and boxed objects in custom attr
11018         constructors.
11019
11020 2002-05-30  Martin Baulig  <martin@gnome.org>
11021
11022         * debug-symfile.c
11023         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
11024
11025 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
11026
11027         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
11028         to lookup the implmap row for a P/Invoke method.
11029         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
11030         P/Invoke method from the runtime on an as needed basis.
11031
11032 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
11033
11034         * metadata.c (mono_metadata_parse_signature): impl.
11035
11036 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11037
11038         * class.c: handle .pack directive.
11039
11040 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11041
11042         * object.c: initialize static fields with RVA data.
11043
11044 2002-05-25  Martin Baulig  <martin@gnome.org>
11045
11046         * debug-symfile.c
11047         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
11048
11049 2002-05-24  Martin Baulig  <martin@gnome.org>
11050
11051         * debug-symfile.c
11052         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
11053         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
11054         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
11055
11056 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11057
11058         * object.c: special case string ctros in invoke.
11059         * gc.c: silly whitespace changes.
11060
11061 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
11062
11063         * threadpool.[ch]: impl. a threadpool that can
11064         be used by mint and mono.
11065
11066 2002-05-22  Martin Baulig  <martin@gnome.org>
11067
11068         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
11069         The first argument is now a `MonoReflectionModuleBuilder *', the return
11070         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
11071         `methods' field to get the method builder.  The `token' argument is the
11072         unfixed token.
11073
11074         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
11075         invalid characters instead of g_assert_not_reached()ing.  This seems
11076         to be the behaviour of mscorlib.
11077
11078 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
11079
11080         * object.c (mono_runtime_invoke_array): applied patch from Rachel
11081         Hestilow to fix bug #25104
11082
11083 2002-05-21  Martin Baulig  <martin@gnome.org>
11084
11085         * debug-symfile.c (mono_debug_find_source_location): New function.
11086         Looks up an IL offset in the line number table and returns the source
11087         location as a string.
11088
11089 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11090
11091         * icall.c:
11092         (mono_double_ToStringImpl): changed %f by %g until we have something
11093         better.
11094
11095 2002-05-21  Nick Drochak  <ndrochak@gol.com>
11096
11097         * icall.c : Use different name for Math.Pow's icall.  Needed to check
11098         parameters first in C#.
11099
11100 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11101
11102         * icall.c, reflection.h: added icall to get info about an event.
11103
11104 2002-05-20  Radek Doulik  <rodo@ximian.com>
11105
11106         * object.c (mono_value_box): don't use memcpy for boxing on BIG
11107         endian
11108         (mono_value_box): don't use memcpy for small sizes on
11109         architectures with unaligned access
11110
11111 2002-05-20  Martin Baulig  <martin@gnome.org>
11112
11113         * reflection.c (mono_reflection_setup_internal_class): Don't crash
11114         if `tb->parent == NULL'.
11115         (mono_reflection_create_internal_class): New function.  This is
11116         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
11117         for enum types.
11118
11119         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
11120         New interncall.
11121
11122 2002-05-19  Martin Baulig  <martin@gnome.org>
11123
11124         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
11125         argument to get the length, don't default to the array length.
11126
11127 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
11128
11129         * assembly.c (mono_assembly_setrootdir): New function used to
11130         override the MONO_ASSEMBLIES directory.
11131
11132 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11133
11134         * icall.c: ValueType_GetHashCode() initialize local var.
11135
11136 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11137
11138         * reflection.c: sort custom attributes table.
11139
11140 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11141
11142         * reflection.c: support named args in custom attributes (write support).
11143
11144 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
11145
11146         * reflection.c: fix finally position calculation.
11147
11148 2002-05-15  Radek Doulik  <rodo@ximian.com>
11149
11150         * reflection.c: fixed endianess at many places
11151
11152         * icall.c (ves_icall_InitializeArray): comment out debug msg
11153
11154 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
11155
11156         * object.c (mono_unhandled_exception): new function to handle
11157         unhandled exceptions.
11158         (mono_unhandled_exception): call the UnhandledException event.
11159         (mono_runtime_delegate_invoke): impl.
11160
11161 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
11162
11163         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
11164         returns the RVA, not the direct pointer to the data. Handle the case
11165         when the class size is fixed.
11166
11167 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11168
11169         * reflection.c: fix some endianess issues.
11170
11171 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
11172
11173         * object.c (mono_runtime_invoke): is now able to catch exceptions.
11174
11175         * threads.c (mono_thread_init): added a callback which is invoked
11176         at thread start.
11177
11178 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11179         
11180         * icall.c: make GetHashCode return non-negative values.
11181
11182 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11183
11184         * object.c, icall.c, gc.c: revert to address-based hashcode.
11185
11186 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
11187
11188         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
11189
11190 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11191
11192         * icall.c, class.c: special case <Module>.
11193
11194 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
11195
11196         * icall.c: fix bug in GetNow().
11197
11198 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
11199
11200         * object.c (mono_runtime_class_init): make sure that we call all
11201         static class constructors.
11202
11203 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11204
11205         * reflection.c: sort methodsemantics table.
11206
11207 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11208
11209         * reflection.h, reflection.c: honour init locals setting.
11210
11211 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11212
11213         * icall.c: copied Double ToStringImpl for Single ToStringImpl
11214
11215 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11216
11217         * reflection.c: support ContructorBuilders in attribute blob creation.
11218
11219 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11220
11221         * reflection.c: some changes to build a binary that can be run
11222         directly in windows.
11223
11224 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11225
11226         * loader.c: print a big message when an icall can't be found.
11227
11228 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11229
11230         * string-icalls.c: fix bug 24248.
11231
11232 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11233
11234         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11235         icall.c, reflection.h: separate assembly loading by pathname and by
11236         assembly name. Use the MONO_PATH env var to search for assemblies.
11237
11238 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11239
11240         * assembly.c, image.h: add some support for assemblies
11241         with multiple modules.
11242         * class.c, class.h: export mono_class_from_typeref().
11243         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11244         instead.
11245
11246 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11247
11248         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11249         documentation says (the ECMA one is correct).
11250
11251 2002-05-02  Dick Porter  <dick@ximian.com>
11252
11253         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11254         Don't name the synchronisation mutex.
11255
11256 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11257
11258         * rand.c
11259         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11260         Make the prototypes match.
11261         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11262         Same.
11263
11264         * icall.c
11265         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11266         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11267         all systems have tm.tm_zone, so use strftime() with %Z to print
11268         the timezone abreviation into a temp string.
11269
11270         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11271         rather than mono_array_addr() on a MonoString on Big Endian
11272         machines.
11273
11274 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11275
11276         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11277         fix bug 24041
11278
11279 2002-04-30  Dick Porter  <dick@ximian.com>
11280
11281         * socket-io.c: Cope with SOCKET being an integer rather than a
11282         pointer now.
11283
11284         * threads.c: Added Thread_free_internal, to deal with thread
11285         handle cleanup.  Moved calls to handle_store() and handle_remove()
11286         to start_wrapper(), so each can only be called once.  Allocate
11287         synchronisation blocks with GC_malloc(), and use GC finalisation
11288         to close the handles.
11289
11290         * icall.c: added System.Threading.Thread::Thread_free_internal
11291
11292 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11293
11294         * icall.c: support Environment.Exit, CommandLineArgs().
11295
11296 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11297
11298         * object.c, object.h: added mono_runtime_run_main () and
11299         mono_runtime_get_main_args () for use in System.Environment.
11300
11301 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11302
11303         * gc.c: fix thinko, enable actual finalization since the jit is now
11304         fixed.
11305
11306 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11307
11308         * gc.c, object.c: take into account that an object may be offset wrt the address
11309         returned by GC_malloc().
11310
11311 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11312
11313         * image.c: handle files without entries in the assembly table (modules).
11314
11315 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11316
11317         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11318         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11319         allowed to be null when it's System.Object class setup.
11320
11321 2002-04-27  Martin Baulig  <martin@gnome.org>
11322
11323         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11324         if `tb->parent == NULL' rather than crashing.
11325
11326 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11327
11328         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11329         calling acos() where asin() should have been called.
11330
11331 2002-04-26  Martin Baulig  <martin@gnome.org>
11332
11333         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11334         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11335         there's a subdirectory called `System', but we don't want to read that
11336         subdirectory as an assembly.
11337
11338 2002-04-25  Martin Baulig  <martin@gnome.org>
11339
11340         * debug-symfile.c: Reflect latest MonoString changes.
11341
11342 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11343
11344         * rand.c, rand.h: instance method icalls need to have an explicit
11345         this pointer as first argument in the C implementation.
11346
11347 2002-04-25  Nick Drochak <ndrochak@gol.com>
11348
11349         * icall.c: Fix typo in map for GetNonZeroBytes
11350
11351 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11352
11353         * string-icalls.c : String does now passes unit tests without any 
11354         errors, the following changes has been made:
11355         
11356         Implemented replace methods.
11357         Renaming of methods to (try) follow the standard.
11358         Fixed compare ordinal
11359         Made all memory allocated directly to function instead of via icall function.
11360         Small performance fix in is_in_array function
11361                         
11362  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11363
11364         c (mono_string_Internal_ctor_charp_int_int):
11365         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11366         sindex < 0, throw ArgumentOutOfRangeException instead of
11367         ArgumentNullException.
11368
11369         Added new check for length == 0, however
11370         I need to make it return String.Empty from the C code.
11371         
11372         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11373         that calculate the length for us here.
11374         
11375         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11376         mono_string_new_utf16 with mono_string_new, since value is utf8.
11377
11378 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11379
11380         * object.c: register the object for finalization if needed.
11381         Allocate one more char in the string for the terminating 0 char.
11382
11383 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11384
11385         * class.c, class.h, image.c: check if a type implemenst a destructor.
11386         Use the proper key for array class lookups.
11387         * icall.c: register the icalls in the System.GC class.
11388         * gc.c, gc.h: GC-related functions and icalls.
11389
11390 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11391
11392         * icall.c:
11393         * socket-io.c:
11394         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11395         changed a couple of free () by g_free ().
11396
11397         * decimal.c: one-liner in the comments for decimal2string ().
11398
11399 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11400
11401         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11402
11403 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11404
11405         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11406         * object.c (mono_runtime_invoke_array) : handle null in params
11407
11408 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11409
11410         * string-icalls.c: fixed bug in split (one off bug)
11411
11412 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11413
11414         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11415         * icalls.c: added String::Equals as internal method
11416
11417 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11418
11419         * threads.c: fixed bug in the double interlocked functions
11420
11421 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11422
11423         * threads.c: implemented all of the new interlocked icalls.
11424         * string-icalls.c: fix a bug in insert.
11425         * icalls.c: added the icalls for interlocked, removed old string functions.
11426         
11427 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11428
11429         * loader.c: fix off-by-one error when reading argument names.
11430
11431 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11432
11433         * profiler.c: win32 counter implementation (untested).
11434         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11435         (the latter needs testing and more complete impl. from win32 folks).
11436
11437 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11438
11439         * object.c: mono_array_new_full workaround mono_array_class_get
11440         problem.
11441
11442 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11443
11444         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11445         * object.h (mono_string_chars): Changed casting type.
11446
11447 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11448
11449         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11450                            method signatures to use gunichar2 instead of gint16.
11451
11452 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11453
11454         * object.h, object.c: domain-specific versions of mono_object_new and
11455         mono_array_new.
11456
11457 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11458
11459         * object.c: changed String layout
11460
11461         * string-icalls.c (mono_string_Internal_ctor_chara): added
11462         internal string constructors.
11463
11464 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11465
11466         * threads.c: pass 'this' to the thread start routine.
11467
11468 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11469
11470         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11471         InternalCompareStr don't call twice mono_string_cmp_char for the last
11472         character. Improved performance in mono_string_cmp_char.
11473
11474 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11475
11476         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11477         code into its own library: libmonoruntime.
11478
11479 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11480
11481         * object.h, object.c: changed array format so that szarrays do not
11482         require a bounds structure.
11483         * icall.c, appdomain.c: support for new szarray format.
11484
11485 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11486
11487         * metadata.c: compare also the retuns type when comparing signatures:
11488         we didn't do this as an optimization since really overloaded methods
11489         must differ also in the arguments, but this doesn't work with
11490         low-level IL code (or when using explicit conversion operators: see
11491         bug#23498 for an example).
11492
11493 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11494
11495         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11496
11497 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11498
11499         * icall.c: make MonoType::GetElementType its own icall.
11500
11501 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11502
11503         * icall.c: remove MonoMethod_get_Name().
11504         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11505         object.
11506
11507 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11508
11509         * string-icalls.c: optimized a few methods.
11510
11511 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11512
11513         * icall.c: added all new string internal calls
11514         * string-icalls.c: added, new string internal call implementation.
11515         * object.c: added mono_string_new_size for allocating a string a size
11516
11517 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11518
11519         * object.c (mono_object_isinst): use the same code as in the
11520         optimized x86 version.
11521
11522 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11523
11524         * profiler.c: TSC-based timer code (faster and more accurate).
11525         Not hooked up in configure, yet (set USE_X86TSC to 1).
11526
11527 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11528
11529         * profiler.c, profiler.h: track time spent compiling methods.
11530         * threads.c: track thread creation/destruction.
11531
11532 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11533
11534         * profiler.c, profiler.h, profiler-private.h: profiling interface
11535         and sample implementation. Moved here so that it can be used also by
11536         the jit.
11537
11538 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11539
11540         * reflection.c, reflection.h: keep types and other handles separate in
11541         the hash tables for referred tokens. Add guid for modules.
11542
11543 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11544
11545         * assembly.c: fix bugs found with valgrind.
11546         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11547
11548 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11549
11550         * threads: added icall support for getting current domain for
11551                    the thread.
11552  
11553 2002-04-13  Martin Baulig  <martin@gnome.org>
11554
11555         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11556         (MonoDebugVarInfo): Added `index' field for register based addresses.
11557         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11558         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11559         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11560         `MonoDebugVarInfo *this_var'.
11561
11562         * debug-symfile.c (relocate_variable): New static function to write
11563         a location description for a local variable or method parameter.
11564
11565 2002-04-12  Martin Baulig  <martin@gnome.org>
11566
11567         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11568         stack offset and begin/end scope address of a local variable.
11569         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11570         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11571         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11572
11573         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11574         Added new relocation types for start/end scope of a local variable.
11575
11576 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11577
11578         * object.h: add mono_object_domain() macro.
11579         * reflection.c: handle typespecs.
11580         * icall.c: MonoMethod::get_Name() implementation.
11581
11582 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11583
11584         * icall.c: String::GetHashCode() icall implementation.
11585
11586 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11587
11588         * icall.c: String::IndexOfAny icall.
11589         * object.c, object.h: make array->max_length more useful.
11590         Intrduced mono_object_class() and mono_string_length() macros.
11591
11592 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11593
11594         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11595         instead of g_unichar_isdigit.
11596
11597 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11598
11599         * icall.c: Implement a simple Double.ToString().
11600
11601 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11602
11603         * appdomain.h: only io-layer.h is supposed to be included.
11604         * icall.c: explicitly import environ. Fix warning.
11605
11606 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11607
11608         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11609                 return true even if it's not Daylight Savings time.
11610                 Only return false for the case where the function isn't
11611                 implemented for a plaform (read Windows).
11612
11613 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11614
11615         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11616         data with a mutex.
11617
11618 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11619
11620         * mempool.c (mono_mempool_alloc): only use g_malloc when
11621         absolutely necessary.
11622
11623 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11624
11625         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11626
11627         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11628         (mono_class_proxy_vtable): use domain mempool
11629
11630 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11631
11632         * appdomain.h, appdomain.c: split initialization that requires the
11633         execution engine support into mono_runtime_init().
11634
11635 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11636
11637         * class.c (mono_class_init): don't include vtable inside MonoClass
11638         to save some memory, gather some statistics.
11639         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11640
11641 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11642
11643         * icall.c: internalcall implementation for ValueType.Equals().
11644
11645 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11646
11647         * object.c (mono_message_init): moved 
11648         (mono_runtime_exec_main): new arch. independent impl.
11649         (mono_runtime_invoke_array): new method - like
11650         mono_runtime_invoke, but you can pass an array of objects.
11651         (mono_remoting_invoke): new arch. independent impl.
11652         (mono_message_invoke): new arch. independent impl.
11653         (mono_runtime_class_init): new arch. independent impl.
11654         (mono_runtime_object_init): new arch. independent impl.
11655
11656 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11657
11658         * metadata.c, object.c, reflection.c: documented the exported
11659         functions.
11660
11661 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11662
11663         * icall.c: simpler code to pass the assembly builder data to corlib.
11664         Implement GetNestedTypes() internalcall.
11665
11666 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11667
11668         * class.c: warn if a type can't be loaded.
11669
11670 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11671
11672         * image.h: typedef MonoImageOpenStatus
11673         * types.h: removed unused file
11674         
11675 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11676
11677         * icall.c: Enum_ToObject accepts enum value arguments.
11678
11679 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11680
11681         * class.c: move initialization of properties, events and nested
11682         classes, so that they happen for interfaces, too.
11683
11684 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11685
11686         * icall.c: cleanup some ugly casts in Array_SetValue*.
11687
11688 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11689
11690         * icall.c: the values array fro enums is of the correct type, now.
11691         Implement (correctly) getFullName instead of assQualifiedName for
11692         MonoType.
11693         * reflection.h, reflection.c: added mono_type_get_name ().
11694
11695 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11696
11697         * assembly.c, image.h: for each MonoImage, record from wich assembly
11698         it was loaded.
11699         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11700         Make Type.Assembly work.
11701
11702 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11703
11704         * debug-symfile.h: use char* instead of gpointer to avoid
11705         unnecessary casts.
11706
11707         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11708
11709         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11710         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11711
11712 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11713
11714         * icall.c (mono_message_init): impl. (code cleanup)
11715         (ves_icall_InternalExecute): impl. FieldGetter
11716
11717         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11718         defined we call all (non-static)methods through the vtable. 
11719
11720 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11721
11722         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11723         finalizer even though the memory is still referenced (and the chunk of
11724         memory is not freed).
11725
11726 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11727
11728         * assembly.c: fix brokeness.
11729
11730 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11731
11732         * class.c: kill some warnings. Check explicit interface method
11733         implementation also without considering the namespace.
11734         Load also literal strings in static class data.
11735
11736 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11737
11738         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11739         (default_assembly_name_resolver): Make the resolver take the
11740         "base" directory where the assembly was originally defined, so we
11741         can load DLLs that are in the same directory as the assembly that
11742         is being referenced.
11743
11744 2002-03-28  Dick Porter  <dick@ximian.com>
11745
11746         * file-io.h: 
11747         * file-io.c:
11748         * socket-io.c: 
11749         * unicode.h: 
11750         * unicode.c: Warning cleanups
11751
11752 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11753
11754         * object.h, reflection.h: use the correct type instead of MonoObject.
11755
11756 2002-03-28  Martin Baulig  <martin@gnome.org>
11757
11758         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11759         (mono_debug_update_symbol_file): Initialize classes if necessary.
11760
11761 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11762
11763         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11764         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11765
11766 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11767
11768         * assembly.h: fix function prototype.
11769         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11770         * mono-endian.h: use const cast.
11771
11772 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11773
11774         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11775
11776 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11777
11778         * loader.c: don't assert when a typeref can't be loaded, give
11779         a chance to the runtime to trow an exception instead.
11780         * loader.h: fix warning.
11781
11782 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11783
11784         * class.c (mono_class_proxy_vtable): added proxy support
11785
11786 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11787
11788         * icall.c: removed last of PAL calls, added System.Environment
11789         * file-io.h, file-io.c: MonoIO implementation
11790         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11791
11792 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11793
11794         * appdomain.c: do not use the byte marker in ldstr table lookup.
11795         * debug-helpers.c: allow two ':' to separate class and method name.
11796         * object.c: allocate arrays bounds with the GC, too.
11797         * verify: add a few more checks.
11798
11799 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11800
11801         * reflection.c: output also literal strings. Allocate parameter data
11802         with GC_malloc() (thanks, Martin, for catching this!).
11803
11804 2002-03-26  Martin Baulig  <martin@gnome.org>
11805
11806         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11807         include the `this' offset in the `param_offsets'.
11808
11809 2002-03-25  Martin Baulig  <martin@gnome.org>
11810
11811         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11812         mono_debug_get_class() function to get the classes. Added new
11813         relocation types for arrays and strings.
11814         (mono_debug_get_class): New static function to search in all
11815         referenced assemblies for a metadata token.
11816
11817         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11818
11819 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11820
11821         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11822         hold gc-allocated objects. Make the string heap a stream like the
11823         others. Removed duplicated code when writing stream info.
11824         Added asserts to catch possible buffer overflows. Set the sorted map
11825         for tables that need sorting. Added some documentation.
11826
11827 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11828
11829         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11830         for interned strings and vtables.
11831
11832 2002-03-24  Martin Baulig  <martin@gnome.org>
11833
11834         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11835         it in the array since it was created with g_slist_prepend().
11836
11837 2002-03-24  Martin Baulig  <martin@gnome.org>
11838
11839         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11840         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11841         (mono_debug_method_from_token): Renamed to
11842         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11843         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11844
11845         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11846         relocation types.
11847
11848         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11849
11850 2002-03-24  Martin Baulig  <martin@gnome.org>
11851
11852         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11853         (mono_debug_method_from_token): New func.
11854
11855         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11856         New interncall, calls mono_debug_local_type_from_signature().
11857         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11858         calls mono_debug_method_from_token().
11859
11860 2002-03-23  Martin Baulig  <martin@gnome.org>
11861
11862         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11863         specifies the number of bytes to be converted, not the array size.
11864         Return the number of chars, not the number of bytes.
11865         (ves_icall_iconv_get_chars): The `byteCount' argument
11866         specifies the number of bytes to be converted, not the array size.
11867
11868 2002-03-23  Martin Baulig  <martin@gnome.org>
11869
11870         * reflection.h (MonoReflectionSigHelper): New type.
11871
11872         * reflection.c (mono_reflection_sighelper_get_signature_local),
11873         (mono_reflection_sighelper_get_signature_local): New functions.
11874
11875         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11876         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11877         interncalls.
11878
11879 2002-03-23  Martin Baulig  <martin@gnome.org>
11880
11881         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11882         is_writeable is set.
11883         (mono_raw_buffer_update): New function to write the modified map
11884         back to disk.
11885
11886         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11887
11888         * debug-symfile.c (mono_debug_update_symbol_file): Call
11889         mono_raw_buffer_update() when done writing.
11890
11891 2002-03-23  Martin Baulig  <martin@gnome.org>
11892
11893         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11894
11895         * debug-symfile.c: Added support for arguments and local variables.
11896
11897 2002-03-23  Dick Porter  <dick@ximian.com>
11898
11899         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11900         protected by ifdefs, hence breaking the w32 build.
11901
11902 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11903
11904         * object.c: implement is_interned() the right way.
11905
11906 2002-03-21  Martin Baulig  <martin@gnome.org>
11907
11908         * debug-symfile.[ch]: New files to handle debugging information
11909         files. There's also support to dynamically update these symbol
11910         files to include machine dependent information.
11911
11912 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11913
11914         * threads.c (mono_thread_create): new function to create thread
11915         from C
11916
11917 2002-03-20  Martin Baulig  <martin@gnome.org>
11918
11919         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11920         method is a constructor.
11921         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11922         points to ves_icall_InternalInvoke().
11923
11924 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11925
11926         * file-io.c: Flush shouldn't throw exceptions.
11927
11928 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11929
11930         * file-io.c: FileStream flush support; FileSetLength now
11931         restores file pointer.
11932
11933 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11934
11935         * class.c: set image for pointer classes.
11936
11937 2002/03/19  Nick Drochak <ndrochak@gol.com>
11938
11939         * sysmath.c: Forgot one.
11940
11941 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11942
11943         * sysmath.c: Avoid redefining existing names.
11944
11945 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11946
11947         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11948         handled by runtime as icall rather than dllimport from libm.so
11949         * file-io.c, file-io.h: fixed handle argument type.
11950
11951 2002-03-18  Dick Porter  <dick@ximian.com>
11952
11953         * reflection.c (mono_image_get_type_info): rename interface to
11954         iface, because of "#define interface struct" on windows.
11955
11956 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11957
11958         * class.c, class.h: rename and export mono_ptr_class_get().
11959         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11960         * reflection.c, reflection.h, icall.c: better/saner type name
11961         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11962         method signatures.
11963
11964 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11965
11966         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11967
11968         * icall.c (ves_icall_InternalInvoke): impl.
11969
11970 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11971
11972         * reflection.c: output the interface map table, too.
11973
11974 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11975
11976         * class.c (class_compute_field_layout): separate computation of 
11977         static field layout
11978
11979 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11980
11981         * icall.c: added System.Buffer support.
11982         * file-io.c: moved file icalls from PAL to FileStream.
11983
11984 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11985
11986         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11987
11988 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11989
11990         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11991
11992 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11993
11994         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11995
11996 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11997
11998         * debug-helpers.{c,h}: moved here from monograph some useful functions
11999         to locate a method by name/signature in a class or image. Included
12000         also a small and flexible IL disassembler.
12001
12002 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12003
12004         * reflection.c: fixup tokens in methods with small header size, too.
12005
12006 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
12007
12008         * object.c (mono_string_to_utf8): remove assert(!error), instead
12009         print a warning. 
12010
12011 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
12012
12013         * icall.c: update to the new mono_Array_class_get interface.
12014
12015 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12016
12017         * appdomain.c, object.c: Boehm-GC enable.
12018         * icall.c: make get_data_chunk() support split data requests.
12019         Ensure a class is initialized in more cases. Return only the first
12020         property found in GetProperties() or the compiler gets confused. 
12021         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
12022         * reflection.h, reflection.c: add fixup mechanism for field and method
12023         tokens. Initialize assembly->typeref in a single place. Output
12024         properties after events. Support custom attributes for events, too.
12025         Typo fix for paramter custom attrs.
12026
12027 2002-03-07  Martin Baulig  <martin@gnome.org>
12028
12029         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
12030
12031 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
12032
12033         * class.c (mono_array_class_get): fix. for multi. dim. arrays
12034
12035 2002-03-06  Martin Baulig  <martin@gnome.org>
12036
12037         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
12038         non-zero lower bounds. See testcases #F10-#F13.
12039
12040 2002-03-05  Martin Baulig  <martin@gnome.org>
12041
12042         * exception.c (mono_get_exception_argument_out_of_range): New exception.
12043
12044         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
12045         ves_icall_System_Array_GetValue(), only calculate the absolute array position
12046         here.
12047         (ves_icall_System_Array_SetValue): Likewise.
12048         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
12049         as argument and does the actual work. This function is used when copying a
12050         multi-dimensional array.
12051         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
12052         now do all the widening conversions of value types.
12053         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
12054
12055 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12056
12057         * class.c: remove some magic numbers and use the smbolic names,
12058         instead. Added init_events() to load event info at class init time.
12059         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
12060         and mono_metadata_methods_from_event().
12061         * reflection.h, reflection.c: added support for writing out the evnets
12062         related information.
12063
12064 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
12065
12066         * reflection.h, icall.c: use a different method (GetInterfaces)
12067         to gather interface info and add isbyref, isprimitive and
12068         ispointer to the ves_icall_get_type_info() return value.
12069
12070 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12071
12072         * class.h: stared adding support for events.
12073         * icall.c: split find_members implementation. Added debug icall to get
12074         the address of an object.
12075         * reflection.c: handle TypeBuilders in mono_type_get_object().
12076
12077 2002-03-01  Martin Baulig  <martin@gnome.org>
12078
12079         * icall.c (ves_icall_System_Array_GetLength): This must throw an
12080         ArgumentOutOfRangeException(), not an ArgumentException().
12081         (ves_icall_System_Array_GetLowerBound): Likewise.
12082         (ves_icall_System_Array_GetValue): Improved argument checking.
12083         (ves_icall_System_Array_SetValue): Improved argument checking.
12084
12085 2002-03-01  Martin Baulig  <martin@gnome.org>
12086
12087         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
12088         called with invalid arguments rather than just dying with g_assert().
12089         (ves_icall_System_Array_SetValue): Likewise.
12090         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
12091         raise a NotImplementedException instead.
12092         (ves_icall_System_Array_GetLength): Added argument checking.
12093         (ves_icall_System_Array_GetLowerBound): Added argument checking.
12094
12095 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
12096
12097         * object.h (mono_assert): new macros mono_assert and
12098         mono_assert_not_reached
12099
12100 2002-02-28  Martin Baulig  <martin@gnome.org>
12101
12102         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
12103         and "System::String::IsInterned" to "System::String::_IsInterned".
12104
12105 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
12106
12107         * icall.c: remove hacks for typebuilder. Added icall to create a
12108         modified type from a tybebuilder.
12109         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
12110         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
12111         to create a backing MonoClass for a TypeBuilder.
12112
12113 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12114
12115         * class.c, class.h: more refactoring of class init.
12116         Export mono_class_setup_mono_type() and mono_class_setup_parent().
12117
12118 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
12119
12120         * marshal.c, marshal.h: start of marshaling interface.
12121
12122 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12123
12124         * icall.c: fix order in assembly qualified name icall.
12125
12126 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12127
12128         * class.c: do not free str, since we store it in the hash table.
12129         * reflection.h: add label field to MonoILExceptionInfo.
12130         * reflection.c: handle references to more than one assembly. Handle
12131         case when there isn't a module created in the assembly.
12132
12133 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
12134
12135         * class.c: Fix typo. Start refactoring of class init code.
12136
12137 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
12138
12139         * appdomain.c: exit with 1 on error.
12140         * class.c: we already have the name in MonoClassField.
12141         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
12142         MonoStreamHeader instead of an offset of image->raw_metadata.
12143
12144 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
12145
12146         * appdomain.c (mono_init): Be even more descriptive about the error.
12147
12148 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
12149
12150         * appdomain.c: give the user an informative message when corlib can't
12151         be loaded.
12152
12153 2002-02-26  Martin Baulig  <martin@gnome.org>
12154
12155         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12156         New icall to get the time zone data.
12157
12158 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12159
12160         * reflection.c: set virtual and raw size of section correctly.
12161         * threads.c: transfer domain information to newly created threads.
12162
12163 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12164
12165         * class.c: when instancing a class in a domain, load the default
12166         vaules for static fields from the constant table. Fix System.Enum to
12167         not be an enum.
12168         * icall.c: implement Object::GetType() internalcall. Implemented
12169         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
12170         Fixed checking of binding flags in find_members().
12171         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
12172         * reflection.c: handle enumerations when writing to the constant
12173         table. Use a different object cache for types.
12174
12175
12176 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
12177
12178         * object.c (mono_object_isinst): fix for arrays
12179
12180         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
12181
12182 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12183
12184         * object.c: don't use mprotect ()  and fix intern pool hash table
12185         lookup for big endian systems.
12186
12187 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12188
12189         * icall.c: change type_is_subtype_of () signature.
12190
12191 2002-02-21  Mark Crichton  <crichton@gimp.org>
12192
12193         * rand.c, rand.h: Added random number generator for
12194         System.Security.Cryptography classes.
12195
12196         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12197
12198         * icall.c: Added System.Security.Cryptography calls.
12199
12200 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12201
12202         * class.c, icall.c, metadata.c: better support for pointer types.
12203         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12204         * reflection.c: Add support for getting custom attrs for properties
12205         and simplify some code.
12206
12207 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12208
12209         * icall.c: change getToken () and add custom attribute GetBlob()helper
12210         method.
12211         * reflection.h: add custom attrs array to the reflection builder structures.
12212         * reflection.c: encode and emit custom attributes for all the relevant
12213         reflection objects. Cache fieldref and methodref tokens. Change
12214         mono_image_create_token() interface to take a MonoDynamicAssembly.
12215         More complete custom attributes decoder. Load custom attributes for
12216         Assembly, Field, Method and Constructor objects, too. Make the
12217         returned array an Attribute[] one, not object[]. Added
12218         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12219         custom attribute constructor.
12220
12221 2002-02-20  Dick Porter  <dick@ximian.com>
12222
12223         * icall.c:
12224         * rawbuffer.c:
12225         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12226         problem code out for now).
12227
12228 2002-02-19  Radek Doulik  <rodo@ximian.com>
12229
12230         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12231
12232 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12233
12234         * icall.c: register the GetCustomAttributes method.
12235         * object.c, object.h: add mono_string_new_len ().
12236         * reflection.h, reflection.c: added mono_runtime_invoke(),
12237         mono_install_runtime_invoke(). Added
12238         mono_reflection_get_custom_attrs () to load custom attributes and
12239         create the attribute objects.
12240
12241 2002-02-19  Dick Porter  <dick@ximian.com>
12242         * threads-dummy-types.c:
12243         * threads-dummy-types.h:
12244         * threads-dummy.c:
12245         * threads-dummy.h:
12246         * threads-pthread-types.c:
12247         * threads-pthread-types.h:
12248         * threads-pthread.c:
12249         * threads-pthread.h:  Deleted obsolete files
12250
12251 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12252
12253         * class.c (mono_class_vtable): runtime init the class when we
12254         allocate static class data.
12255
12256         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12257
12258         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12259         and String - but we will need generic marshalling support in the
12260         future. 
12261         (mono_init): set the domain name in a ms compatible way
12262
12263         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12264         String[].
12265
12266 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12267
12268         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12269         for sizes
12270
12271         * appdomain.c (mono_domain_unload): impl.
12272
12273 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12274
12275         * appdomain.c, object.c: fix intern pool implementation.
12276         * class.c: fix alignment code.
12277
12278 2002-02-16  Radek Doulik  <rodo@ximian.com>
12279
12280         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12281         and s2 > s1, just copy lower bytes to be compatible with little
12282         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12283         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12284
12285         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12286         force big_endian to be 1 for big endian machines 
12287         (ves_icall_iconv_new_decoder): ditto
12288
12289 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12290
12291         * socket-io.c (convert_sockopt_level_and_name): If the system
12292         doesn't define SOL_IP or SOL_TCP, get them by hand using
12293         getprotobyname() and caching the values (because this could be a
12294         slow operation).
12295         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12296         Use the appropriate struct when the system does support it. Ie,
12297         not all systems have struct ip_mreqn so use struct ip_mreq when
12298         appropriate.
12299
12300 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12301
12302         * reflection.c: handle finally clauses.
12303
12304 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12305
12306         * socket-io.c: use g_snprintf() instead of snprintf.
12307
12308 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12309
12310         * reflection.c (mono_param_get_objects): Cast second argument to
12311         mono_method_get_param_names to a const char** to silence the
12312         compiler warning.
12313
12314         * appdomain.c (mono_domain_assembly_open): Put parens around the
12315         truth statement in the for-loop.
12316
12317         * unicode.c (iconv_convert): Got rid of a compiler warning about
12318         int i being unused when the system has a new iconv.
12319         (iconv_get_length): Same.
12320
12321         * image.c (load_class_names): Cast the second argument to
12322         g_hash_table_insert() to char* to hush compiler warnings about the
12323         arg being a const.
12324         (mono_image_open): Same here.
12325
12326         * socket-io.c: Don't conditionally include sys/filio.h or
12327         sys/sockio.h here anymore since we now get them from
12328         io-layer/io-layer.h
12329         (inet_pton): If the system doesn't support inet_aton, implement
12330         using inet_addr and also #define INADDR_NONE if it isn't defined
12331         by the system.
12332
12333 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12334
12335         * metadata.c, metadata.h: added function to get packing and size info
12336         of a typedef.
12337         * reflection.h, reflection.c: handle field RVA data. Save info about
12338         the table layout if needed. Assign typedef indexes to all the types
12339         before dumping the info about them to avoid forward reference problems.
12340
12341 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12342
12343         * socket-io.c (convert_sockopt_level_and_name): ifdef
12344         SO_ACCEPTCONN because it is not defined on my system (old debian)
12345
12346 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12347
12348         * opcode.c: use stddef.h to get NULL.
12349
12350 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12351
12352         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12353         for FIONBIO, FIONREAD and SIOCATMARK.
12354         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12355         define INADDR_NONE and besides, inet_addr() is deprecated and
12356         should not be used. Use inet_pton() instead - it also has the
12357         added bonus that it can easily handle IPv6 addresses as well.
12358         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12359
12360 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12361
12362         * decimal.c: remove _MSC_VER conditional.
12363
12364 2002-02-13  Dick Porter  <dick@ximian.com>
12365
12366         * socket-io.c: 
12367         * icall.c: Internal calls for Blocking, Select, Shutdown,
12368         GetSocketOption and SetSocketOption
12369
12370 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12371
12372         * assembly.cs: better resolver: use it instead of some kludgy
12373         code.
12374
12375 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12376
12377         * reflection.c: the best way to speed-up the compiler is to avoid
12378         infinite loops.
12379
12380 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12381
12382         * class.c (mono_class_vtable): changed the object layout
12383         (obj->vtable->class). 
12384         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12385
12386 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12387
12388         * assembly.c: look for assemblies in the assembly dir, too.
12389
12390 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12391
12392         * class.c: fix thinko in mono_class_from_type().
12393
12394 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12395
12396         * exception.h, exception.c: added TypeLoadException.
12397         * object.h, object.c: added mono_array_clone ().
12398         * icall.c: handle throwOnError in AssemblyGetType().
12399         Added Array.Clone().
12400         * opcode.h, opcode.c: use a single value for the opcode val.
12401         Compile fix for non-gcc compilers.
12402
12403 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12404
12405         * opcodes.c, opcodes.h: export interesting info about opcodes.
12406
12407 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12408
12409         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12410         icalls. 
12411
12412         * class.c (class_compute_field_layout): set element_class for enums
12413         (mono_class_create_from_typedef): set element_class for normal classes
12414
12415         * icall.c (ves_icall_System_Enum_get_value): impl.
12416
12417         * class.c (mono_class_create_from_typedef): do not set valuetype
12418         flag for System.ValueType and System.Enum
12419
12420 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12421
12422         * unicode.c (iconv_convert): fix big endian problem.
12423
12424 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12425
12426         * class.c: add asserts if we are ever going to scribble over memory.
12427         * socket-io.c: not all systems have AF_IRDA defined.
12428
12429 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12430
12431         * class.c (class_compute_field_layout): do not consider static
12432         fields to compute alignment
12433
12434 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12435
12436         * appdomain.c (mono_appdomain_get): impl.
12437         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12438
12439 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12440
12441         * icall.c: ignore "file://" prefix when loading an assembly.
12442
12443 2002-01-23  Dick Porter  <dick@ximian.com>
12444
12445         * socket-io.c:
12446         * icall.c:
12447         * Makefile.am: Added socket support
12448
12449 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12450
12451         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12452         code back.  This should return the assemblies that are loaded by
12453         the runtime on behalf of an application domain. 
12454
12455         The current implementation is still broken, it just returns every
12456         assembly loaded, but until we get real applications domain this
12457         will do.
12458
12459 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12460
12461         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12462         AppDomain object.
12463
12464 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12465
12466         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12467         the mono_class_from_name lookup.
12468         (ves_icall_get_parameter_info): ditto.
12469         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12470         method.
12471         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12472
12473 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12474
12475         * class.c: load also nested classes on class init.
12476         System.ValueType instance methods gets passed boxed
12477         values, unless methods in derived classed that get a pointer to the
12478         data.
12479         * icall.c: use better name parsing code in GetType().
12480         * image.c, image.h: add mono_image_loaded ().
12481         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12482         * reflection.c, reflection.h: added mono_reflection_parse_type().
12483
12484 2002-01-22  Veronica De Santis <veron78@interfree.it>
12485
12486         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12487         * threads.c : Added the implementation of internal calls for events
12488         * threads.h : Added prototypes of internal calls for events
12489         
12490 2002-01-21  Radek Doulik  <rodo@ximian.com>
12491
12492         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12493
12494 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12495
12496         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12497         (mono_class_value_size): use min_align
12498
12499 2002-01-20  Dick Porter  <dick@ximian.com>
12500
12501         * threads.h:
12502         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12503         so it compiles on w32.
12504
12505 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12506
12507         * metadata.c (mono_type_stack_size): impl.
12508
12509         * class.c (mono_class_get_field): impl. memberref token
12510
12511 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12512
12513         * icall.h : Added the internal calls mapping for CreateMutex_internal
12514                     and ReleaseMutex_internal.
12515         * threads.h : Added the prototype of mutexes internal calls.
12516         * threads.c : Added the implementations of mutexes internal calls.
12517
12518 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12519
12520         * metaparse.h: removed unused file.
12521         * reflection.c, reflection.h: added stream_data_align () function 
12522         to align data in streams and keep stream aligned. Add support for
12523         exception support in method headers.
12524
12525 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12526
12527         * unicode.c: make iconv_convert () return the number of bytess written
12528         in the output buffer.
12529
12530 2002-01-15  Dick Porter  <dick@ximian.com>
12531         * threads.c: Make the runtime's idea of infinite timeouts coincide
12532         with the class library's
12533
12534         Fix a particularly egregious bug in mono_thread_cleanup(). That
12535         code was so utterly bogus it must have been written on a Monday.
12536
12537 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12538
12539         * reflection.h: add subtypes field to TypeBuilder.
12540         * reflection.c: encode constants for literal fields.
12541         Handle subtypes. Fix user string token (and add a zero byte)
12542         at the end.
12543         
12544 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12545
12546         * class.c (mono_class_init): bug fix: assign slot numbers for
12547         abstract methods.
12548
12549 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12550
12551         * reflection.c: don't try to output a code RVA for abstract methods.
12552         Small fixes for method header format. Output parameter info to the
12553         ParamDef table. Save method overriding info to MethodImpl table.
12554         Fix property support. Allow typedef.extends to be a type in the
12555         building assembly.
12556         * verify.c: fix off-by-one error.
12557
12558 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12559
12560         * class.c: fix mono_class_from_mono_type () for szarray types.
12561         Remove unused cache check in mono_class_from_type_spec().
12562         * icall.c: *type_from_name () functions handle simple arrays and byref.
12563         * reflection.c: handle byref and szarray types. Handle methods without
12564         body (gets P/Invoke compilation working). Handle types and fields in
12565         get_token ().
12566         * reflection.h: add rank to MonoTypeInfo.
12567
12568 2002-01-10  Dick Porter  <dick@ximian.com>
12569
12570         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12571         internal calls
12572
12573 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12574
12575         * icall.c: initialize class in type_from_handle ().
12576         Loop also in parent classes for get_method ().
12577         * reflection.c: properly encode class and valuetype types.
12578         Start on encoding TypeBuilder types. Handle fieldrefs.
12579         Use correct length when registering a user string.
12580         Handle ConstructorBuilder and MonoMethod in get_token ().
12581         Make mono_type_get_object () aware of cached types.
12582         * object.c: back out change to mono_string_new ().
12583
12584 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12585         * object.c: mono_string_new should return a NULL when the string 
12586         passed in is NULL -- not try to deference it.
12587         
12588 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12589
12590         * icall.c: hack to make IsSubType work for TypeBuilders.
12591         * reflection.c: emit constructors before methods.
12592         Retrieve param names in mono_param_get_objects().
12593
12594 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12595
12596         * Makefile.am: fix list of headers and sources so automake 1.5
12597         doesn't complain. Removed \# at end of list.
12598
12599 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12600
12601         * reflection.c: get token for a method ref. Set return type of
12602         constructor to void.
12603         * loader.c: debug message.
12604         * class.c: typo fix.
12605
12606 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12607
12608         * icall.c: fix array init with rank > 1. FindMembers
12609         loops in parent class as well.
12610         * image.c: do not insert nested types in name cache.
12611         * reflection.c: warning fix.
12612         * reflection.h: add override method (for interface impl).
12613
12614 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12615
12616         * metadata.c: fix customattr decoding.
12617
12618 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12619
12620         * rawbuffer.cs: Added native Win32 implementation, avoids using
12621         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12622
12623 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12624
12625         * class.c: make the low-level routines handle the cache.
12626
12627 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12628
12629         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12630
12631 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12632
12633         * class.c: fix mono_array_element_size() for objects.
12634         * class.h, class.c: add properties to MonoClass and load them
12635         at init time.
12636         * icall.c: check with isinst() when assigning a value to an array
12637         instead of requiring the classes to match exactly.
12638         Implemented icall for System.Type::GetType().
12639         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12640         enums. Handle bindingflags when looking for methods and fields.
12641         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12642         and mono_metadata_methods_from_property().
12643         * reflection.h, reflection.c: added structures for propreties,
12644         parameters and enums. Implemented mono_property_get_object() and
12645         mono_param_get_objects().
12646
12647 2001-12-18  Dick Porter  <dick@ximian.com>
12648
12649         * file-io.c: Use mono_string_to_utf16() instead of
12650         mono_string_chars()
12651
12652         * object.c: Added mono_string_to_utf16(), which copies the non
12653         NULL-terminated MonoString into a new double-null-terminated
12654         buffer.
12655
12656 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12657
12658         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12659
12660 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12661
12662         * file-io.c: raise exceptions if handle is invalid.
12663
12664 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12665
12666         * assembly.c: yet another check for mscorlib.
12667         * class.c, class.h: load nesting info for classes.
12668         * icall.c: many new functions to support the Reflection classes.
12669         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12670         * reflection.h, reflection.c: mono_image_create_token(),
12671         mono_assembly_get_object(), mono_type_get_object(),
12672         mono_method_get_object(), mono_field_get_object(): methods to return
12673         objects that parallel the C representation of assemblies, types,
12674         methods, fields.
12675
12676 2001-12-11  Dick Porter  <dick@ximian.com>
12677
12678         * icall.c:
12679         * file-io.c: Internal calls for file IO.
12680
12681 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12682
12683         * tabledefs.h: missing FileAttributes.
12684         * verify.h, verify.c: use is_valid_string () to simplify and check for
12685         valid strings more correctly. Fix warnings and speeling.
12686         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12687         Check code: branches, maxstack, method calls.
12688
12689 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12690
12691         * object.c (mono_object_allocate): removed static, so that the jit
12692         can allocate value types.
12693
12694         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12695
12696 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12697
12698         * class.c: init enum types right away and register the
12699         token->MonoClass map in mono_class_create_from_typedef ().
12700         * verify.h, verify.c: first cut of the verifier.
12701         * pedump.c: add --verify switch to verify metadata tables.
12702         * tabledefs.h: add some missing enums.
12703
12704 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12705
12706         * class.c (mono_install_runtime_class_init): impl.
12707         (mono_class_init): renamed mono_class_metadata_init to
12708         mono_class_init, also removed the metadata_inited flag
12709
12710         * object.c (mono_object_isinst): use faster algorithm
12711
12712 2001-11-30  Radek Doulik  <rodo@ximian.com>
12713
12714         * mono-endian.h: reverted last change
12715         added function prototypes
12716
12717         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12718         add mono-endian.c back
12719
12720         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12721         for unaligned access, I've mistaked it with endianess. I am
12722         sorry.
12723         (mono_read16): fix reverted endianess
12724         (mono_read64): ditto
12725         (mono_read32): ditto
12726
12727 2001-11-30  Dick Porter  <dick@ximian.com>
12728
12729         * exception.c: Implement mono_exception_from_name()
12730
12731 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12732
12733         * metadata.h, metadata.c: remove params_size and locals_size and their
12734         calculation from the metadata code: they are only usefult to the
12735         interp.
12736
12737 2001-11-29  Radek Doulik  <rodo@ximian.com>
12738
12739         * object.c (mono_ldstr): swap bytes here, it's probably not the
12740         best place, but works for me now, I'll redo it once I know mono
12741         better, also note that I add PROT_WRITE and don't reset back, also
12742         note that it's only affects big endians, so x86 should be OK
12743
12744         * mono-endian.h (read16): use just glib macros for both endians
12745
12746         * mono-endian.c: removed as glib macros are used in in
12747         mono-endian.h so we don't need to care about endianess for read
12748         macros as glib does that for us already
12749
12750 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12751
12752         * class.h, class.h: take minimum alignment into consideration so
12753         that the fields of a class remain aligned also when in an array.
12754
12755 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12756
12757         * loader.h, loader.c: add mono_method_get_param_names().
12758         * class.c: 0-init class fields.
12759
12760 2001-11-26  Dick Porter  <dick@ximian.com>
12761
12762         * icall.c:
12763         * threads-types.h:
12764         * threads.c: New file that handles System.Threading on all platforms
12765
12766         * object.c: 
12767         * object.h: Remove the synchronisation struct from MonoObject,
12768         replace it with a pointer that gets initialised on demand
12769
12770         * Makefile.am: Replace all the system-specific threading code with
12771         a single file that uses the new wrapper library
12772
12773 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12774
12775         * class.c, class.h: add mono_install_trampoline() so that the runtime
12776         can register a function to create a trampoline: removes the ugly
12777         requirement that a runtime needed to export arch_create_jit_trampoline.
12778         * object.h, object.c: added mono_install_handler() so that the runtime
12779         can install an handler for exceptions generated in C code (with
12780         mono_raise_exception()). Added C struct for System.Delegate.
12781         * pedump.c: removed arch_create_jit_trampoline.
12782         * reflection.c: some cleanups to allow registering user strings and
12783         later getting a token for methodrefs and fieldrefs before the assembly
12784         is built.
12785         * row-indexes.h: updates and fixes from the new ECMA specs.
12786
12787 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12788
12789         * class.h, class.c: add enum_basetype field to MonoClass.
12790         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12791         to get index in the constant table reated to a field, param or
12792         property.
12793         * reflection.h, reflection.c: handle constructors. Set public-key and
12794         version number of the built assembly to 0.
12795         * row-indexes.h: update from new ECMA spec.
12796
12797 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12798
12799         * class.h, class.c: add a max_interface_id to MonoClass.
12800         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12801         since it's used to do that. Added mono_type_type_from_obj().
12802         Make GetType() return NULL instead of segfaulting if the type was not
12803         found. Handle simple arrays in assQualifiedName.
12804         * object.h: add a struct to represent an Exception.
12805         * reflection.c: output call convention in method signature.
12806         Add code to support P/Invoke methods and fixed offsets for fields.
12807
12808 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12809
12810         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12811         the value.
12812         * icall.c: use mono_array_addr instead of array->vector: fixes the
12813         reflection image writing.
12814         * reflection.c: init call convention byte to 0 in method signature.
12815         Encode the property signature. Don't output property-related methods
12816         twice. Really process the properties for a type (don't cast a field to
12817         a property, my mom always told me that).
12818         Fix 64 bit issues in pointer alignment in a different and more
12819         readable way.
12820
12821 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12822
12823         * loader.h: Removed type class from MonoDefaults, added monotype
12824
12825         * loader.c: Loaded MonoType, removed loading of Type
12826
12827         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12828         and fills in System.Type._impl with a RuntimeTypeHandle rather
12829         than the actual MonoClass *
12830
12831         (ves_icall_type_from_handle): change from type_class to
12832         monotype_class
12833
12834         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12835         implemented
12836
12837         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12838         implemented
12839
12840         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12841
12842         (ves_icall_System_Reflection_Assembly_GetType): implemented
12843
12844         (ves_icall_System_MonoType_assQualifiedName): implemented
12845
12846         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12847
12848 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12849
12850         * assembly.c (mono_assembly_open): Implement a cache for the
12851         assemblies. 
12852
12853         (mono_assembly_close): only destroy the assembly when the last
12854         reference is gone.
12855         
12856 2001-11-09  Dick Porter  <dick@ximian.com>
12857
12858         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12859
12860 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12861
12862         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12863
12864 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12865
12866         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12867         from Martin Weindel.
12868         * object.h: add mono_string_chars ().
12869
12870 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12871
12872         * reflection.c (build_compressed_metadata): Eliminates warnings
12873         and uses 64-bit clean code.
12874
12875         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12876         (mono_type_equal): Change signature to eliminate warnings.
12877
12878 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12879
12880         * icall.c, loader.c: remove the internalcall array constructors.
12881         Changes to match the new MonoArray structure.
12882         * object.h, object.c: an array object doesn't allocate an extra
12883         vector. Add mono_array_new_full () to create jagged arrays easily.
12884
12885 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12886
12887         * metadata.h, metadata.c: add mono_metadata_field_info () to
12888         retreive all the info about a field from vairous tables.
12889         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12890         * class.h, class.c: augment MonoClassField with more info.
12891         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12892         policy and load a field's RVA if needed.
12893
12894 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12895
12896         * class.c (mono_class_metadata_init): create a trampoline for all
12897         virtual functions instead of actually compiling them.
12898
12899 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12900
12901         * class.h, class.c: include name in MonoClassField.
12902         * class.c: fix fundamental type of System.Object and System.String.
12903         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12904         tokens in ldtoken.
12905         * icall.c: remove internalcalls for the Reflection stuff that is now
12906         done in C# code.
12907         * loader.c: mono_field_from_memberref () implementation.
12908         * mono-endian.c: thinko (s/struct/union/g).
12909         * object.c, object.h: make the mono_string_* prototypes actually use
12910         MonoString instead of MonoObject.
12911         * reflection.c, reflection.h: updates for changes in the reflection
12912         code in corlib: we use C structures that map to the actual C# classes.
12913         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12914         fat method header if needed and use the info from the ILGenerator for
12915         methods. Handle fields in types. Misc fixes.
12916
12917 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12918
12919         * class.c (mono_class_metadata_init): bug fix: always allocate
12920         space for static class data
12921
12922 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12923
12924         * class.c (mono_compute_relative_numbering): use relative
12925         numbering to support fast runtime type checks.
12926
12927 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12928
12929         * class.c (mono_class_create_from_typeref): added debugging output
12930         to print class name when MonoDummy is returned instead of real class
12931
12932 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12933
12934         * class.c (mono_class_metadata_init): interface offset table now
12935         contains pointers into the vtable - this is more efficient for the jit
12936
12937 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12938
12939         * class.c (mono_class_metadata_init): use a temporary vtable (the
12940         old algorithm only worked for the interpreter, but not for the jit)
12941
12942 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12943
12944         * loader.c (method_from_memberref): use mono_class_get to get the
12945         class of an array instead of using System.Array directly.
12946         (mono_get_method): also add MEMBERREF methods to the method cache
12947         which usefull for arrays.
12948
12949 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12950
12951         * pedump.c (arch_compile_method): added to compute vtable entry
12952
12953         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12954         number of interfaces.
12955         
12956         * class.h: merged MonoArrayClass into MonoClass
12957
12958         * class.c (mono_class_create_from_typedef): compute the vtable size and
12959         allocate space to include the vtable inside MonoClass
12960         (mono_class_metadata_init): initialize the vtable
12961
12962 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12963
12964         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12965         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12966         * image.c: endian fixes by Laurent Rioux.
12967         * object.h, object.c: rename MonoStringObject to MonoString and
12968         MonoArrayObject to MonoArray. Change some function names to conform to
12969         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12970         guint16* as first argument, so don't use char*.
12971         Provide macros to do the interesting things on arrays in a portable way.
12972         * threads-pthread.c: updates for the API changes and #include <sched.h>
12973         (required for sched_yield()).
12974         * icall.c: updates for the API changes above.
12975         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12976         platforms that need them.
12977
12978 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12979
12980         * class.c: set the correct type for all the fundamental
12981         type when loading the class.
12982
12983 2001-10-05  Dick Porter  <dick@ximian.com>
12984
12985         * threads-pthread.c (pthread_mutex_timedlock): Simple
12986         compatibility version for C libraries that lack this call.
12987
12988 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12989
12990         * class.c: MonoTypes stored in MonoClass are stored as
12991         fundamental MonoTypes when the class represents a
12992         fundamental type (System.Int32, ...).
12993         The TypeHandle return by ldtoken is a MonoType*.
12994         * icall.c: ves_icall_get_data_chunk () write out all the
12995         PE/COFF stuff. Implement ves_icall_define_method (),
12996         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12997         * image.c: properly skip unknown streams.
12998         * loader.h, loader.c: add type_class to mono_defaults.
12999         * metadata.c, metadata.h: export compute_size () as
13000         mono_metadata_compute_size () with a better interface.
13001         Typo and C&P fixes.
13002         * pedump.c: don't try to print the entry point RVA if there is no entry point.
13003         * reflection.c, reflection.h: many cleanups, fixes, output method
13004         signatures and headers, typedef and typeref info, compress the metadata
13005         tables, output all the heap streams, cli header etc.
13006         * row-indexes.h: typo fixes.
13007
13008 2001-10-04  Dick Porter  <dick@ximian.com>
13009
13010         * object.h: Add a synchronisation mutex struct to MonoObject
13011
13012         * object.c (mono_new_object): Initialise the object
13013         synchronisation mutexes
13014
13015         * icall.c: System.Threading.Monitor internal calls
13016         
13017         * threads-pthread.h:
13018         * threads-pthread.c: System.Threading.Monitor internal calls
13019
13020         * threads-types.h: New file, includes the system-specific thread
13021         structures
13022         
13023         * threads-pthread-types.h:
13024         * threads-pthread-types.c: New files, handle pthread-specific
13025         synchronisation types
13026
13027         * threads-dummy-types.h: 
13028         * threads-dummy-types.c: New files of dummy support for
13029         thread-specific types
13030
13031         * metadata.c:
13032         * image.c:
13033         * pedump.c: include mono-endian.h not endian.h
13034         
13035         * Makefile.am: More threads files.
13036         Name mono-endian.h not endian.h
13037
13038 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
13039
13040         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
13041         stuff and implement a few more bits.
13042         * icall.c: a field needs to be dereferenced twice. Do not use the same
13043         name for two variables in the same scope.
13044         * image.c, image.h: cleanups.
13045
13046 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
13047
13048         * class.c (mono_class_metadata_init): bug fix: compute the right size
13049
13050 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
13051
13052         * icall.c: implemented some of the Reflection internalcalls.
13053         * image.c, image.h: start writing out the PE/COFF image.
13054         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
13055         that does the reverse than decode_blob_size ().
13056         * object.c: use mono_metadata_encode_value (). Move here
13057         temporary implementation of mono_string_to_utf8 ().
13058         * rawbuffer.c: make malloc_map static.
13059
13060 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13061
13062         * metadata.c: fix type comparison for arrays.
13063         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
13064         Added a couple of new classes to monodefaults.
13065         * icall.c: added a couple of Reflection-related internalcalls.
13066         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
13067         Added a byval_arg MonoType to MonoClass.
13068
13069 2001-09-28  Dick Porter  <dick@ximian.com>
13070
13071         * icall.c:
13072         * threads-pthread.h: 
13073         * threads-pthread.c: Implemented internal calls for
13074         LocalDataStoreSlot operations.  Applied mutexes around all shared
13075         data.  Reworked the thread creation and Start() operations to
13076         avoid a race condition.
13077         
13078         * threads-dummy.h:
13079         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
13080
13081 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
13082
13083         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
13084
13085 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
13086
13087         * class.c, loader.c: warn and return NULL instead of erroring out.
13088         * icall.c: added System.AppDomain::getCurDomain().
13089         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
13090
13091 2001-09-25  Dick Porter  <dick@ximian.com>
13092
13093         * threads-pthread.h:
13094         * threads-pthread.c: Implemented timed thread joining and added
13095         System.Threading.Thread::Join_internal internal call
13096
13097         * icall.c: Added System.Threading.Thread::Join_internal internal call
13098
13099         * threads-dummy.h:
13100         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
13101
13102 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
13103
13104         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
13105         mono_string_intern () to implement the semantics of the ldstr opcode
13106         and the interning of System.Strings.
13107         * icall.c: provide hooks to make String::IsIntern and String::Intern
13108         internalcalls.
13109
13110 2001-09-23  Dick Porter  <dick@ximian.com>
13111
13112         * threads-dummy.c: 
13113         * threads-dummy.h: New files of dummy threading routines
13114
13115         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
13116         support code based on system specifics
13117
13118         Rename PTHREAD_LIBS to THREAD_LIBS
13119         
13120 2001-09-23  Dick Porter  <dick@ximian.com>
13121
13122         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
13123         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
13124         internal calls.
13125         (mono_thread_init): Set up a Thread object instance to return when
13126         the main thread calls Thread.CurrentThread
13127         (mono_thread_cleanup): Wait for all subthreads to exit
13128
13129         * icall.c: New internal calls for System.Threading.Thread::Sleep
13130         (including Schedule) and CurrentThread
13131
13132         * threads.h: New file, to insulate thread-specific stuff from the
13133         rest of the code
13134
13135 2001-09-21  Dick Porter  <dick@ximian.com>
13136
13137         * threads-pthread.h: 
13138         * threads-pthread.c: New file, for handling pthreads-style
13139         threading support.  Start() now starts a new thread and executes
13140         the ThreadStart delegate instance.
13141
13142         * icall.c: Added the internalcall for
13143         System.Threading.Thread::Start_internal
13144
13145         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
13146
13147 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
13148
13149         * loader.c: work around the different signatures for delegates
13150         constructors csc generates in compiled code vs the ones compiled in mscorlib.
13151
13152 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13153
13154         * class.h, class.c: add mono_class_get_field_from_name ().
13155         * *: Fix C comments and other ANSI C issues.
13156
13157 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
13158
13159         * endian.h, assembly.c: fix some endianness issues.
13160
13161 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
13162
13163         * loader.h, load.c: add delegate_class to mono_defaults.
13164         Handle runtime provided methods in mono_get_method ().
13165
13166 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
13167
13168         * loader.c (mono_get_method): use pinvoke for internal call
13169
13170         * icall.c: use pinvoke for internal call
13171
13172         * loader.c (method_from_memberref): set the method name
13173
13174 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
13175
13176         * metadata.c: help the compiler generate better code for
13177         mono_class_from_mono_type ().
13178
13179 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
13180
13181         * class.c (mono_class_metadata_init): delayed computing of the
13182         class size to mono_class_metadata_init ()
13183
13184 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
13185
13186         * class.c, class.h: add an interfaces member to MonoClass.
13187         * image.c, image.h: add assembly_name field to MonoImage
13188         from the assembly table.
13189         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
13190
13191 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13192
13193         * class.c: Handle Array in mono_class_from_mono_type ().
13194         * metadata.c, pedump.c: some endian fixes.
13195
13196 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13197
13198         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13199         * metadata.c: fix small problem introduced with the latest commit.
13200
13201 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13202
13203         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13204         We don't need a MonoMetadata pointer anymore to compare signatures in
13205         mono_metadata_signature_equal (), update callers.
13206         Reduced memory usage an number of allocations for MonoMethodHeader and
13207         MonoMethodSignature.
13208
13209 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13210
13211         * metadata.c: added compare for szarray.
13212
13213 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13214
13215         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13216         and add a couple more types to it and mono_defaults. Give an hint on
13217         classes that need implementing in our corlib and are referenced
13218         in mscorlib.
13219
13220 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13221
13222         * class.h, class.c: keep track if a class is also an Enum.
13223         * loader.c: Implement a couple more types for use in libffi
13224         marshalling. Gives better diagnostics when failing to dlopen
13225         a library. Set method->klass for P/Invoke methods, too.
13226
13227 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13228
13229         * class.c, class.h: add a MonoType this_arg to MonoClass that
13230         represents a pointer to an object of the class' type that
13231         can be used by the interpreter and later the type cache.
13232         Add best guess alignment info for valuetype objects.
13233
13234 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13235
13236         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13237         into MonoType: one less level of indirection and allocation and
13238         simplifies quite a bit of code. Added cache for MonoTypes that are
13239         used frequently, so that we don't need to allocate them all the time.
13240
13241 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13242
13243         * class.c (mono_class_create_from_typedef): System.Enum is also a
13244         value type, although it does not derive from System.ValueType
13245         (maybe a bug in the ms compiler?)
13246
13247         * metadata.c (mono_type_size): return the right size for value types
13248
13249         * loader.c (mono_get_method): only initialize method header if not abstract
13250
13251         * class.c (mono_class_from_mono_type): use mono_default values. 
13252
13253 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13254
13255         * *: use MonoClass pointers instead of <type_tokens>
13256         
13257         * class.h: new flag: metadata_inited.
13258
13259         * class.c (mono_class_metadata_init): impl.
13260         (mono_class_instance_size): impl.
13261         (mono_class_data_size): impl.
13262
13263 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13264
13265         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13266         MonoClass now has the name and name_space fields. 
13267         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13268         mono_get_method () takes and optional MonoClass as argument.
13269         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13270         instead that takes advantage of a map from class names to typedef
13271         tokens in MonoImage.
13272
13273 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13274
13275         * metadata.c: zero is not a valid alignment boundary.
13276         Merge MONO_TYPE_VOID in default decoding code.
13277
13278 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13279
13280         * image.h: merged MonoMetadata into MonoImage
13281
13282         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13283         identify the type of elements.
13284
13285 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13286
13287         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13288         * cil-coff.h: split MonoMSDOSHeader and add size info.
13289         * image.c: add some consistency checks.
13290         * metadata.c: fix row size computation: one programmer
13291         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13292         add explanation for the locator routine.
13293         Fix decoding of size in method header.
13294         
13295 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13296
13297         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13298         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13299         function from gnome-libs.  This uses the right path separator
13300         based on the OS, and also works around a bug in some systems where
13301         a double slash is not allowed. 
13302         (default_assembly_name_resolver): Use g_concat_dir_and_file
13303         (mono_assembly_open): ditto.
13304
13305 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13306
13307         * metadata.c (mono_metadata_signature_equal): impl.
13308
13309         * *: void is now a realy MonoType (instead of using NULL)
13310         
13311         * metadata.c (do_mono_metadata_parse_type): use
13312         mono_metadata_parse_type to parse void value.
13313
13314 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13315
13316         * metadata.c, metadata.h: in the signature and method header store
13317         only the space required for holding the loca vars and incoming arguments.
13318
13319 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13320
13321         * metadata.c (do_mono_metadata_parse_type): treat void like any
13322         other type (instead of assigning NULL);
13323
13324 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13325
13326         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13327
13328 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13329
13330         * image.c (do_mono_image_open): added a cache for arrays.
13331
13332 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13333
13334         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13335         decode a single column from a row in a metadata table and changes
13336         to take advantage of it in the typedef locator (gives a nice speed up).
13337         Store offset info for function params.
13338
13339 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13340
13341         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13342
13343 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13344
13345         * assembly.c: how could mono_assembly_close () had ever worked?
13346         * metadata.c, metadata.h: provide offset info for local vars.
13347         Implement mono_type_size () to take care of alignment as well
13348         as size (it was mono_field_type_size in cli/class.c before).
13349
13350 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13351
13352         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13353
13354         * assembly.h (CORLIB_NAME): set to corlib.dll
13355
13356         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13357
13358 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13359
13360         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13361         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13362         tokentype.h: massive namespace cleanup.
13363
13364 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13365
13366         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13367
13368 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13369
13370         * metadata.c (mono_metadata_free_type): added check for type !=
13371         NULL (void) before calling mono_metadata_free_type()
13372
13373 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13374
13375         * metadata.h, row_indexes.h: added header with enumerations to use
13376         to index in the columns from tables in metadata and to decode coded
13377         tokens: we should start using this instead of embedding magic numbers
13378         all over the code.
13379
13380 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13381
13382         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13383         Move metadata_t info from cli_image_info_t to MonoImage, where
13384         it's easily accessible. Changed all the uses accordingly.
13385         Added the method and class caches to MonoImage.
13386         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13387         and mono_metadata_decode_value () signature to be more consistent
13388         with the other parse functions (and simplify code). Taken advantage
13389         of zero-length array allocation with GCC. Removed reduntant (and
13390         wrong) MonoFieldType struct and use MonoParam instead. Changed
13391         mono_metadata_parse_field_type () to use common code for parsing.
13392         Added mono_metadata_typedef_from_field () and
13393         mono_metadata_typedef_from_method () to lookup a typedef index from a
13394         field or method token.
13395         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13396
13397 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13398
13399         * metadata.c (mono_metadata_parse_field_type): Implement. 
13400         (do_mono_metadata_parse_type): Split engine from
13401         mono_metadata_parse_type, so that we can create smaller structures
13402         for things that just have one pointer to the MonoType (look at
13403         the MonoFieldType)
13404
13405 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13406
13407         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13408         as Jan Gray found out, it is incorrect. 
13409
13410 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13411
13412         * assembly.c: Implement asssembly loading.  This loads an image
13413         and loads all the referenced assemblies.  Come to think of it, we
13414         could always do lazy loading of the assemblies. 
13415
13416         * image.c (mono_image_open): Keep loaded images in a hashtable.
13417
13418         * image.h (MonoImage): Add reference count.
13419
13420 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13421
13422         * assembly.c (mono_assembly_open): Keep track of the file name in
13423         case the assembly has no ASSEMBLY table.
13424
13425         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13426         from get.c here.
13427
13428 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13429
13430         * metadata.c, metadata.h: decode local vars in method header
13431         parse function. Change callers accordingly.
13432
13433 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13434
13435         * metadata.h, cil-coff.h: protect against multiple inclusion.
13436         Added some new structures to hold information decoded from metadata:
13437         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13438         and relevant decoding/free functions.
13439         * metadata.c: implement decoding functions. Add warning for out of bounds
13440         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13441         all the info about a method signature and invocation. Remove check on
13442         uninitialized local var in parse_mh() and fix memory leak.
13443
13444 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13445
13446         * metadata.h: More macros.
13447
13448         * tokentype.h: New file.
13449
13450 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13451
13452         * assembly.c: added a consistency check and initialize
13453         some structures with g_new0().
13454         * metadata.c: fixed a couple more bugs in table size computation
13455         and add other checks for out-of bound access to metadata.
13456
13457 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13458
13459         * metatada.c: fix bugs computing table sizes. Spew a
13460         warning when index in string heap is out of bounds.
13461
13462 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13463
13464         * metadata.h: Add a couple of macros to manipulate tokens. 
13465
13466 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13467
13468         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13469         cli_section_tables).
13470
13471 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13472
13473         * metadata.c (mono_metadata_user_string): New function, provides
13474         access to the UserString heap. 
13475
13476 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13477
13478         * metadata.c: Add inline documentation.
13479
13480 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13481
13482         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13483         files. 
13484
13485 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13486
13487         * typeattr.h: New file, TypeAttribute flags. 
13488
13489 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13490
13491         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13492         mono_assembly_ensure_section): Section loading code.
13493         (load_section_tables): Load the sections.
13494
13495         * mono/metadata/metadata.c (mono_metadata_locate_token,
13496         mono_metadata_locate): Functions to locate the information
13497         definition given a token or a table and an index.
13498         (mono_metadata_compute_table_bases): New.
13499         (compute_size): New function to compute the sizes of the various
13500         tables.
13501
13502         * mono/metadata/metadata.h: Finish listing the different index
13503         types. 
13504
13505         * mono/metadata/pedump.c: Improve to dump new information.
13506
13507 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13508
13509         * mono/metadata/metadata.c: Entered all the tables matching
13510         Beta2. 
13511
13512         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13513