2005-01-12 Martin Baulig <martin@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2005-01-12  Martin Baulig  <martin@ximian.com>
2
3         * class-internals.h (mono_class_create_generic_2): Removed
4         function prototype, this function is now static inside class.c.
5
6         * class.c (mono_class_create_generic_2): Made this static, only
7         call it from mono_class_init() and mono_class_setup_parent().
8         (collect_implemented_interfaces_aux): Call mono_class_init() on
9         the interfaces we collect.
10         (mono_class_setup_vtable): Call mono_class_init (class->parent).
11
12 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
13
14         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
15         it a real thread handle.
16
17         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
18         MonoJitExceptionInfo, since each catch clause needs its own variable.
19         
20 2005-01-11  Dick Porter  <dick@ximian.com>
21
22         * image.c (mono_pe_file_open): New variant on mono_image_open()
23         that does not set up the CLI metadata; used for FileVersionInfo so
24         it can get the data for windows binaries too.
25         
26         * process.c (process_read_string_block): Don't read off the end of
27         the StringTable block.
28
29         These both fix bug 70766.
30
31 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
32
33         * gc.c: set some fields to NULL at GC cleanup time.
34         * threads.c: if we quit the main thread, call exit ().
35
36 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
37
38         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
39
40 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
41
42         * threads.h, threads.c, object.c: added accessor and settor for
43         main_thread. Handle it specially when exiting from it: wait
44         for other foreground threads to exit.
45
46 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
47
48         * process.c, verify.c: remove some bloat.
49
50 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
51
52         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
53         the calling convention to cdecl under win32.
54
55 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
56
57         * object.c (mono_object_get_size): New function to get the size of
58         an object instance.
59
60         * profiler.c (simple_allocation): Use above.
61
62 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
63
64         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
65         ves_icall_System_AppDomain_getRootDomain (as it's not required to
66         get an appdomain by it's id and we can't assume the root's id is 0).
67         * domain-internals.h: Change the function prototype to match.
68         * icall.c: Change the icall table for AppDomain.
69
70 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
71
72         * locales.c (string_invariant_compare_char): Only compute
73         GUnicodeTypes in the case where we need them.  Test for ordinality
74         first and return if so.
75
76         From the commit:
77
78                 /*
79                  * FIXME: here we must use the information from c1type and c2type
80                  * to find out the proper collation, even on the InvariantCulture, the
81                  * sorting is not done by computing the unicode values, but their
82                  * actual sort order.
83                  */
84
85 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
86
87         * loader.c: for P/Invoke methods, allow the "Internal" shared
88         library name to refer to the calling process symbol namespace.
89
90 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
91
92         * Makefile.am: Add the security manager to the build.
93         * security-manager.c|h: New. Initialization of the security manager.
94
95 2005-01-07  Dick Porter  <dick@ximian.com>
96
97         * threads.c: 
98         * monitor.c: Update thread state during Monitor and WaitHandle
99         waits.  Fixes bug 71031.
100
101 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
102
103         * reflection.c (property_encode_signature): Correctly handle when the
104         property has no methods.
105
106 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
107
108         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
109         
110         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
111         fields from mb, not rmb. Fixes #71017.
112
113         * marshal.c (emit_ptr_to_str_conv): Add support for 
114         ByValTStr -> string conversion. Fixes #71015.
115
116         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
117
118         * mempool.c (mono_mempool_contains_addr): New helper function.
119
120 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
121
122         * metadata.c (mono_metadata_compute_size): Fix size calculation of
123         HasSematics encoded fields.
124         
125         * metadata.c (mono_type_to_unmanaged): Improve error message for 
126         invalid string marshalling.
127
128         * metadata.c: Fix warnings.
129         
130 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
131
132         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
133         profiler support.
134
135 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
136
137         * domain.c object.c domain-internals.h: Revert part of r38077 since the
138         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
139         tests.
140
141 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
142
143         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
144         so methods containing these can be AOTed.
145
146 2005-01-03  Martin Baulig  <martin@ximian.com>
147
148         * loader.c (find_method): Removed the hack for generic instances.
149         (method_from_memberref): If our parent is a generic instance, pass
150         its generic type definition to find_method() and then inflate the
151         method.
152         (mono_get_method_constrained): Pass the generic type definition to
153         find_method() and inflate the method later.
154
155         * class-internals.h (MonoStats): Added `generic_class_count'.
156
157         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
158         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
159
160         * reflection.c (mono_custom_attrs_from_params): Don't ignore
161         generic type definitions.
162
163 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
164
165         * loader.c icall.c: Fix warnings.
166
167 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
168
169         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
170         blittable types. Fixes #70864.
171
172 2004-12-29  Martin Baulig  <martin@ximian.com>
173
174         * icall.c
175         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
176
177         * reflection.c (mono_method_get_object): Create a
178         "System.Reflection.MonoGenericMethod" for inflated methods; don't
179         call mono_get_inflated_method().
180
181         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
182
183 2004-12-27  Martin Baulig  <martin@ximian.com>
184
185         * class-internals.h (MonoMethod): Added `is_inflated' flag.
186         (MonoMethodInflated): Added `inflated' field.
187
188         * class.c (mono_class_inflate_generic_method): Don't really
189         inflate the method here; just set the `is_inflated' flag in the
190         MonoMethod.
191         (mono_class_get_inflated_method): Actually inflate the method here
192         if it's not already inflated; we use the MonoMethodInflated's new
193         `inflated' field as a cache.
194
195 2004-12-26  Martin Baulig  <martin@ximian.com>
196
197         * class.c
198         (inflate_generic_class): Moved some code out of inflate_generic_type().
199         (mono_class_inflate_generic_method): If we're already inflated,
200         inflate the context and use the declaring method; ie. make sure
201         the declaring method of an inflated method is always the generic
202         method definition.
203         (mono_class_create_from_typedef): Create
204         `class->generic_container->context->gclass'.
205
206 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
207
208         * metadata-internals.h, marshal.c, reflection.c: More
209         MonoGHashTable->GHashTable.
210
211         * domain-internals.h, class.c: Change MonoGHashTable's into
212         GHashTables for some cases where no gc stuff is used
213
214         All users: update apis
215
216 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
217
218         * metadata.c (builtin_types): Make this `const'. Makes this get
219         put into the shareable section.
220         (mono_metadata_init): Casts to make gcc happy.
221
222 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
223
224         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
225
226 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
227
228         * icall.c: Added an internal call to retrieve the position and length
229         of assembly-level declarative security attributes (RequestMinimum, 
230         RequestOptional and RequestRefuse). This is used by the Assembly class
231         to re-create the corresponding permission sets.
232
233 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
234
235         * marshal.c: fix the stelemref wrapper to be type correct
236         (and faster).
237
238 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
239
240         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
241         to do key & 0x7fffffff. Hashtable already does this. It just
242         results in longer code.
243
244 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
245
246         * appdomain.c: Bump corlib version.
247         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
248         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
249         * reflection.c|h: Add functions to get declarative security infos
250         (blob position and length) for assemblies, classes and methods.
251
252 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
253
254         * reflection.c: sort the constant table (bug #70693).
255
256 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
257
258         * object-internals.h, threads.c, domain.c: add accessors for
259         the MonoThread and MonoDomain tls keys.
260
261 2004-12-18  Martin Baulig  <martin@ximian.com>
262
263         * class.c (inflate_generic_type): If we're inflating a generic
264         instance, set `ngclass->context->container = context->container';
265         ie. the container we inflated into.
266
267         * metadata.c (mono_metadata_parse_generic_param): Reflect above
268         inflate_generic_type() changes.
269
270 2004-12-17  Martin Baulig  <martin@ximian.com>
271
272         * class-internals.h
273         (MonoGenericClass): Replaced `MonoType *generic_type' with
274         `MonoClass *generic_class'.  Removed `dynamic_info'; if
275         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
276         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
277
278 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
279
280         * exception.c (mono_exception_from_token): New helper function.
281
282 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
283
284         * assembly.c (mono_assembly_load_with_partial_name): Call 
285         mono_assembly_loaded before invoking the preload hooks. Fixes
286         #70564.
287
288         * object-internals.h (MonoThread): Change culture_info and 
289         ui_culture_info into an array.
290
291         * threads.c: Cache culture info objects from more than one appdomain.
292
293         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
294         current UI culture.
295
296 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
297
298         * threads.h threads.c appdomain.c: Clear the culture_info field of
299         all threads during unloading if they point to an object in the dying
300         appdomain.
301
302 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
303
304         * culture-info.h (TextInfoEntry): New struct
305         * object-internals.h: sync with managed
306         * locales.c: fill the `text_info_data' field
307         * culture-info-tables.h: update
308
309 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
310
311         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
312         collector.
313
314 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
315
316         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
317         (ves_icall_ModuleBuilder_getMethodToken): Ditto
318
319 2004-12-12  Martin Baulig  <martin@ximian.com>
320
321         * mono-debug-debugger.c (write_type): If we're an enum and the
322         builtin types have already been initialized, call mono_class_init().
323
324 2004-12-11  Martin Baulig  <martin@ximian.com>
325
326         * metadata.c (mono_metadata_load_generic_params): Added
327         `MonoGenericContainer *parent_container' argument; automatically
328         compute `container->is_method'; pass the correct owner to
329         get_constraints().      
330
331         * reflection.c (compare_genericparam): Sort the GenericParam table
332         according to increasing owners. 
333
334 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
335
336         * profiler.c: allow disabling the default profiler.
337
338 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
339
340         * decimal.c, icall.c: allow disabling System.Decimal support.
341
342 2004-12-09  Marek Safar <marek.safar@seznam.cz>
343
344         * reflection.c: Add support for null attribute arguments.
345
346 2004-12-09  Martin Baulig  <martin@ximian.com>
347
348         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
349         names to get rid of compiler warnings.
350
351 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
352
353         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
354         mono_marshal_load_type_info (). Fixes #69625.
355         (mono_marshal_get_ptr_to_struct): Likewise.
356
357 2004-12-08  Martin Baulig  <martin@ximian.com>
358
359         * mono-debug.h: Bumped version number to 47.
360
361         * mono-debug-debugger.c
362         (mono_debugger_event_handler, mono_debugger_event): Take two
363         guint64 arguments insteed of a gpointer and a guint32.  
364
365 2004-12-08  Martin Baulig  <martin@ximian.com>
366
367         * debug-mono-symfile.h
368         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
369         `address' to `native_offset'.
370
371 2004-12-08  Martin Baulig  <martin@ximian.com>
372
373         * class.c (mono_class_create_from_typespec): Only inflate if we
374         either have `context->gclass' or `context->gmethod'.
375
376 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
377
378         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
379
380         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
381
382         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
383
384         * reflection.c (mono_assembly_get_object): Remove the workaround put
385         in for the release.
386         
387         * appdomain.c: Use the corlib_internal field from MonoAssembly.
388
389         * appdomain.c: Bump corlib version.
390
391         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
392         be visible in other appdomains.
393
394 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
395
396         * threads.c: Interlocked inc and dec for longs were messed up,
397         use a KISS based impl for this. Fixes 70234
398
399 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
400
401         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
402
403 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
404
405         * icall.c: fix to follow policy not to allow struct
406         arguments in icalls.
407
408 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
409
410         * process.c: make the patch that handles spaces in file paths work
411         on mono/windows too.
412
413 2004-12-06  Martin Baulig  <martin@ximian.com>
414
415         * class.c (mono_class_create_generic): Call
416         mono_class_setup_supertypes() if we're dynamic.
417         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
418
419 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
420
421         * object-internals.h: Add new fields to MonoThread.
422
423         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
424
425         * icall.c threads-types.h threads.c: Add new icalls.
426
427         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
428
429         * object-internals.h (MonoReflectionAssembly): Sync object layout with
430         managed side.
431
432         * appdomain.c: Bump corlib version.
433
434         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
435         internal assemblies. Fixes #69181.
436
437 2004-12-05  Martin Baulig  <martin@ximian.com>
438
439         * class.c (mono_class_inflate_generic_signature): Make this a
440         no-op if `context' is NULL or we don't have any type parameters;
441         also copy `sentinelpos'.        
442
443 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
444
445         * image.c: Add unbox_wrapper_cache.
446
447         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
448
449         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
450         function generator.
451         
452         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
453         Fixes #70173.
454
455         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
456         
457 2004-12-04  Martin Baulig  <martin@ximian.com>
458
459         * loader.c (mono_method_get_signature_full): New public function;
460         like mono_method_get_signature(), but with an additional
461         `MonoGenericContext *' argument.
462
463         * class.c (mono_class_inflate_generic_signature): Formerly known
464         as inflate_generic_signature(); make this public.
465
466 2004-12-04  Martin Baulig  <martin@ximian.com>
467
468         * metadata.c
469         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
470         instead of a `MonoGenericContainer *'.  
471         (mono_metadata_parse_array_full): Likewise.
472         (mono_metadata_parse_signature_full): Likewise.
473         (mono_metadata_parse_method_signature_full): Likewise.
474         (mono_metadata_parse_generic_inst): Likewise.
475         (mono_metadata_parse_generic_param): Likewise.
476         (mono_metadata_parse_mh_full): Likewise.
477         (mono_type_create_from_typespec_full): Likewise.
478
479 2004-12-03  Martin Baulig  <martin@ximian.com>
480
481         * class-internals.h (MonoGenericContainer): Replaced the
482         `MonoGenericContext * pointer with a `MonoGenericContext'
483         structure and made it the first element.
484
485 2004-12-03  Martin Baulig  <martin@ximian.com>
486
487         * class.c
488         (inflate_generic_type): Set the `context->container' when creating
489         a new MonoGenericContext.
490         (mono_class_inflate_generic_method): Likewise.
491         (mono_class_create_from_typespec): Just use `context->container'
492         to get the container.
493
494         * loader.c (method_from_methodspec): Set `context->parent' from
495         `context->container' - and if that's a method container, use its
496         parent.  Also set the `context->container' when creating a new
497         MonoGenericContext.
498         (mono_get_method_from_token): Use just `context->container' to get
499         the container.
500
501         * metadata.c (do_mono_metadata_parse_generic_class): Also set
502         `gclass->context->container'.
503
504         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
505         the `context->container' when creating a new MonoGenericContext.
506
507 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
508
509         * reflection.c (compare_genericparam): Sort params with identical
510         owner by their number. Fixes gen-111 on sparc.
511
512 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
513
514         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
515         around the domain changes.
516
517         * appdomain.c (mono_domain_unload): Handle the case when the thread
518         calling Unload is itself being aborted during unloading. Fixes #70022.
519
520         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
521
522         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
523         checkpoint_func as an icall so it gets a wrapper.
524         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
525         in the cross-appdomain wrappers too.
526
527         * threads.c (mono_thread_has_appdomain_ref): Make this public.
528
529         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
530
531         * reflection.c: Fix some memory leaks.
532         
533 2004-12-02  Martin Baulig  <martin@ximian.com>
534
535         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
536
537         * metadata.c (generic_class_cache): New static hashtable.
538         (mono_metadata_lookup_generic_class): New public method.
539
540 2004-12-02  Martin Baulig  <martin@ximian.com>
541
542         * class.c (mono_class_create_from_typedef): Call
543         mono_class_setup_parent() and mono_class_create_mono_type() before
544         parsing the interfaces.
545
546 2004-12-02  Martin Baulig  <martin@ximian.com>
547
548         * metadata.c (generic_inst_cache): New static hashtable.
549         (mono_metadata_lookup_generic_inst): New public function.
550         (mono_metadata_inflate_generic_inst): New public function.
551         (mono_metadata_parse_generic_inst): New public function.
552         (do_mono_metadata_parse_generic_class): Use the new
553         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
554         since this'll also use the cache.
555
556         * reflection.c (mono_reflection_bind_generic_method_parameters):
557         Use mono_metadata_lookup_generic_inst() to use the new cache.
558
559         * class.c (inflate_mono_type): Use
560         mono_metadata_inflate_generic_inst() to inflate a generic
561         instance; this'll also use the new cache.
562
563         * loader.c (method_from_methodspec): Use
564         mono_metadata_parse_generic_inst() and
565         mono_metadata_inflate_generic_inst() rather than parsing it
566         manually, so we can use the new cache.
567
568 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
569
570         * threads.c (wait_for_tids): Do not incorrectly free threads when 
571         the wait times out.
572
573 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
574
575         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
576         iter->args based on whether parameters are passed in registers (i.e.
577         MONO_ARCH_REGPARMS is defined)
578
579 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
580
581         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
582         the exception message. Fixes #70070.
583         (method_from_methodspec): Fix warnings.
584
585 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
586
587         * process.c: (complete_path) return the path quoted
588
589 2004-12-01  Martin Baulig  <martin@ximian.com>
590
591         * class-internals.h (MonoGenericInst): New structure.
592         (MonoGenericClass): Replaced `type_argc', `type_argv' and
593         `is_open' with `MonoGenericInst *inst'.
594         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
595         `is_open' with `MonoGenericInst *inst'.
596
597 2004-11-30  Martin Baulig  <martin@ximian.com>
598
599         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
600
601         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
602         to `generic_class_cache'.
603
604         * metadata.c
605         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
606         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
607         (mono_generic_inst_is_valuetype): Renamed to
608         mono_generic_class_is_valuetype().
609
610         * class-internals.h
611         (MonoGenericInst): Renamed to MonoGenericClass.
612         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
613         (MonoClass): Renamed `generic_inst' to `generic_class'.
614         (MonoGenericContext): Renamed `ginst' to `gclass'.
615
616         * object-internals.h
617         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
618
619         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
620         mono_reflection_generic_class_initialize().
621
622         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
623         now known as "System.Reflection.MonoGenericClass".
624         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
625
626 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
627
628         * class-internals.h: Added a flag field to MonoClass to cache the
629         declarative security attributes actions associated with the class.
630         * domain-internals.h: Added booleans to MonoJitInfo to cache the
631         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
632         applicable to the JITted method.
633         * reflection.c|h: Added functions to extract (as flags) which security
634         actions are available (declaratively) for a method, class or assembly.
635         * metadata.c|h: Added functions to search the declarative security
636         table in the metadata.
637         
638 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
639
640         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
641         EXPORTEDTYPES are already in the class name cache, so there is no
642         need to add extra code here to look at them. Just removes a bit of
643         cruft.
644
645         (ves_icall_System_Environment_get_TickCount): No need for #if
646         WINDOWS. We already have the code in io-layer.
647
648 2004-11-28  Martin Baulig  <martin@ximian.com>
649
650         * loader.c
651         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
652         Fixes gen-112.cs.
653
654 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
655
656         * assembly.c (do_mono_assembly_open): Instead of having a
657         conditional WITH_BUNDLE, incorporate support for bundles here, by
658         having a global `bundles' variable holding a pointer to the actual
659         bundles. 
660
661         (mono_register_bundled_assemblies): New API call used by the
662         bundle code. 
663
664         See mkbundle.1 for details.
665         
666 2004-11-27  Martin Baulig  <martin@ximian.com>
667
668         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
669         the vtable for generic methods.
670
671 2004-11-26  Martin Baulig  <martin@ximian.com>
672
673         * metadata.c
674         (mono_metadata_generic_method_hash): New public function.
675         (mono_metadata_generic_method_equal): Likewise.
676
677         * class-internals.h
678         (MonoGenericContainer): Added `GHashTable *method_hash'.
679
680         * reflection.c (ReflectionMethodBuilder): Added
681         `MonoGenericContainer *generic_container'.
682         (reflection_methodbuilder_to_mono_method): Don't create a new
683         MonoGenericContainer each time we're called.
684         (mono_reflection_bind_generic_method_parameters): Use
685         `container->method_hash' to cache the results so we don't create a
686         different method if we're called several times with the same
687         arguments.
688
689         * loader.c (method_from_methodspec): Use the new
690         `container->method_hash' here, too.
691
692 2004-11-26  Martin Baulig  <martin@ximian.com>
693
694         * class.c (inflate_generic_signature): Correctly compute
695         `res->has_type_parameters'.
696         (mono_class_vtable): Use the `has_type_parameters' flag to
697         determine whether we're a generic method.
698
699         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
700
701 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
702
703         * object.c (mono_runtime_run_main): Fix a small memory leak.
704
705 2004-11-25  Martin Baulig  <martin@ximian.com>
706
707         * class.c (set_generic_param_owner): Fixed the loop.
708
709 2004-11-25  Martin Baulig  <martin@ximian.com>
710
711         * object.c (mono_class_vtable): Don't create any JIT wrappers for
712         generic methods.
713
714 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
715
716         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
717         names. Fixes #69787.
718
719 2004-11-24  Martin Baulig  <martin@ximian.com>
720
721         * class.c (mono_class_create_generic_2): If we don't have a
722         `ginst->parent', inflate `gklass->parent' to get our parent.
723
724 2004-11-24  Martin Baulig  <martin@ximian.com>
725
726         * reflection.c (compare_genericparam): Correctly sort the
727         GenericParam table; fixes #69779.
728
729 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
730
731         * reflection.c: When writing a PE file, don't create a huge
732         buffer in memory. Just write the arrays we have to the file.
733         This reduces memory usage.
734
735         * metadata-internals.h: MonoDynamicStream pefile is no longer used
736         globally.
737
738 2004-11-17  Martin Baulig  <martin@ximian.com>
739
740         * class.c (mono_class_init): Don't setup `class->parent' for
741         dynamic instances; moved this to mono_class_generic_2().
742         (mono_class_create_generic): Also set `klass->inited' for dynamic
743         generic instances.
744         (mono_class_create_generic_2): Don't do anything for dynamic
745         generic instances.  Set `klass->parent' here and also call
746         mono_class_setup_parent() here. 
747
748         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
749         `MonoType *parent' argument; set `ginst->parent' before calling
750         mono_class_create_generic_2(), so we set the correct parent.
751
752 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
753
754         * reflection.c: allow getting attributes from ModuleBuilder
755         (used by ikvm).
756
757 2004-11-17  Martin Baulig  <martin@ximian.com>
758
759         * class.c (mono_class_create_from_typedef): If a type parameter is
760         inherited from an outer class, set its owner to that class.
761
762 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
763
764         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
765           for (int*) written size. This fixes bug #69592.
766
767 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
768
769         * icall.c: Added IsAuthenticodePresnet internal call.
770         * image.c|h: New function that check a MonoImage for an Authenticode
771         signature in the certificate PE data directory.
772         * security.c|h: New internal call to ask the runtime if an 
773         Authenticode signature seems referenced in the PE header.
774
775 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
776
777         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
778
779         * reflection.c (mono_image_create_pefile): Free the assembly streams
780         after writing out the assembly file.
781
782         * object.c (mono_runtime_run_main): Fix small memory leak.
783
784         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
785         property access modifiers. Fixes #69389.
786
787 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
788
789         * domain.c, object.c, object-internals.h, domain-internals.h,
790         object.h, marshal.c: keep dynamic code info per domain.
791
792 2004-11-15  Martin Baulig  <martin@ximian.com>
793
794         * class.c (mono_type_get_name_recurse): Put type arguments in
795         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
796         see bug #68387.
797
798 2004-11-15  Martin Baulig  <martin@ximian.com>
799
800         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
801         (mono_class_setup_vtable): When computing `the_cname' for a
802         generic instance, don't include the namespace since we'd otherwise
803         add it twice.
804
805 2004-11-15  Martin Baulig  <martin@ximian.com>
806
807         * class.c (mono_class_create_generic): Changed return type to void.
808         (mono_class_create_generic_2): New public function; setup
809         `class->method', `class->field' and `class->interfaces' here
810         instead of in mono_class_init().
811
812         * class.h (mono_class_create_generic): Moved to class-internals.h.
813
814 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
815
816         * reflection.c (mono_image_create_pefile): take a file HANDLE.
817         rather than writing to memory, write to this file. Right now,
818         we are just writting into a buffer, and copying that. However
819         we can avoid the buffer later.
820
821         (mono_dynamic_stream_reset): new function
822
823         * icall.c, object-internals.h: update for the above.
824
825 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
826
827         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
828         have been using gc'd memory. First it is slower, unlikely
829         the comment in the source code said, secondly, it increases
830         our footprint to do it in the gc.
831
832         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
833         the method so that it does not have to copy to managed code.
834
835 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
836
837         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
838
839 2004-11-12  Martin Baulig  <martin@localhost>
840
841         * reflection.c (mono_image_create_token): Allow generic method
842         definitions here, since they may appear in an `.override'; see
843         gen-98/gen-99 for an example.
844
845 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
846
847         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
848         #69365.
849
850         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
851         descriptive.
852
853 2004-11-11  Martin Baulig  <martin@ximian.com>
854
855         * class.c (mono_class_setup_vtable): In an explicit interface
856         implementation, the method name now includes the arity.
857
858 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
859
860         * object.c (mono_array_full_copy): Fix warning.
861
862 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
863
864         * appdomain.c: Removed look_for_method_by_name(). Use the new method
865         mono_class_get_method_from_name() instead.
866         
867         * class-internals.h: Added two new types of wrappers. 
868         Added MonoRemotingTarget enum. Added new trampoline function type, which
869         takes an additional MonoRemotingTarget value as parameter, so it is
870         possible to request a trampoline for a specific target.
871         
872         * class.c: Added new mono_class_get_method_from_name() method.
873         
874         * class.h: In MonoRemoteClass, we can have now to vtables, one for
875         general remoting sinks and one specific for cross domain calls.
876         
877         * debug-helpers.c: Added new wrapper names.
878         
879         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
880         of a remote class.
881         
882         * image.c: Porperly delete value objects form the remoting invoke hashtable.
883         
884         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
885         with several other methods (mono_marshal_get_xappdomain_dispatch,
886         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
887         and others) can generate a fast remoting wrapper for cross domain calls.
888         More information can be found in docs/remoting.
889         Other changes: Removed mono_find_method_by_name, and used
890         mono_class_get_method_from_name instead.
891         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
892         is stored in the remoting invoke hashtable.
893         
894         * marshal.h: published the new method for getting the xdomain wrapper,
895         and also added a method for getting the adequate wrapper for a given
896         method and target.
897         
898         * object-internals.h, object.c: Added a couple of methods for capying and
899         cloning arrays.
900         Modified mono_install_remoting_trampoline, which takes the new remoting
901         trampoline that has a remoting target as parameter.
902         mono_class_proxy_vtable now also takes a remoting target as parameter, and
903         will return the most suitable vtable for the target.
904         Added mono_remote_class_vtable, which returns the vtable of a remote class
905         (which can be the normal remoting vtable or the xdomain vtable).
906         
907         * threads.c: the xdomain invoke and dispatch wrappers must also be
908         protected against interruptions.
909
910 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
911
912         * icall.c: use memmove in BlockCopyInternal when the source and
913         destination arrays are the same.
914
915 2004-11-09  Martin Baulig  <martin@ximian.com>
916
917         * class-internals.h (MonoGenericContainer): Removed `method' and
918         `signature', replaced them with `is_method' and `is_signature'
919         flags.  Added `context'.
920
921         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
922         instead of a `MonoGenericContainer *'.
923
924         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
925         for dynamic type parameters.
926         (mono_metadata_load_generic_params): Setup `container->context'.
927
928         * reflection.c (mono_reflection_setup_generic_class): Setup
929         `tb->generic_container->context'.
930         (do_mono_reflection_bind_generic_parameters): Use
931         mono_class_inflate_generic_type() to correctly inflate types,
932         rather than using our own hack just for MONO_TYPE_VAR.
933
934 2004-11-09  Martin Baulig  <martin@ximian.com>
935
936         * class.c (mono_class_inflate_generic_method): Small fix; don't
937         crash here.
938
939         * icall.c
940         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
941         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
942         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
943         (ves_icall_Type_BindGenericParameters): Likewise.
944         (ves_icall_Type_get_IsGenericInstance): Likewise.
945         (ves_icall_Type_GetGenericParameterPosition): Likewise.
946         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
947         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
948         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
949
950 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
951
952         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
953         assembly versions and public key tokens. Fixes #69113.
954
955 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
956
957         * metadata.c: fix bug introduced with the type cache changes
958         on 2004-11-06.
959
960 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
961
962         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
963         the MonoClass pointer instead of the token in exception clauses.
964         * reflection.c: updates for the above and make the code not depend
965         on the structure of MonoExceptionClause.
966
967 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
968
969         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
970         Add support for dynamic assemblies. Fixes #69114.
971
972         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
973
974 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
975
976         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
977         since most only those methods use it. the code member of
978         MonoMethodPInvoke was dead, so that can be removed too. Also,
979         remove inline_count (again, not used), and move slot so that it
980         can share bits with some other flags. This saves 8 bytes in the
981         structure and gives us about 50 kb back for mcs helloworld.cs
982
983         * *.[ch]: Do naming changes for the above.
984
985         * loader.c (mono_method_get_header): Lazily init the header
986         on first access.
987         (mono_get_method_from_token): don't init the header here
988         (mono_free_method): the header may never be allocated
989
990         Overall, this saves 150 kb of unmanaged allocations
991         for mcs helloworld.cs. That accounts for 10% of the unmanaged
992         memory at runtime.
993         
994         * loader.c, loader.h (mono_method_get_header): new accessor.
995
996         * *.[ch]: use the above method. Prepares us to lazily load
997         the header.
998
999         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
1000         three warnings, which are actual bugs (see 69206).
1001
1002         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
1003         unused. Saves a cool 4 bytes / method.
1004
1005 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
1006
1007         * metadata.c (builtin_types): Add types for System.Object here.
1008         (mono_metadata_parse_type_full): Cache MonoType*'s that are
1009         for a class or valuetype from klass->this_arg or klass->byval_arg.
1010
1011         On mcs for a hello world, this gets us down from 21836 MonoType's
1012         to 14560.
1013
1014         (mono_metadata_free_type): Account for the above change.
1015
1016 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
1017
1018         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
1019         exception instead of asserting if name is null.
1020         (ves_icall_System_AppDomain_GetData): Ditto.
1021
1022 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
1023
1024         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
1025         EnumBuilder.
1026
1027         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
1028         Return NULL when the domain does not have entry_assembly set.
1029
1030         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
1031         Add a 'resource_modules' argument.
1032         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
1033
1034         * reflection.c (mono_reflection_create_runtime_class): Move setting
1035         of wastypebuilder here, so mono_get_type_object () returns a MonoType
1036         for enums too.
1037
1038         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
1039         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
1040         Throw an ArgumentNullException if 'ptr' is null.
1041
1042         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
1043         assemblies here. Fixes #69020.
1044
1045 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
1046
1047         * reflection.c (build_compressed_metadata): Fix the previous patch for
1048         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
1049         the stack.
1050
1051 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
1052
1053         * assembly.c (mono_assembly_names_equal): Allow a match if one of
1054         the cultures is false. Fixes #69090.
1055
1056         * reflection.c (build_compressed_metadata): Fix invalid memory read 
1057         detected by valgrind.
1058         
1059         * reflection.c (mono_reflection_get_type): Avoid triggering a 
1060         TypeResolve multiple times for the same type. Fixes #65577.
1061
1062 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
1063
1064         * marshal.c: Avoid using ldftn to call managed functions. It is
1065         much slower than just a call.
1066
1067         * reflection.c (mono_module_get_object): free the basename we
1068         allocate here from glib.
1069         
1070         * reflection.c (ensure_runtime_vtable): make sure to free
1071         overrides.  Also, we were allocating an array of MonoMethod not an
1072         array of MonoMethod*.
1073
1074         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
1075
1076         * image.c (mono_image_close): free image->guid here.
1077
1078 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
1079
1080         * reflection.c: Fix some spec conformance issues with the PE file
1081         structures so mcs compiled apps run on the Net 2.0 beta.
1082
1083 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
1084
1085         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
1086         Implement this. Fixes #67264.
1087
1088         * debug-helpers.h debug-helpers.c marshal.c: Move 
1089         mono_find_method_by_name to debug-helpers.c.
1090
1091 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
1092
1093         * object.c (mono_release_type_locks): type_initialization_hash is
1094         a GHashTable.
1095
1096         * reflection.c object.c object-internals.h: Fix warnings.
1097
1098         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
1099         without accessors. Fixes #61561.
1100
1101         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
1102         application base from the root domain if not set. Fixes #65641.
1103         (mono_runtime_init): Fix warning.
1104
1105 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1106
1107         * appdomain.c: call mono_thread_pool_init.
1108         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1109         of worker threads based on the number of CPUs and the environment
1110         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1111         for non-windows (windows) systems.
1112
1113 2004-10-27  Chris Toshok  <toshok@ximian.com>
1114
1115         * mono-debug-debugger.c (write_class): don't call mono_class_init
1116         here, as even with the check for (!klass->init_pending), we get
1117         into a situation where we're hitting cycles in class
1118         initialization.  Fixes #68816.
1119
1120 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1121
1122         * image.c: Avoid overwriting values in the loaded_images_hash when an
1123         assembly is loaded multiple times. Fixes #61152.
1124
1125         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1126         so multiple satellite assemblies for the same name can be loaded.
1127         Fixes #68259.
1128
1129         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1130         not NULL.
1131
1132         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1133         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1134
1135         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1136         pending finalizers are not invoked after the appdomain has been 
1137         unloaded. Fixes #67862.
1138
1139 2004-10-22  Martin Baulig  <martin@ximian.com>
1140
1141         * mono-debug-debugger.c
1142         (mono_debugger_runtime_invoke): Don't box valuetypes.
1143
1144 2004-10-22  Chris Toshok  <toshok@ximian.com>
1145
1146         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1147         don't hide private methods.
1148
1149 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1150
1151         * icall.c: Allows the runtime to "share" (when known) the public key
1152         token of an assembly. This avoid the need to recalculate the token 
1153         (from the public key) in managed code.
1154
1155 2004-10-21  Chris Toshok  <toshok@ximian.com>
1156
1157         * debug-helpers.c (append_class_name): argh, revert last patch.
1158         
1159 2004-10-21  Chris Toshok  <toshok@ximian.com>
1160
1161         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1162         not '/', so that it matches what the debugger uses to look up
1163         methods.
1164
1165 2004-10-21  Martin Baulig  <martin@ximian.com>
1166
1167         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1168         public method; this is called each time an exception is thrown and
1169         allows the debugger to use exception catch points.
1170
1171 2004-10-21  Martin Baulig  <martin@ximian.com>
1172
1173         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1174         the stack pointer and the exception object in some struct and pass
1175         that to the debugger.
1176
1177 2004-10-21  Chris Toshok  <toshok@ximian.com>
1178
1179         * mono-debug-debugger.c (do_write_class): add instance/static
1180         event support.  We don't expose "raise" or "other" yet.
1181         (event_is_static): new method.
1182
1183 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1184
1185         * mono-debug-debugger.c
1186         (mono_debugger_handle_exception): Remove
1187         bogus return value for fussy compilers.
1188
1189 2004-10-20  Martin Baulig  <martin@ximian.com>
1190
1191         * mono-debug-debugger.c
1192         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1193         (mono_debugger_handled_exception): Likewise.
1194
1195 2004-10-20  Martin Baulig  <martin@ximian.com>
1196
1197         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1198         MONO_DEBUGGER_EVENT_EXCEPTION.
1199
1200         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1201         public function to send the debugger a notification for an
1202         exception and inform it about a catch/finally clause.
1203
1204 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1205
1206         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1207         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1208         fix 2.95 build. 
1209
1210         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1211
1212 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1213
1214         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1215         marshalled as [In,Out]. Fixes #58325.
1216
1217 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1218
1219         * reflection.c (mono_method_body_get_object): Implement some fields.
1220
1221 2004-10-12  Martin Baulig  <martin@ximian.com>
1222
1223         * reflection.c (mono_reflection_bind_generic_parameters): Small
1224         fix, correctly retrieve our parent from a generic instance.
1225
1226 2004-10-12  Martin Baulig  <martin@ximian.com>
1227
1228         * metadata.c (mono_metadata_generic_param_equal): We always have
1229         an owner.
1230
1231         * class.c
1232         (mono_class_from_generic_parameter): We need to have an owner.
1233         (my_mono_class_from_generic_parameter): Likewise.
1234
1235         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1236         mono_reflection_create_generic_class() and added a new
1237         mono_reflection_setup_generic_class().  
1238         (mono_reflection_initialize_generic_param): If we're a nested
1239         generic type and inherited from the containing class, set our
1240         owner to the outer class.
1241
1242 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1243
1244         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1245
1246         * reflection.c (mono_method_body_get_object): New function to create
1247         a MethodBody object.
1248
1249         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1250
1251 2004-10-11  Martin Baulig  <martin@ximian.com>
1252
1253         * metadata.c (_mono_metadata_type_equal): Renamed to
1254         do_mono_metadata_type_equal() and made static.
1255
1256 2004-10-11  Martin Baulig  <martin@ximian.com>
1257
1258         * appdomain.c: Bump corlib version number to 28.
1259
1260 2004-10-10  Martin Baulig  <martin@ximian.com>
1261
1262         * class-internals.h
1263         (MonoGenericInst): Added `MonoGenericContainer *container'.
1264         (MonoGenericMethod): Likewise.
1265         (MonoGenericContext): Likewise.
1266         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1267
1268         * metadata.c
1269         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1270         (do_mono_metadata_parse_generic_inst): Likewise.
1271         (mono_metadata_parse_type_full): New public method.  This is the actual
1272         mono_metadata_parse_type() implementation - with an additional
1273         `MonoGenericContainer *' argument.
1274         (mono_metadata_parse_array_full): Likewise.
1275         (mono_metadata_parse_signature_full): Likewise.
1276         (mono_metadata_parse_method_signature_full): Likewise.
1277         (mono_metadata_parse_mh_full): Likewise.
1278         (mono_type_create_from_typespec): Likewise.
1279         (mono_metadata_interfaces_from_typedef_full): New public method;
1280         this is similar to the other _full() methods, but we take a
1281         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1282         (mono_metadata_parse_generic_param): Take an additional
1283         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1284         from that container.
1285         (mono_metadata_generic_param_equal): New static method to compare
1286         two type parameters.
1287         (_mono_metadata_type_equal): New static method; takes an
1288         additional `gboolean signature_only' argument - if true, we don't
1289         compare the owners of generic parameters.
1290         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1291         with a TRUE argument - do a signature-only comparision.
1292
1293         * loader.c: Use the new _full() methods and pass the
1294         MonoGenericContainer to them.
1295
1296         * object-internals.h (MonoReflectionTypeBuilder): Added
1297         `MonoGenericContainer *generic_container' field.
1298         (MonoReflectionMethodBuilder): Likewise.
1299
1300 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1301
1302         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1303         case initial images of dynamic assemblies.
1304
1305         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1306
1307         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1308
1309         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1310         length of event->other array.
1311         (typebuilder_setup_events): Ditto.
1312
1313         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1314         'assembly_by_name' and add an 'assemblies' list.
1315
1316         * assembly.h assembly.c: Add a new search hook for determining whenever
1317         an assembly is already loaded. Use this instead of searching in the
1318         loaded_assemblies list.
1319
1320         * domain.c appdomain.c: Implement the new search hook so loaded 
1321         assemblies are now scoped by appdomain. Fixes #67727.
1322
1323 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1324
1325         * threads.c (mono_thread_attach): Initialize synch_lock field so
1326         mono_thread_detach works again.
1327
1328         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1329         'lib' too. Fixes #63130.
1330
1331 2004-10-06  Jackson Harper  <jackson@ximian.com>
1332
1333         * culture-info-tables.h: regenerated.
1334
1335 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1336
1337         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1338         implemented by other interfaces in the result. Fixes #65764.
1339         
1340         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1341         Handle unloadable modules without crashing.
1342
1343         * image.c (load_modules): Revert the previous patch since modules must
1344         have a fixed index inside the array.
1345         
1346         * image.c (load_modules): Don't include native modules in the modules
1347         array.
1348
1349 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1350
1351         * reflection.h: Add param_defaults field.
1352
1353         * reflection.c: Add support for parameter defaults in dynamic methods.
1354         Fixes #64595.
1355
1356         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1357         an empty string when a type has no namespace. Fixes #64230.
1358
1359 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1360
1361         * tabledefs.h: Added "internal" security actions to support non-CAS
1362         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1363         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1364
1365 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1366
1367         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1368         constructor of abstract class. Fixes #61689.
1369
1370 2004-10-04  Martin Baulig  <martin@ximian.com>
1371
1372         * class-internals.h (MonoGenericContainer): New type.
1373         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1374         `MonoGenericContainer *generic_container'.
1375         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1376         `MonoGenericContainer *generic_container'.
1377
1378         * metadata.c (mono_metadata_load_generic_params): Return a
1379         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1380         removed the `num' argument.
1381
1382 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1383
1384         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1385         for dynamic images.
1386
1387         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1388         machine fields.
1389
1390         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1391
1392         * reflection.c: Save pe_kind and machine values into the generated
1393         image file.
1394
1395         * appdomain.c: Bump corlib version number.
1396
1397         * object-internals.h: Reorganize layout of LocalBuilder.
1398
1399         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1400         New helper function.
1401
1402         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1403         created MonoType for dynamic types. Fixes #66180.
1404
1405 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1406
1407         * threadpool.c: the ares hashtable needs a critical section around it.
1408         this prevents some nasty segfaults
1409
1410 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1411
1412         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1413         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1414         bug 67324).
1415         
1416 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1417
1418         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1419         
1420 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1421
1422         * image.c: Always canonicalize image file names, to avoid loading
1423         the same assembly twice when referenced using a relative path.
1424
1425 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1426
1427         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1428
1429         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1430
1431         * marshal.c: Fix warnings.
1432
1433 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1434
1435         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1436         attempting to marshal the delegate_trampoline as the method_addr.
1437         This patch has a static hashtable of marshalled delegates so that 
1438         we can map delegate_trampoline addresses back to delegates.  This
1439         allows a delegate passed to managed code to be passed back into native
1440         code.  Fixes #67039
1441
1442 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1443
1444         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1445
1446         * reflection.c (method_encode_code): Align method headers properly.
1447         Fixes #66025.
1448
1449 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1450
1451         * marshal.c: In the runtime invoke wrapper, reset the abort
1452         exception if it is cached. This avoids the automatic rethrowal of 
1453         the exception after the catch of the wrapper. Also check for pending
1454         interruptions before calling the managed method. This is done using
1455         the new method emit_thread_force_interrupt_checkpoint, since the
1456         normal checkpoint method is ignored when running the invoke wrapper.
1457         * object.c: If the abort exception is rethrown, set the abort_exc
1458         field of the thread, so it will be rethrown aftere every catch.
1459         * threadpool.c: Only run an interruption checkpoint if what has been
1460         requested is a stop of the thread (aborts will be ignored).
1461         * threads.c: By default, a thread will now never be interrumped while
1462         running the runtime invoke wrapper (this ensures that runtime_invoke
1463         will always return to the caller if an exception pointer is provided).
1464         There is a new special method mono_thread_force_interruption_checkpoint()
1465         to force an interruption checkpoint even if running a protected
1466         wrapper, which is used by the same runtime invoke wrapper to do a check
1467         at a safe point.
1468
1469 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1470
1471         * object.c, object-internals.h: Implemented mono_release_type_locks,
1472         which releases the cctor locks held by a thread.
1473         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1474         by a thread. Added mono_thread_exit() method to be used to safely stop
1475         a thread.
1476
1477 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1478
1479         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1480         Move null check before dereference.  Avoid indexing beyond the end
1481         of the 'modules' array.
1482
1483 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1484
1485         * metadata-internals.h (MonoImage): Add module_count field.
1486         * image.c (load_modules): Set image->module_count.
1487         (mono_image_load_file_for_image): Use image->module_count.
1488         * reflection.c (mono_image_load_module): Append to image->modules array 
1489         of dynamic assembly.
1490         (mono_module_get_object): Fix loop to actually increment index.
1491         Use image->module_count.
1492         * assembly.c (mono_assembly_load_references): Use image->module_count.
1493         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1494         Likewise.
1495
1496 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1497
1498         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1499         Avoid assert on generic types.
1500
1501 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1502
1503         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1504
1505         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1506
1507         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1508         function to convert a MarshalSpec structure to its managed counterpart.
1509
1510         * reflection.c: Fix warnings.
1511         
1512         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1513         field.
1514
1515         * icall.c (mono_create_icall_signature): Fix build.
1516
1517 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1518
1519         * icall.c: Add MakePointType icall.
1520
1521         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1522         warnings.
1523
1524 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1525
1526         * threadpool.c: reuse allocated slots in the queue.
1527
1528 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1529
1530         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1531
1532         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1533
1534         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1535         previous change.
1536
1537         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1538         ThrowOnUnmappableChar.
1539
1540         * icall.c (ves_icall_Type_GetPacking): New icall.
1541
1542 2004-09-24  Martin Baulig  <martin@ximian.com>
1543
1544         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1545
1546 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1547
1548         * appdomain.c:
1549         (mono_domain_set): allow setting a domain that is being unloaded.
1550         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1551         being unloaded.
1552
1553 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1554
1555         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1556         the GetCustomAttributes icall.
1557
1558 2004-09-23  Martin Baulig  <martin@ximian.com>
1559
1560         * object-internals.h (MonoReflectionGenericParam): Replaced
1561         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1562         with `guint32 attrs'.
1563
1564 2004-09-23  Martin Baulig  <martin@ximian.com>
1565
1566         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1567
1568 2004-09-23  Martin Baulig  <martin@ximian.com>
1569
1570         * object-internals.h (GenericParameterAttributes): New enum.
1571
1572 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1573
1574         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1575         
1576         * class.c (init_events): Fill out event->other field.
1577
1578         * class.c: Fix warnings.
1579
1580         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1581
1582 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1583
1584         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1585         walk which doesn't supply the IL offset.
1586
1587 2004-09-22  Martin Baulig  <martin@ximian.com>
1588
1589         * reflection.c (mono_reflection_setup_internal_class): If we're
1590         System.ValueType, System.Object or System.Enum, set
1591         `klass->instance_size' and create the vtable.
1592         (mono_reflection_create_internal_class): If we're an enum type,
1593         get the base class from our current corlib.
1594
1595 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1596
1597         * reflection.h (MonoResolveTokenError): New type.
1598
1599         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1600         icall.
1601
1602         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1603
1604 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1605
1606         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1607         Support also calling constructors, but only for already allocated objects.
1608
1609 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1610
1611         * reflection.c (type_get_qualified_name): If the klass is null
1612         return the typename to avoid a NullRefEx.
1613         (encode_cattr_value): Get the qualified name of the boxed type,
1614         not the underlying enumtype.  Fixes #62984.
1615
1616 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1617
1618         * marshal.c: Fix problems with previous checkin.
1619
1620 2004-09-21    <vargaz@freemail.hu>
1621
1622         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1623         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1624
1625         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1626
1627 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1628
1629         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1630         should only return a type for pointers, arrays, and passbyref types.
1631         Fixes bug #63841.
1632
1633 2004-09-21  Martin Baulig  <martin@ximian.com>
1634
1635         * domain.c (mono_debugger_check_runtime_version): New public
1636         function.
1637
1638         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1639
1640 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1641
1642         * reflection.c: Added missing sort to the declarative security 
1643         attributes table. MS implementation stops seeing the attributes if the
1644         token number regress in the table (as shown by ildasm and permview).
1645
1646 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1647
1648         * object-internals.h (MonoReflectionModule): Add 'token' field.
1649         
1650         * reflection.c (mono_reflection_get_token): Add support for Module
1651         and Assembly.
1652         (mono_module_get_object): Set 'token' field.
1653         (mono_module_file_get_object): Set 'token' field.
1654
1655         * icall.c: Add new Assembly and Module icalls.
1656
1657         * appdomain.c: Bump corlib version.
1658
1659 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1660
1661         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1662         tokens of metadata objects.
1663
1664         * reflection.h reflection.c (mono_reflection_get_token): New function
1665         to obtain the token of a metadata object.
1666
1667         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1668
1669 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1670
1671         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1672         
1673         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1674
1675 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1676
1677         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1678         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1679         AssemblyBuilder to access the permissions set in the class lib.
1680         * reflection.c: Added security attributes encoding step in 
1681         mono_image_build_metadata.
1682         * tabledefs.h: Added new security actions defined in 2.0:
1683         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1684
1685 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1686
1687         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1688         macro parameter.
1689
1690 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1691  
1692         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1693           finalized. There where random SIGSEVs at program termination, when
1694           an object being finalized was trying to do a string comparison and
1695           the current culture was already finalized.
1696  
1697 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1698
1699         * threads.c: call thread_cleanup before finishing the thread if we get
1700         there.
1701
1702 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1703
1704         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1705         assemblies from the parent. Fixes #65665.
1706
1707 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1708
1709         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1710         modifiers.
1711
1712 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1713
1714         * reflection.h: add prototype for mono_get_dbnull_object
1715         * reflection.c: add prototypes for get_default_param_value_blobs 
1716         and mono_get_object_from_blob for fussier compilers
1717
1718 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1719  
1720         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1721         false deadlock checks in class initialization.
1722  
1723 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1724
1725         * image.c (mono_image_addref): Fix comment.
1726
1727         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1728         possible.
1729
1730 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1731
1732         * reflection.c (mono_param_get_objects): Modified to return
1733         ParameterInfo.DefaultValue object.
1734
1735         (get_default_param_value_blobs):
1736         (mono_get_object_from_blob):
1737         (mono_get_dbnull_object): New helper routines. 
1738
1739         * object.c (mono_get_constant_value_from_blob): New helper routine
1740         carved out from get_default_field_value ()
1741
1742         * object-internals.h (mono_get_constant_value_from_blob): Added
1743         function declaration.
1744
1745 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1746
1747         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1748         referenced assemblies. Fixes #62135.
1749
1750         * exception.h exception.c (mono_get_exception_file_not_found2): New
1751         helper function.
1752
1753 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1754
1755         * class.h class.c: Add mono_type_get_underlying_type ().
1756
1757 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1758
1759         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1760         Fix GetTypes() to support dynamically created assemblies.
1761
1762 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1763
1764         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1765         
1766         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1767         previous patch.
1768
1769         * reflection.h reflection.c loader.c: Allow dynamic construction of
1770         pinvoke methods. Fixes #65571.
1771         
1772         * reflection.c (mono_reflection_get_type): Revert previous change since
1773         it causes regressions.
1774
1775 2004-09-08  Martin Baulig  <martin@ximian.com>
1776
1777         * class.c (class_compute_field_layout): Don't call
1778         mono_class_layout_fields() for open generic instances.
1779
1780 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1781         * threads.c appdomain.c: fix typo in GC macro
1782
1783 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1784
1785         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1786         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1787
1788 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1789
1790         * image.c (mono_image_close): Applied patch from 
1791         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1792         assembly is loaded multiple times from data.
1793         
1794         * image.c (mono_image_open): Fix warning.
1795
1796 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1797
1798         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1799         once. Fixes #58334.
1800         
1801         * reflection.c (mono_reflection_create_runtime_class): Initialize
1802         klass->nested_classes. Fixes #61224.
1803
1804 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1805
1806         * threads.c: sched_yield() on exit, to allow threads to quit.
1807
1808 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1809
1810         * object.c (mono_unhandled_exception): Remove leftover debug code.
1811
1812 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1813
1814         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1815
1816 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1817
1818         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1819         
1820         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1821
1822 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1823
1824         * marshal.c (emit_marshal_array): Null terminate string arrays.
1825         
1826         * marshal.c (raise_auto_layout_exception): Fix warning.
1827
1828         * reflection.c (mono_param_get_objects): Initialize the default value
1829         with DBNull.Value, not null. Fixes #62123.
1830
1831 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1832
1833         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1834         throw an exception with a cute explanation.
1835
1836 2004-09-06  Dick Porter  <dick@ximian.com>
1837
1838         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1839         Close the new process's thread handle, as we don't use it.  The
1840         handle stays around forever otherwise.
1841
1842 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1843
1844         * object.c (arith_overflow): Fix warning.
1845
1846         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1847         calling conventions in method refs. Fixes #65352.
1848
1849         * reflection.c: Fix warnings.
1850
1851 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1852
1853         * icall.c: Add a new icall for Array.Clear
1854
1855 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1856
1857         * object.c: When allocating an array, we have to throw
1858         an overflow exception if any of the lengths are < 0.
1859
1860 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1861
1862         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1863         properly. Also move implementation of string array marshalling to 
1864         managed code. Fixes #42316.
1865
1866 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1867
1868         * assembly.c: provide more information when loading an assembly fails.
1869
1870 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1871
1872         * filewatcher.c: don't expect the development fam package to be
1873         installed.
1874
1875 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1876
1877         * marshal.c: Make a copy of the signature cookie since it will be
1878         freed by the caller.
1879         
1880         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1881
1882         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1883
1884         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1885         marshal specs.
1886
1887         * marshal.c: More refactoring.
1888         
1889         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1890         smaller functions.
1891
1892 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1893
1894         * object.c: In mono_message_invoke, fill the output parameter array after
1895           calling the managed method (it was done before the call). This fixes
1896           bug #59299.
1897
1898 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1899
1900         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1901         as well.
1902
1903 2004-09-02  Martin Baulig  <martin@ximian.com>
1904
1905         * class.c (mono_class_instance_size): Don't allow generic type
1906         definitions or open generic instances.
1907         (mono_class_array_element_size): If we're a value type, call
1908         mono_class_instance_size() on the original class.
1909
1910         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1911         handle generic instances.
1912
1913         * mono-debug-debugger.c (write_type): Handle generic instances
1914         like classes.
1915
1916 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1917
1918         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
1919         the allocation request fails. Fixes #65089.
1920
1921         * object.c (mono_runtime_free_method): Do not call mono_free_method.
1922         
1923         * object.c (mono_runtime_free_method): New function to free a dynamic
1924         method.
1925
1926         * marshal.c (mono_delegate_free_ftnptr): New function to free the
1927         delegate trampoline.
1928
1929         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
1930         with hasthis as dynamic,
1931
1932         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
1933
1934         * domain.c (mono_jit_info_table_remove): New function to remove an
1935         entry from the jit info table.
1936
1937         * class-internals.h (MonoMethod): Add 'dynamic' field.
1938
1939         * loader.c: Fix warnings.
1940
1941 2004-09-01  Martin Baulig  <martin@ximian.com>
1942
1943         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
1944         instead of mono_debugger_lock() because the latter one is a no-op
1945         unless running in the debugger.
1946
1947 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1948
1949         * class.c (class_compute_field_layout): Classes with auto-layout or
1950         reference fields are not blittable.
1951         
1952 2004-09-01  Dick Porter  <dick@ximian.com>
1953
1954         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
1955         mono_image_get_filename() to get the assembly location.
1956
1957         * icall.c:
1958         * metadata.h: Fix compile warnings
1959
1960 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1961
1962         * class.c (class_compute_field_layout): System.Object is blittable.
1963
1964         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
1965         as in/out. Fixes #59909.
1966
1967 2004-09-01  Martin Baulig  <martin@ximian.com>
1968
1969         * metadata.h (MONO_TYPE_ISREFERENCE): Call
1970         mono_metadata_generic_inst_is_valuetype() if we're a generic
1971         instance to check whether our underlying type is a reference type.
1972
1973 2004-09-01  Martin Baulig  <martin@ximian.com>
1974
1975         * metadata.c (mono_type_size): If we're a generic instance, call
1976         mono_class_value_size() for value types.
1977
1978 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
1979
1980         * marshal.c: Implement more custom marshalling functionality. Fixes
1981         #64915.
1982
1983 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1984
1985         * mono-debug.c, debug-mono-symfile.c: add some locking love.
1986
1987 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
1988
1989         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
1990
1991         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
1992
1993         * icall.c: Fix some warnings.
1994
1995         * threads.c (abort_appdomain_thread): Fix unref errors.
1996         (mono_thread_current): Fix THREAD_DEBUG define.
1997
1998 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
1999
2000         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
2001
2002         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
2003
2004 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
2005
2006         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
2007         string arrays.
2008
2009 2004-08-28  Martin Baulig  <martin@ximian.com>
2010
2011         * metadata.c
2012         (mono_metadata_generic_inst_is_valuetype): New public function.
2013
2014         * metadata.h (MONO_TYPE_ISSTRUCT): Call
2015         mono_metadata_generic_inst_is_valuetype() if we're a generic
2016         instance to check whether our underlying type is a valuetype.
2017
2018 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
2019
2020         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
2021         #63768.
2022
2023 2004-08-25  Martin Baulig  <martin@ximian.com>
2024
2025         * loader.c (mono_get_method_from_token): Abstract methods can also
2026         be generic and thus have type parameters.
2027
2028         * metadata-internals.h
2029         (MonoDynamicImage): Added `GPtrArray *gen_params'.
2030
2031         * reflection.c (mono_image_get_generic_param_info): Don't create a
2032         metadata row, just add an entry to the `gen_params' array.
2033         (build_compressed_metadata): Sort the `gen_params' array and then
2034         actually create the metadata.
2035
2036 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2037
2038         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
2039
2040 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
2041
2042         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
2043
2044 2004-08-24  Martin Baulig  <martin@ximian.com>
2045
2046         * class.cs (mono_class_is_subclass_of): Like an interface, a
2047         generic instance also derives from System.Object.
2048
2049 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
2050
2051         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
2052         custom modifiers to be in any order. Fixes #61990.
2053
2054 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
2055
2056         * object.c: Register mono_object_new_fast icall.
2057         
2058         * object.c (mono_class_get_allocation_ftn): Return to calling
2059         mono_object_new_fast, since it seems faster to compute the object 
2060         size in unmanaged code than passing it as a parameter.
2061
2062         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
2063
2064         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
2065         this function with Boehm as the oom handler, so we don't have to check
2066         the result of GC_malloc.
2067
2068         * object.c: Remove checks for oom.
2069
2070         * object.h object.c (mono_class_get_allocation_ftn): New function to
2071         return the icall which can be used to allocate an instance of a given
2072         class. 
2073
2074         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
2075
2076         * class-internals.h: Add 'enabled' field.
2077
2078 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
2079
2080         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
2081
2082 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
2083         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
2084         value 0x0010.
2085
2086 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
2087
2088         * appdomain.c: use the Tls function for appdomain too,
2089         at Zoltan's request. Actually return in mono_context_get
2090
2091         * appdomain.c, profiler.c, threads.c: use __thread
2092
2093 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
2094
2095         * appdomain.c threads.c: Call GC_CreateThread on windows.
2096
2097         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
2098         multiple libraries since this don't work on windows.
2099
2100 2004-08-18  Martin Baulig  <martin@ximian.com>
2101
2102         * class-internals.h
2103         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
2104         MonoMethodHeader.
2105
2106         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2107         MonoMethodNormal since we also need it for abstract and interface
2108         methods.
2109
2110         * reflection.c
2111         (build_compressed_metadata): Sort the GenericParam table.
2112         (mono_image_create_token): Added `gboolean create_methodspec'
2113         argument; this is false when generating a MethodImpl token.
2114         (reflection_methodbuilder_to_mono_method): Abstract and interface
2115         methods may also have generic parameters.
2116
2117 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2118
2119         * appdomain.c: thread local alloc
2120
2121 2004-08-17  Martin Baulig  <martin@ximian.com>
2122
2123         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2124
2125         * icall.c
2126         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2127         argument.
2128
2129         * class.c (mono_type_get_full_name): New public function.
2130         (mono_type_get_name): Don't include the type arguments.
2131
2132 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2133
2134         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2135         for inclusion into the mono executable.
2136
2137 2004-08-16  Martin Baulig  <martin@ximian.com>
2138
2139         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2140         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2141
2142 2004-08-14  Martin Baulig  <martin@ximian.com>
2143
2144         * class.c (dup_type): Also copy the `byref' field.
2145
2146 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2147
2148         * reflection.c (create_dynamic_mono_image): Revert the last change 
2149         since it breaks bootstrap.
2150
2151 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2152
2153         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2154
2155         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2156         not free them with g_free.
2157
2158 2004-08-11  Martin Baulig  <martin@ximian.com>
2159
2160         * reflection.c (mono_reflection_setup_internal_class): Also call
2161         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2162
2163 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2164
2165         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2166         called during default (first) AppDomain creation. Keep track of
2167         Evidence when loading assemblies.
2168
2169 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2170
2171         * opcodes.c, opcodes.h: reduce runtime relocations.
2172
2173 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2174
2175         * culture-info.h, locales.c: fixes and chages to sue the new
2176         optimized format of the locale data.
2177         * culture-info-tables.h: regenerated.
2178
2179 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2180         
2181         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2182
2183 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2184
2185         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2186         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2187         * domain-internals.h: icall declaration.
2188         * icall.c: icall registration.
2189         * object-internals.h: New fields in MonoAssembly for CAS.
2190
2191 2004-08-05  Duncan Mak  <duncan@ximian.com>
2192
2193         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2194         CEE_LDELEM_ANY.
2195
2196 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2197
2198         * reflection.c: fix to deal with object[] arrays in custom ctors
2199         (bug #62550).
2200
2201 2004-08-05  Martin Baulig  <martin@ximian.com>
2202
2203         * class.c (mono_class_array_element_size): Added support for
2204         generic instances and correctly handle "recursive" types.
2205
2206 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2207
2208         * assembly.c: Fix warnings.
2209
2210 2004-08-04  Martin Baulig  <martin@ximian.com>
2211
2212         * class.c
2213         (mono_type_get_name_recurse): Added `gboolean include_arity'
2214         argument specifying whether or not we should include the generic
2215         arity in the type name.
2216         (_mono_type_get_name): New static function.
2217         (mono_class_setup_vtable): If we're a generic instance, don't
2218         include the generic arity in the names of explicit method
2219         implementations.        
2220
2221 2004-08-03  Martin Baulig  <martin@ximian.com>
2222
2223         * class.c (mono_type_get_name_recurse): Enclose the generic type
2224         arguments in `<', '>'.
2225
2226 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2227
2228         * gc.c: make GC warning messages use the trace API, they are just
2229         noise to most of the users.
2230
2231 2004-08-03  Martin Baulig  <martin@ximian.com>
2232
2233         * debug-mono-symfile.c (read_string): Correctly read the string.
2234
2235 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2236
2237         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2238         
2239         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2240         icalls.
2241         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2242
2243 2004-07-30  Martin Baulig  <martin@ximian.com>
2244
2245         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2246         Reflect latest symbol writer changes.   
2247
2248 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2249
2250         * object.c: always create an object if null is passed
2251         to Invoke() where a valuetype is expected.
2252
2253 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2254
2255         * marshal.c (mono_marshal_init): make managed
2256         signatures match native ones better for 64bits.
2257
2258 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2259
2260         * appdomain.c: hack to build correctly the private bin path on windows.
2261         Fixes bug #61991.
2262
2263 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2264
2265         * assembly.c: Load mscorlib from the correct framework directory
2266           (mono/<version>/mscorlib.dll).
2267         * appdomain.h: Added prototypes for new functions.
2268         * internals.h: Added some prototypes.
2269         * domain.c: When initializing the runtime, get from the executable and
2270           the configuration files the runtime version that the app supports.
2271           Added support methods for reading app.exe.config. Added list of versions
2272           supported by the JIT. Added two new methods: mono_init_from_assembly,
2273           which initializes the runtime and determines the required version from
2274           the provided exe file, and mono_init_version, which initializes
2275           the runtime using the provided version.
2276         * icall.c: Get machine.config from version-specific directory.
2277         * reflection.c: When generating an image, embed the version number
2278           of the current runtime.
2279
2280 2004-07-28  Dick Porter  <dick@ximian.com>
2281
2282         * socket-io.c
2283         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2284         returned sockaddr size before creating the remote address object.
2285         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2286         61608.
2287
2288 2004-07-28  Dick Porter  <dick@ximian.com>
2289
2290         * locales.c (string_invariant_compare_char): Fix invariant char
2291         compares between upper and lower cases.  Fixes bug 61458.
2292
2293 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2294         
2295         * marshal.c: actually cache stelem.ref wrappers.
2296         
2297 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2298
2299         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2300         sections and remove the mono_cli_rva_map () function.
2301
2302 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2303
2304         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2305         by Geoff Norton (<gnorton@customerdna.com>).
2306
2307 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2308
2309         * class.c: fix class loads for pointer types (typeof(int) !=
2310         typeof(int*)).
2311
2312 2004-07-27  Martin Baulig  <martin@ximian.com>
2313
2314         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2315         reading the debugging information from an external ".mdb" file.
2316
2317 2004-07-24  Martin Baulig  <martin@ximian.com>
2318
2319         * reflection.c (mono_image_get_type_info): Only write a class
2320         layout entry if we actually have a size or a packing size.
2321
2322 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2323
2324         * reflection.c (type_get_fully_qualified_name): 
2325         insert cast to get type checking of ?: with non-gcc compilers
2326
2327 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2328
2329         * rand.c: use g_getenv for both lookups of
2330         MONO_EGD_SOCKET
2331
2332 2004-07-17  Martin Baulig  <martin@ximian.com>
2333
2334         * reflection.c (mono_reflection_bind_generic_method_parameters):
2335         Set `gmethod->reflection_info'.
2336
2337 2004-07-17  Martin Baulig  <martin@ximian.com>
2338
2339         * class.c (mono_class_create_from_typedef): Insert the newly
2340         created class into the hash table before computing the interfaces
2341         since we could be called recursively.
2342
2343 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2344
2345         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2346         function to implement stelem.ref in managed code
2347         * class-internals.h, debug-helpers.c: a new wrapper type
2348         for the above.
2349
2350 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2351
2352         * gc.c: allow GC handles to work even when no GC is compiled in.
2353         Fix part of bug #61134 (GetAddrOfPinnedObject).
2354
2355 2004-07-13  Peter Williams  <peter@newton.cx>
2356  
2357         * process.c (complete_path): Make sure we don't attempt to execute
2358         directories.
2359  
2360 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2361
2362         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2363           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2364           and will add/subtract the hour if needed
2365
2366 2004-07-12  Martin Baulig  <martin@ximian.com>
2367
2368         * reflection.c (mono_field_get_object): If we have
2369         `field->generic_info', take the attributes from
2370         `field->generic_info->generic_type'.    
2371
2372 2004-07-12  Martin Baulig  <martin@ximian.com>
2373
2374         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2375         This function must be called before initializing the runtime.
2376         (mono_debug_init_1): New function; call this after initializing
2377         the runtime, but before loading the assembly.  It tells the
2378         debugger to load corlib and the builtin types.
2379
2380         * mono-debug-debugger.c: Did some larger changes in the debugging
2381         code; support recursive class declarations, make sure we actually
2382         add all classes.
2383
2384 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2385
2386         * debug-helpers.c: undo my previous patch and fixed the real issue in
2387         ../mini/exceptions-x86.c
2388
2389 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2390
2391         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2392         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2393         called from other .cctors.
2394
2395 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2396
2397         * loader.c: Removed the mono_loader_wine_init hack now that we are
2398         doing a managed version of Windows.Forms.
2399
2400 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2401
2402         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2403         threadpool.c, threads.c: remove static data from rootset.
2404
2405 2004-07-09  Dick Porter  <dick@ximian.com>
2406
2407         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2408         Don't do any more processing if the matched length was 0.  It was
2409         increasing the size of the string before.  Fixes bug 61167.
2410
2411 2004-07-09  Dick Porter  <dick@ximian.com>
2412
2413         * socket-io.h:
2414         * socket-io.c
2415         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2416         Add support for SO_PEERCRED if its available.
2417
2418 2004-07-09  Peter Bartok <pbartok@novell.com>
2419         * loader.c: winelib.exe.so error message is now only displayed if
2420         MONO_DEBUG is set. To help us avoid questions when people are trying
2421         out the new Managed.Windows.Forms.
2422
2423 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2424
2425         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2426         for isinst and castclass wrappers.
2427
2428         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2429         to libmetadata from the JIT, so they could be used by the marshalling
2430         code and the interpreter.
2431
2432         * marshal.c: Register marshalling related JIT icalls here instead of
2433         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2434         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2435
2436         * metadata.h: Remove unneeded marshalling conversions.
2437
2438         * opcodes.c: Update for new opcodes.
2439         
2440 2004-07-08  Martin Baulig  <martin@ximian.com>
2441
2442         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2443         (mono_debug_get_domain_data): Make this function static.
2444
2445 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2446
2447         * gc.c, object.h: add nice GC handle API for embedders.
2448
2449 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2450
2451         * reflection.c: more changes for the new api
2452
2453         * object.c: When we reflect on a field w/ a constant value, it
2454         will not have a memory location, so we must access metadata. Also,
2455         allow easier reading of strings so that we can read them from
2456         the constant data.
2457
2458         * class.c (mono_class_layout_fields): no need for literal fields here.
2459
2460         * class-internals.h: api changes for const fields
2461
2462         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2463
2464 2004-07-06  Martin Baulig  <martin@ximian.com>
2465
2466         * mono-debug.h: Increment version number to 44.
2467
2468         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2469         now a gpointer, rewrote this whole method.
2470
2471         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2472         function.  Add information about the wrapper in a new "misc table".
2473
2474         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2475         for the new misc table.
2476
2477 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2478
2479         * metadata-internals.h image.c: Add a cache for helper signatures.
2480
2481         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2482
2483 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2484
2485         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2486         delegates from a delegate. Fixes #61033.
2487         
2488         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2489         marshalling of stringbuilder arrays. Fixes #59900.
2490
2491 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2492
2493         * icall.c: Add EnumBuilder:setup_enum_type icall.
2494
2495 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2496
2497         * icall.c: Added a new icall for the property version of
2498         OffsetOfStringData.
2499
2500 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2501
2502         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2503         it has a constant size across platforms.
2504
2505         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2506         stack trace.
2507
2508 2004-06-29  Martin Baulig  <martin@ximian.com>
2509
2510         * mono-debug.c (mono_debug_add_method): Protect the whole function
2511         in mono_debugger_lock(), not just parts of it.
2512
2513 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2514
2515         * reflection.c: make sure padding bytes in heaps are zeroed.
2516
2517 2004-06-24  David Waite  <mass@akuma.org>
2518
2519         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2520         image.c, loader.c, locales.c, marshal.c, metadata.c,
2521         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2522         string-icalls.c, threads.c: change to C90-style comments from C99 /
2523         C++ -style
2524
2525 2004-06-24  Dick Porter  <dick@ximian.com>
2526
2527         * threads.c
2528         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2529         return createdNew.  Fixes bug 60412.
2530
2531         * threads-types.h: 
2532         * icall.c: Add createdNew parameter to CreateMutex icall
2533
2534 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2535
2536         * reflection.c, object-internals.h: save default value in params.
2537
2538 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2539
2540         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2541         no need to build a new path combining that with the application base.
2542         Fixes bug #60442.
2543
2544 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2545
2546         * reflection.c: fixed minor standard compliance issues.
2547
2548 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2549
2550         * reflection.c: fixed issue with encoding some custom attributes
2551         (arrays in properties and fields, bug #60411).
2552
2553 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2554
2555         * reflection.c: fix start address when copying the public key token.
2556
2557 2004-06-23  Martin Baulig  <martin@ximian.com>
2558
2559         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2560         the `exc' object in a static object to put it into the GC's root set.
2561
2562 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2563
2564         * reflection.c: make mono_reflection_setup_internal_class ()
2565         callable a second time to setup a new parent class.
2566
2567 2004-06-23  Dick Porter  <dick@ximian.com>
2568
2569         * threads.c: Check for WAIT_IO_COMPLETION return values.
2570
2571 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2572
2573         * appdomain.c: Removed the g_free on the public key token. Now copy 
2574         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2575         * assembly.c: Added public key token string value when loading 
2576         assemblies. Fix bug #60439.
2577         * icall.c: Added missing informations (like public key) in 
2578         GetReferencedAssemblies. Fix #60519.
2579         * image.h: Changed definition for public key token from const char*
2580         public_tok_value to guchar public_key_token [17];
2581         * reflection.c: Updated for changes to public key token.
2582
2583 2004-06-22  Lluis Sanchez Gual
2584
2585         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2586         for the field in base classes.
2587
2588 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2589
2590         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2591         mark headers as not supported, they are installed only for use by the
2592         debugger.
2593
2594 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2595
2596         * *.c, *.h: avoid namespace pollution in public headers.
2597
2598 2004-06-21  Martin Baulig  <martin@ximian.com>
2599
2600         * exception.c (mono_get_exception_security): It's in
2601         "System.Security", not in "System".
2602
2603         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2604         the exception classes.
2605
2606 2004-06-21  Martin Baulig  <martin@ximian.com>
2607
2608         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2609         Protect the exception object from being finalized.
2610
2611 2004-06-21  Martin Baulig  <martin@ximian.com>
2612
2613         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2614         public function.
2615
2616 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2617
2618         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2619         if it was not loaded before. Fix parts of #60439.
2620
2621 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2622
2623         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2624         code that was broken since Ben's change: wrappers are now
2625         dependent on the method signature only again.
2626
2627 2004-06-21  Martin Baulig  <martin@ximian.com>
2628
2629         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2630         added interface support.
2631
2632 2004-06-21  Martin Baulig  <martin@ximian.com>
2633
2634         * class.c (mono_vtable_get_static_field_data): New public method.
2635
2636 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2637
2638         * filewatcher.c : Windows build fix to be compliant with API changes.
2639
2640 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2641
2642         * class.h, class.c: more accessors.
2643         * metadata.h, metadata.c: prepare for hiding MonoType and
2644         MonoMethodSignature: people should use the accessors from now on
2645         outside of the tree.
2646
2647 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2648
2649         * *.c, *.h: more API cleanups.
2650
2651 2004-06-18  Jackson Harper  <jackson@ximian.com>
2652
2653         * assembly.c: Trace loading assemblies.
2654         * loader.c: Trace loading native libraries.
2655         * mono-config.c: Trace loading config files.
2656         
2657 2004-06-18  Dick Porter  <dick@ximian.com>
2658
2659         * locales.c: Tell ICU the lengths of strings, it can cope with
2660         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2661
2662 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2663
2664         * image.c: swapped name/filename;
2665
2666 2004-06-18  Martin Baulig  <martin@ximian.com>
2667
2668         * mono-debug-debugger.c (write_class): Write the parent class at
2669         the end of the header.
2670
2671 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2672
2673         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2674
2675 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2676
2677         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2678         (bundle_obj): New conditional define.
2679         (BUILT_SOURCES): Remove.
2680         ($(bundle_srcs)): Make parallel-make safe.
2681         (libmonoruntime_la_LIBADD): Make unconditional.
2682         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2683         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2684
2685 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2686
2687         * culture-info-tables.h: It was inconsistent with the latest
2688           supp info files.
2689
2690 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2691
2692         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2693         be loaded.
2694
2695         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2696         with gcc 2.95.
2697
2698 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2699
2700         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2701         cleaned up public header threads.h.
2702
2703 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2704
2705         * Makefile.am, *.c, *.h: more API cleanups.
2706
2707 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2708
2709         * Makefile.am: removed monosn from compilation.
2710         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2711         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2712         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2713         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2714         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2715         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2716
2717 2004-06-15  Jackson Harper  <jackson@ximian.com>
2718
2719         * assembly.c: Make locales lower case when searching the GAC for
2720         assemblies. gacutil will always make locales lowercase when
2721         installing so this effectively makes them case insensitive.
2722         
2723 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2724
2725         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2726         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2727           parameter which allows to choose whether the wait can be interrupted or 
2728           not. Also added the method mono_monitor_enter(), which locks the monitor
2729           using an infinite wait and without allowing interruption.
2730           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2731           interrupted.
2732         * object.h: Added new fields in MonoThread. suspend_event holds the event
2733           used to susped/resume the thread. synch_lock is the lock object to use for
2734           modifying the thread state.
2735         * threads.c: Use the new synch_lock object for locking, instead of "this",
2736           which can generate deadlocks.
2737           Moved thread state change in Thread.Sleep and Thread.Join from managed
2738           to unmanaged code. This avoids a deadlock when the thread was suspended
2739           just after acquiring the thread lock.
2740           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2741           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2742           which is not fully implemented in the io-layer.
2743         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2744
2745 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2746
2747         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2748         threads-types.h: more API cleanups.
2749
2750 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2751
2752         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2753         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2754         threadpool.c, threads.c: first pass at the exported API cleanup.
2755
2756 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2757
2758         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2759
2760 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2761
2762         * icall.c: added internalGetHome.
2763
2764 2004-06-14  Dick Porter  <dick@ximian.com>
2765
2766         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2767         possible to return successfully when '.' or '..' were the only
2768         entries in a directory, but were skipped.  The MonoIOStat was not
2769         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2770         Fixes bug 59574.
2771
2772 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2773
2774         * reflection.c: make binaries run on .Net 1.1 by default.
2775
2776 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2777
2778         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2779
2780 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2781
2782         * marshal.c: keep track of struct size with explicit layout
2783         (bug #59979).
2784
2785 2004-06-12  Martin Baulig  <martin@ximian.com>
2786
2787         * mono-debug-debugger.c: Comment out a debugging g_message().
2788
2789 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2790
2791         * reflection.c, reflection.h: do not free custom attrs that are cached.
2792         * icall.c: use braces to make code clearer.
2793
2794 2004-06-11  Martin Baulig  <martin@ximian.com>
2795
2796         * class.h (MonoInflatedField): New type.
2797         (MonoClassField): Replaced `MonoType *generic_type' with
2798         `MonoInflatedField *generic_info'.
2799
2800         * icall.c
2801         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2802
2803 2004-06-11  Martin Baulig  <martin@ximian.com>
2804
2805         * reflection.c (mono_image_create_method_token): Correctly encode
2806         varargs methods.
2807
2808 2004-06-11  Martin Baulig  <martin@ximian.com>
2809
2810         * metadata.c (mono_metadata_parse_method_signature): When parsing
2811         a MethodDef which has VarArgs, also set sentinelpos if we don't
2812         have any parameters.
2813
2814 2004-06-11  Martin Baulig  <martin@ximian.com>
2815
2816         * verify.c (mono_method_verify): In CEE_CALL, use
2817         mono_method_get_signature() to get the method's signature, unless
2818         we're a PInvoke method.
2819
2820 2004-06-10  Jackson Harper  <jackson@ximian.com>
2821
2822         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2823         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2824         logical name as the supplied path is just a prefix to the gac not
2825         the direct path to it.
2826         
2827 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2828
2829         * reflection.c: make the token for a created method match
2830         the token of the MethodBuilder it was created from
2831         (IKVM requires this behaviour now).
2832
2833 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2834
2835         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2836         reflection.c, socket-io.c: leak fixes.
2837
2838 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2839
2840         * icall.c: handle sentinel pos in vararg methods in position different
2841         from 0.
2842
2843 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2844
2845         * culture-info-tables.h: freshly generated.
2846
2847 2004-06-09  Martin Baulig  <martin@ximian.com>
2848
2849         * loader.c (mono_get_method_constrained): Call `mono_class_init
2850         (constrained_class)'.   
2851
2852 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2853
2854         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2855         any methods. Fixes #59629.
2856
2857 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2858
2859         * culture-info-tables.h: reflecting locale-builder updates.
2860
2861 2004-06-08  Dick Porter  <dick@ximian.com>
2862
2863         * object.h:
2864         * locales.c: Fixed compile warnings, including a real bug in
2865         CompareInfo_internal_compare.
2866         
2867 2004-06-08  Dick Porter  <dick@ximian.com>
2868
2869         * locales.c
2870         (ves_icall_System_Globalization_CompareInfo_internal_index):
2871         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2872         Double-check the resuls of usearches, because ICU currently
2873         ignores most of the collator settings here.  Fixes bug 59720.
2874         
2875 2004-06-08  Dick Porter  <dick@ximian.com>
2876
2877         * locales.c
2878         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2879         Fix memory leak and segfault-causing typo.  No idea how this one
2880         lasted so long without being noticed.
2881
2882 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2883
2884         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2885         any methods. Fixes #59629.
2886
2887 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2888
2889         * assembly.c:
2890         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2891         own the critical section before). Removed dead code (that's done
2892         in the preload hook).
2893
2894         (mono_assembly_load_with_partial_name): call the preload hook.
2895
2896 2004-06-08  Martin Baulig  <martin@ximian.com>
2897
2898         * metadata.c (mono_metadata_signature_alloc): Default
2899         `sentinelpos' to -1.
2900
2901         * reflection.c (mono_image_get_array_token): Likewise.
2902
2903 2004-06-08  Martin Baulig  <martin@ximian.com>
2904
2905         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2906
2907         * metadata.c (mono_metadata_parse_method_signature): When parsing
2908         a MethodDef which has VarArgs, set sentinelpos.
2909
2910         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2911         `gint16' since we're using -1 for non-varargs methods.
2912
2913         * reflection.c
2914         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
2915         (method_encode_signature): Added varargs support.
2916         (method_builder_encode_signature): Likewise.
2917         (mono_image_get_varargs_method_token): New static method.
2918         (mono_image_create_method_token): New public method; this is
2919         called via an icall instead of mono_image_create_token() when
2920         calling a varargs method.       
2921
2922 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
2923
2924         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
2925
2926 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2927
2928         * culture-info-tables.h : Reflecting the latest locale-builder that
2929           fixed empty array representation ({} to {0}).
2930
2931 2004-06-07  Jackson Harper  <jackson@ximian.com>
2932
2933         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
2934         looking up extra gac paths. This allows MONO_GAC_PATH to act
2935         exactly like a prefix.
2936         
2937 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2938
2939         * reflection.c (mono_reflection_type_from_name): Make a copy of the
2940         type name before modifying it. Fixes #59405.
2941
2942 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2943
2944         * culture-info.h: added fields for "all datetime patterns".
2945         * locales.c: (  ves_icall_System_Globalization_CultureInfo
2946           _construct_datetime_format ()): fill xxx_patterns fields.
2947         * object.h: added fields for "all datetime patterns" to
2948           MonoDateTimeFormatInfo.
2949         * culture-info-tables.h: reflecting locale-builder updates.
2950
2951 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2952
2953         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
2954         the event has no add and remove methods. Fixes #59629.
2955
2956 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
2957
2958         * object.c: Fixed possible integer overflow when allocating large
2959         strings.
2960
2961 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2962
2963         * culture-info-tables.h: reflecting locale-builder updates.
2964
2965 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2966
2967         * culture-info-tables.h: reflecting locale-builder updates.
2968
2969 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
2970
2971         * culture-info-tables.h: reflecting locale-builder updates.
2972
2973 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
2974
2975         * threads.c: Made Thread.Sleep abortable.
2976
2977 2004-06-02  Martin Baulig  <martin@ximian.com>
2978
2979         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
2980
2981         * debug-mono-symfile.h: Bumped symbol file version number to 37.
2982
2983 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
2984
2985         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
2986
2987 2004-05-30  Jackson Harper  <jackson@ximian.com>
2988
2989         * reflection.c: Do not hardcode assembly versions or public key
2990         tokens anymore. All of this except the corlib section was dead
2991         code anyways.
2992         
2993 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
2994
2995         * object.c (mono_runtime_invoke_array): Automatically create boxed
2996         objects for byref valuetypes if needed. Fixes #59300.
2997         
2998         * object.c (mono_method_return_message_restore): Handle 
2999         MONO_TYPE_OBJECT as well.
3000
3001 2004-05-28  Jackson Harper  <jackson@ximian.com>
3002
3003         * reflection.c: The modified type encoding was causing build
3004         problems. Reverted for now.
3005         
3006 2004-05-28  Jackson Harper  <jackson@ximian.com>
3007
3008         * reflection.c/h: Take an assembly ref so that we dont create
3009         fully qualified names when encoding types in the same assembly as
3010         the custom attribute being emitted.
3011         * appdomain.c: Increment version number.
3012         
3013 2004-05-26  Duncan Mak  <duncan@ximian.com>
3014
3015         * icall.c
3016         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
3017         Set the full version number (major, minor, build, revision).
3018
3019 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
3020
3021         * marshal.c (emit_struct_conv): increment src/dst after blit
3022         (mono_marshal_get_managed_wrapper,
3023         mono_marshal_get_native_wrapper): make sure we have marshalling
3024         info before marshalling params (info computation affects
3025         blittable)
3026
3027         * class.c (class_compute_field_layout): correctly deal with
3028         blittable
3029         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
3030         value types (as per what windows dows by default)
3031         (mono_class_setup_mono_type): System.ValueType is blittable
3032         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
3033         blittable
3034
3035         * marshal.c (mono_marshal_load_type_info): flag types  as
3036         non-blittable if the native layout doesn't match the managed
3037         layout
3038
3039 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3040
3041         * appdomain.c: don't add stuff in the private search path that is
3042         above the application base. If application base is not set, there's
3043         no private search path.
3044
3045 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
3046
3047         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
3048         byref struct arguments in native->managed marshalling.
3049
3050 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
3051
3052         * marshal.c (mono_marshal_get_runtime_invoke): correctly
3053         cache methods using signature (special case for methods
3054         that are value type or string class)
3055         
3056         * image.c (mono_image_close): clean up allocated GSList's
3057         in runtime_invoke_cache.
3058
3059 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3060
3061         * mono-config.c: set the correct path for mono_cfg_dir on windows when
3062         there's no MONO_CFG_DIR environment variable defined.
3063
3064 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3065
3066         * threads.c: windows version must be >= 0x0500 to include OpenThread.
3067
3068 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
3069
3070         * threadpool.c: Really wait for 500ms after the async call, even if the wait
3071           is interrumped.
3072         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
3073           before waiting for it, and call CloseHandle after the wait to unref it.
3074           This will make sure that handles are not disposed too early.
3075
3076 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3077
3078         * appdomain.c:
3079         * appdomain.h:
3080         * icall.c: removed
3081         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
3082         needed now.
3083
3084         * object.c: se the application_base only for the domain that runs
3085         Main. Fixes bug #59216,
3086
3087 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3088
3089         * appdomain.c:
3090         * object.c: only the domain in which Main is run have
3091         SetupInformation.ConfigurationFile set, so moved a few lines from
3092         appdomain.c to object.c.
3093
3094 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3095
3096         * appdomain.c: we tried to load [name].(dll|exe), but according
3097         to bug #57710, we must also try [culture]/[name].(dll|exe) and
3098         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
3099         There's a test case attached to bug #58922.
3100
3101 2004-05-27  Dick Porter  <dick@ximian.com>
3102
3103         * icall.c:
3104         * file-io.c: Implemented icalls for locking and unlocking regions
3105         in a file.
3106         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3107         FALSE on error (fixes both compiler warning and real bug.)
3108
3109 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
3110
3111         * culture-info-tables.h: reflecting locale-builder updates.
3112
3113           (Added missing ChangeLog entry for 05/26)
3114
3115 2004-05-27  Jackson Harper  <jackson@ximian.com>
3116
3117         * locales.c: Fix some cut and paste errors.
3118         
3119 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3120
3121         * mono-config.c: set the correct path for config. directory on windows.
3122
3123 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3124
3125         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3126           on win32.
3127
3128 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3129
3130         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3131         from pinvoke functions.
3132         
3133         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3134
3135 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3136
3137         * culture-info-tables.h: reflecting locale-builder updates.
3138
3139 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3140
3141         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3142         #59086.
3143
3144 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3145
3146         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3147         * icall.c: Modified icalls for RNG.
3148         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3149         Windows (CryptoAPI).
3150
3151 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3152
3153         * locales.c: Fix build.
3154
3155 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3156
3157         * culture-info-tables.h: reflecting locale-builder updates.
3158
3159 2004-05-25  Jackson Harper  <jackson@ximian.com>
3160
3161         * locales.c: When creating the current culture use the $LANGs
3162         specific culture. So DateTimeFormat and NumberFormat entries are created.
3163         
3164 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3165
3166         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3167         a char array as parameter.
3168
3169 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3170
3171         * image.c: In mono_image_open(), always use an absolute path name to
3172           look for already loaded images.
3173
3174 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3175
3176         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3177         missing in the windows build (like older cygwin include files).
3178
3179 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3180
3181         * icall.c: Fixed check for possible integer overflow in Buffer_
3182         BlockCopy icall. Replaced comments style // by /* */.
3183
3184 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3185
3186         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3187         
3188         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3189         check after MONO_VTADDR. Fixes pinvoke2.exe.
3190
3191         * marshal.h marshal.c metadata.h: Add beginnings of support for
3192         ftnptr -> delegate marshalling.
3193
3194 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3195
3196         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3197         * threads.c: Fix warnings.
3198
3199 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3200
3201         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3202         * icall.c: Registered icalls for Suspend and Resume.
3203         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3204           Thread.Abort.
3205         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3206         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3207         * process.c: Use WaitForSingleObjectEx.
3208         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3209           checkpoints.
3210         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3211           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3212           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3213           background threads. Added basic support for Abort in Windows.
3214           Start new threads using a managed delegate invoke wrapper. This wrapper
3215           has an interruption checkpoint that is needed since an interruption
3216           can be requested before the thread leaves the unmanaged code that starts 
3217           the thread.
3218         * marshal.c: Added interruption checkpoint after every native call, and
3219           also before managed calls for wrappers called from unmanaged code to
3220           go into managed code.
3221         * object.h: Added new field in MonoThread to keep track of interruption
3222           requests.
3223
3224 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3225
3226         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3227         calls.
3228
3229 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3230
3231         * appdomain.c:
3232         * assembly.c:
3233         * gc.c:
3234         * locales.c:
3235         * mono-config.c:
3236         * rand.c: getenv -> g_getenv (windows!)
3237
3238         * process.c: complete_path is also used on non-windows platforms.
3239
3240 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3241
3242         * icall.c: new signature for Process_Start.
3243
3244         * process.[ch]: new signature for Process_Start. If we're on windows
3245         and UseShellExecute is false, we have to search for the program by
3246         ourselves if we don't get a full path.
3247
3248 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3249
3250         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3251         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3252
3253 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3254
3255         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3256         Fixes bug #58373.
3257
3258 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3259
3260         * process.c: use double quotes to quote program name and arguments on
3261         windows. Fixes bug #58575.
3262
3263 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3264
3265         * file-io.c: don't return "." and ".." when using windows Find*File.
3266
3267 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3268
3269         * marshal.c: Don't pass wrappers to message init because method 
3270         addressed used to lookup metadata. part of remoting[2|3] fix.
3271
3272 2004-05-15  Jackson Harper  <jackson@ximian.com>
3273
3274         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3275         path is essentially the same as MONO_PATH except that it points to
3276         GACs instead of lib directories.
3277         * loader.h: The user gac is gone so we dont need function to
3278         enable/disable it.
3279         * mono-config.c: user gac option is now gone.
3280         
3281 2004-05-15  Jackson Harper  <jackson@ximian.com>
3282
3283         * culture-info.h: Make defines more consistent, add calendar data
3284         to the culture info table.
3285         * culture-info-tables.h: Add basic calendar data. Basically
3286         everyone gets default gregorian until all the data is
3287         updated.
3288         * locales.c: Use the new consistent defines. Set calendar data for
3289         culture info objects.
3290         * object.h: add a field for calendar data to CultureInfo
3291         
3292 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3293
3294         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3295         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3296         a signature.
3297         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3298         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3299         an extra param that is the pointer of the method to invoke. The IL for
3300         the invoke method is no longer specific to the method, but to the
3301         signature of the method. Thus, we can share the same code for multiple
3302         methods. This reduces the number of methods that have to be compiled.
3303
3304 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3305
3306         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3307
3308         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3309
3310         * icall.c: Optimize Buffer.BlockCopy.
3311
3312 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3313
3314         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3315         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3316         quote). Changed them to "MMMM yyyy".
3317
3318 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3319
3320         * rand.c
3321         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3322
3323 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3324
3325         * reflection.h: Updated after changes to managed structures.
3326
3327         * appdomain.c: Bump corlib version.
3328
3329 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3330
3331         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3332         windows.
3333
3334 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3335
3336         * Makefile.am: link to ../os/libmonoos.la on windows.
3337
3338         * assembly.c:
3339                 -If MONO_DEBUG, warn about non-existing directories in
3340                 MONO_PATH.
3341                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3342                 compile time variable.
3343                 -Removed init_default_path and call mono_set_rootdir from
3344                 libmonoos.a instead (windows only).
3345
3346         * assembly.h: declare mono_assembly_getrootdir().
3347
3348         * domain.c:
3349         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3350
3351         * loader.c: s/getenv/g_getenv/
3352
3353 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3354
3355         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3356
3357         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3358
3359         * metadata.h: Add new marshalling conversions.
3360
3361         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3362         function.
3363
3364         * reflection.c (mono_reflection_get_type): Lookup the type in all
3365         modules of a multi-module assembly. Fixes #58291.
3366
3367 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3368
3369         * threads.c: Before aborting a background, set the StopRequested
3370         state.  This avoids throwing the Abort exception.
3371         In mono_thread_manage, don't continue with the shutdown until all
3372         aborted threads have actually stopped.
3373
3374 2004-05-10  Jackson Harper  <jackson@ximian.com>
3375
3376         * locales.c: Remove the modifier from culture names.
3377         
3378 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3379
3380         * Makefile.am: monosn is not installed any more. It has been deprecated
3381         in favor of sn.
3382
3383 2004-05-07  Jackson Harper  <jackson@ximian.com>
3384
3385         * locales.c
3386         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3387         Fix array construction, add bailout if the length is 0.
3388
3389 2004-05-07  Dick Porter  <dick@ximian.com>
3390
3391         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3392         machine doesn't have a DNS entry.  Patch by Urs Muff
3393         (umuff@quark.com), fixes bug 57928.
3394
3395 2004-05-06  Jackson Harper  <jackson@ximian.com>
3396
3397         * reflection.c: Handle null PublicTokens properly. alloc mem for
3398         assembly names culture so we dont crash when freeing it.
3399         
3400 2004-05-06  Jackson Harper  <jackson@ximian.com>
3401
3402         * assembly.c: Check the usergac when loading with partial names.
3403         
3404 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3405
3406         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3407         does nothing for now (not required for Linux/Windows) but the class
3408         library can call it (and a newer or modified runtime could need it).
3409         * icall.c: Registred icall.
3410
3411 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3412
3413         * loader.c: prints a message on module loading error we set MONO_DEBUG
3414         environment variable.
3415
3416 2004-05-05  Jackson Harper  <jackson@ximian.com>
3417
3418         * appdomain.c: Handle PublicKeyToken=null properly.
3419         
3420 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3421
3422         * environment.c|h: Added icall ves_icall_System_Environment_
3423         GetOSVersionString to get the current OS version as a string.
3424         * icall.c: Registred icall.
3425
3426 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3427
3428         * object.c: in mono_object_get_virtual_method(), take into account that
3429         non-virtual methods don't have a slot in the vtable. Check needed when
3430         the object is a proxy.
3431
3432 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3433
3434         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3435         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3436
3437         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3438
3439         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3440         passed when a valuetype is expected.
3441
3442         * object.c (mono_unhandled_exception): Only set the exit code if the
3443         exception happens in the main thread. Fixes thread5.exe.
3444
3445         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3446         invalid names. Fixes #58047.
3447
3448 2004-05-03  Jackson Harper  <jackson@ximian.com>
3449
3450         * assembly.c: This line was committed accidently and is unneeded.
3451         
3452 2004-05-03  Jackson Harper  <jackson@ximian.com>
3453
3454         * icall.c: Add new icall for Assembly::LoadWithPartialName
3455         * assembly.c/.h: new function that probes the GAC to load partial
3456         assembly names by Paolo Molaro.
3457         
3458 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3459
3460         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3461         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3462         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3463         full type name.
3464
3465 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3466
3467         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3468         * reflection.c: fix bug when parsing a full type name and Version is not
3469         the last thing in the string.
3470
3471 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3472
3473         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3474         crashes when it is freed.
3475
3476 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3477
3478         * assembly.c: print the compat warning to stderr.
3479
3480 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3481
3482         * assembly.c (mono_assembly_load_references): Add a compatibility
3483         hack to run old applications that might be still referencing the
3484         3300-based assemblies, only do this for System.xxx.
3485
3486 2004-05-01  Jackson Harper  <jackson@ximian.com>
3487
3488         * appdomain.c: If the culture is neutral we set it to "".
3489         
3490 2004-04-29  Jackson Harper  <jackson@ximian.com>
3491
3492         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3493
3494 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3495  
3496         * string-icalls.c: added low overhead function for copying chars
3497         * icall.c: added needed icall for the above function
3498  
3499 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3500
3501         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3502         Environment.GetLogicalDrives.
3503
3504 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3505
3506         * rand.c: try and talk to egd or prngd
3507         for random bytes if opening devices fail.
3508
3509 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3510
3511         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3512         alignment for the type using the native alignment of its members 
3513         instead of using klass->min_align.
3514
3515         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3516
3517 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3518
3519         * file-io.c:
3520         * socket-io.c: added check for sys/aio.h.
3521
3522 2004-04-28  Dick Porter  <dick@ximian.com>
3523
3524         * threads.c: Don't abort a thread thats already aborting, when
3525         terminating everything.
3526
3527 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3528
3529         * icall.c: added 2 new async calls for Socket.
3530
3531         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3532         IO on *nix systems.
3533
3534         * threadpool.c: removed unused variable.
3535
3536 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3537
3538         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3539
3540 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3541
3542         * locales.c: put back string_invariant_tolower () and
3543         string_invariant_toupper ().
3544
3545 2004-04-26 David Waite <mass@akuma.org>
3546
3547         * file-io.h:
3548         * socket-io.h:
3549         * threads.h:
3550         * unicode.h: remove comma from end of enumeration declarations
3551
3552 2004-04-26 David Waite <mass@akuma.org>
3553
3554         * debug-mono-symfile.h:
3555         * decimal.c:
3556         * mono_debug.h:
3557         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3558
3559
3560 2004-04-26  Jackson Harper  <jackson@ximian.com>
3561
3562         * appdomain.c: Increment version number.
3563         
3564 2004-04-26  Jackson Harper  <jackson@ximian.com>
3565
3566         * appdomain.c: Set assembly references public token value when
3567         PublicKeyToken is specified, not the hash_value. Free public token
3568         values when free assembly name data. Previously the public key
3569         token was hex decoded, however we are using hex encoded public key
3570         tokens, so this is not neccasary.
3571         * assembly.c: Lookup assemblies in the gac if their public token
3572         value is set. Add function to allow enabling user gac
3573         lookups. Specify whether or not the assembly was loaded from the
3574         GAC. Compare full assembly names when checking the cache for
3575         assemblies (Temporarily disabled see comment in code). Remove
3576         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3577         specifies trace-loader they get extra info to stdout on the
3578         loading of assemblies.
3579         * image.h: Add a field for an assembly references public token
3580         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3581         whether an assembly has been loaded from the GAC.
3582         * image.c: Remove a corlib -> mscorlib name mapping.
3583         * loader.h: Add function to enable/disable the user gac.
3584         * mono-config.c: Check if the usergac is enabled in the config
3585         file.
3586         * icall.c: New icall to determine whether or not an assembly has
3587         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3588         * tabldefs.h: Add constant for assemblyref flag that specifies a
3589         full public key is used instead of a public token.
3590         * reflection.c: Remove mscorlib -> corlib mappings. Set
3591         PublicTokenValue instead of hash value. This value is a hex
3592         string so it does not need to be expanded.
3593
3594 2004-04-26  Martin Baulig  <martin@ximian.com>
3595
3596         * mono-debug-debugger.c (mono_debugger_initialize): Set
3597         `mono_debugger_initialized' before calling mono_debug_lock().
3598
3599 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3600
3601         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3602           InternalToUpper/InternalToLower.
3603         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3604           removed invariant culture shortcut.  This is now done in managed code.
3605         * locales.c: (string_invariant_toupper/tolower) removed.
3606
3607 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3608
3609         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3610         Added Poll internal call.
3611
3612         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3613         call for Poll. Select was too heavy for polling a single socket.
3614
3615         * threadpool.[ch]: added mono_threadpool_cleanup.
3616         * threads.c: use it. Don't use Thread_Abort on windows.
3617
3618 2004-04-23  Martin Baulig  <martin@ximian.com>
3619
3620         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3621
3622 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3623
3624         * icall.c: Registred new icalls for key pair protection and added an
3625         icall for Environment.GetFolderPath on Windows.
3626         * security.c|h: Added new icalls for key pair protection.
3627
3628 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3629
3630         * socket-io.c: don't display the non-supported family warning for known
3631         families. Now this is not displayed on windows when checking support
3632         for IPv4/IPv6.
3633
3634 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3635
3636         * class.c: don't display the layout warning for static fields.
3637
3638 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3639
3640         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3641         * locales.c, locales.h: Added new icalls for culture-specific
3642         Char.ToLower and Char.ToUpper.
3643
3644 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3645
3646         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3647         by David Waite.
3648
3649 2004-04-20  Martin Baulig  <martin@ximian.com>
3650
3651         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3652         of the type name before passing it to mono_reflection_type_from_name().
3653
3654 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3655
3656         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3657         encodings here. Fixes #56965.
3658
3659 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3660
3661         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3662         fix test on strstr result not that I can see anything that
3663         relies on the result.
3664
3665 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3666
3667         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3668         Fixes #57081.
3669
3670         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3671
3672         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3673         function to determine which marshalling to use for strings. Fixes
3674         #56965.
3675
3676         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3677
3678         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3679
3680 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3681
3682         * icall.c: #include mono-config.h
3683
3684 2004-04-15  Jackson Harper  <jackson@ximian.com>
3685
3686         * culture-info-tables.h: Fix date formats for en-US culture.
3687         
3688 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3689
3690         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3691         ThreadPool.SetMinThreads.
3692         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3693         ThreadPool.SetMinThreads.
3694
3695 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3696
3697         * mono-config.c: also load the .config file in the directory
3698         where the assembly was found.
3699
3700 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3701
3702         * assembly.c: load per-assembly config files.
3703         * icall.c: decrapified code to get the config dir and moved to
3704         mono-config.c.
3705         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3706         per-assembly config files. When doing a dll map lookup give precedence
3707         to the per-assembly data.
3708
3709 2004-04-14  Martin Baulig  <martin@ximian.com>
3710
3711         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3712         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3713         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3714
3715         * mono-debugger-debugger.c: While the debugger is locked, remember
3716         whether the symbol tables have changes and send one single
3717         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3718
3719 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3720
3721         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3722
3723         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3724         function.
3725
3726         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3727         account when marshalling string arrays. Fixes #56965.
3728
3729 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3730
3731         * icall.c: Add new icalls mapping for security.
3732         * security.c|h: Add internal calls for WindowsIdentity,
3733         WindowsImpersonationContext and WindowsPrincipal.
3734
3735 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3736
3737         * class.c: Added comment to ensure the System.MonoDummy class
3738         is removed when no longer necessary
3739
3740 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3741
3742         * appdomain.c: Pass arguments to the bootstraping exceptions to
3743         minimize JITed methods at boot
3744
3745         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3746         second string to be null.
3747
3748         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3749         Change the protocol to minimize the JIT methods at startup.  Now
3750         it Returns the internal codepage, if the value of "int_code_page"
3751         is 1 at entry, and we can not compute a suitable code page
3752         number, returns the code page as a string.
3753
3754 2004-04-13  Jackson Harper  <jackson@ximian.com>
3755
3756         * culture-info-tables.h: Fix number of decimal digits for all
3757         english locales.
3758
3759 2004-04-13  Jackson Harper  <jackson@ximian.com>
3760
3761         * icall.c: Clairfy out of sync error message. It is not always
3762         your corlib that is out of sync.
3763
3764 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3765
3766         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3767         properties when only the set accessor is overriden. Fixes #55874.
3768
3769 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3770
3771         * assembly.c (mono_assembly_load_references): Make this thread safe.
3772         Fixes #56327.
3773
3774 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3775
3776         * monosn.c: Add missing initialization calls.
3777
3778 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3779
3780         * locales.c:
3781         ves_icall_System_Globalization_CultureInfo_construct_number_format
3782         Fix g_assert so it compiles on fussier compilers re int/ptr
3783         mismatch
3784
3785 2004-04-08  Dick Porter  <dick@ximian.com>
3786
3787         * socket-io.h:
3788         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3789         53992.  Also rearrange the code so that the internal calls return
3790         an error value and exceptions are thrown from managed code.
3791
3792         * icall.c: Add type info to the socket icalls.
3793
3794 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3795
3796         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3797         owes me a beer.
3798
3799 2004-04-07  Martin Baulig  <martin@ximian.com>
3800
3801         * class.c (mono_class_from_generic_parameter): Don't default
3802         `klass->parent' to `mono_defaults.object_type'.
3803
3804 2004-04-07  Martin Baulig  <martin@ximian.com>
3805
3806         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3807         `param->pklass->reflection_info'.       
3808
3809 2004-04-07  Jackson Harper  <jackson@ximian.com>
3810
3811         * culture-info-tables.h: Fix date separator symbol.
3812         
3813 2004-04-07  Martin Baulig  <martin@ximian.com>
3814
3815         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3816         from System.Type to System.MonoType.
3817
3818 2004-04-07  Martin Baulig  <martin@ximian.com>
3819
3820         * reflection.h
3821         (MonoReflectionGenericParam): Added `has_reference_type' and
3822         `has_value_type' fields.
3823
3824         * reflection.c (mono_image_get_generic_param_info): Encode the
3825         correct flags if we have the `class' or `struct' constraint.
3826
3827 2004-04-07  Martin Baulig  <martin@ximian.com>
3828
3829         * reflection.h
3830         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3831
3832 2004-04-07  Jackson Harper  <jackson@ximian.com>
3833
3834         * appdomain.c: Revert extra patches, just wanted to bump the
3835         version number.
3836         
3837 2004-04-07  Jackson Harper  <jackson@ximian.com>
3838
3839         * Makefile.am: Add culture-info private headers.
3840         * icall.c: Add new icalls for contructing locales.
3841         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3842         * locales.h: Declare new culture info construction methods.
3843         * object.h: Add new fields used to avoid the CultureMap to
3844         MonoCultureInfo.
3845         * culture-info.h: Definition of structs used in the culture info
3846         tables.
3847         * culture-info-tables.h: Autogenerated tables that contain culture
3848         info data. This file was generated with the locale-builder tool.
3849         * appdomain.c: Incement corlib version number.
3850         
3851 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3852
3853         * appdomain.c: (mono_runtime_init) move mono_thread_init
3854         to before mono_object_new calls so critical sections
3855         are initialized before use.
3856
3857 2004-04-07  Martin Baulig  <martin@ximian.com>
3858
3859         * icall.c
3860         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3861         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3862         (ves_icall_MonoGenericParam_initialize): Removed.
3863         (monogenericparam_icalls): Removed.
3864         (generictypeparambuilder_icalls): Added new table for
3865         System.Reflection.Emit.GenericTypeParameterBuilder.
3866
3867         * reflection.c
3868         (mono_reflection_define_generic_parameter): Removed.
3869         (mono_reflection_initialize_generic_parameter): This is now called
3870         from GenericTypeParameterBuilder's .ctor.
3871
3872 2004-04-06  Martin Baulig  <martin@ximian.com>
3873
3874         * class.c (mono_class_init): Don't inflate nested classes in a
3875         generic instance.
3876         (mono_type_get_name_recurse): Include the generic arguments for
3877         generic instances and generic type declarations.
3878         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3879         (_mono_class_get_instantiation_name): Removed.
3880         (mono_class_create_generic): Always use `gklass->name' as our name.
3881
3882         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3883
3884         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3885         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3886         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3887         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3888         closed generic methods here.
3889
3890         * reflection.c
3891         (mono_reflection_generic_inst_get_nested_types): Removed.
3892         (inflate_mono_method): Copy the generic parameters from the
3893         MonoMethodHeader into out MonoGenericMethod.
3894
3895 2004-04-06  Martin Baulig  <martin@ximian.com>
3896
3897         * row-indexes.h
3898         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3899
3900         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3901
3902         * reflection.c (build_compressed_metadata): If we have any entries
3903         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3904         set the header version to 1.1.
3905
3906 2004-04-06  Martin Baulig  <martin@ximian.com>
3907
3908         * class.c (mono_class_init): If we're a generic instance,
3909         initialize our nested classes, too.
3910         (_mono_class_get_instantiation_name): Deal with the new `!%d'
3911         suffix. 
3912
3913 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3914
3915         * process.c: quote the argument passed to the shell on windows.
3916
3917 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
3918
3919         * threads.c (mono_alloc_special_static_data): Allow this to be
3920         called during startup.
3921
3922 2004-04-02  Martin Baulig  <martin@ximian.com>
3923
3924         * icall.c
3925         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
3926
3927 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
3928
3929         * icall.c: Fix build.
3930
3931 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
3932
3933         * Makefile.am: Added security.c|h.
3934         * icall.c: Added icall for get_UserName;
3935         * security.c: New file for security related icalls. Added function
3936         get_UserName for System.Environment (fix #56144).
3937         * security.h: New. Header file for security.c
3938
3939 2004-04-02  Dick Porter  <dick@ximian.com>
3940
3941         * icall.c: Deleted the icalls that were obsoleted some time ago
3942         by the ICU string code, and which were mixed into the icall
3943         rearranging.  Fixes bug 55969.
3944
3945         * string-icalls.h: 
3946         * string-icalls.c: Deleted the code that those icalls reference.
3947
3948 2004-04-01  Martin Baulig  <martin@ximian.com>
3949
3950         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
3951
3952         * class.c (mono_class_from_generic_parameter): Don't set 
3953         TYPE_ATTRIBUTE_INTERFACE.
3954         (my_mono_class_from_generic_parameter): Likewise.
3955
3956 2004-04-01  Martin Baulig  <martin@ximian.com>
3957
3958         * loader.c (find_method): Added an optional `MonoClass *ic'
3959         argument to search in a specific interface.
3960         (mono_get_method_constrained): New public function.
3961
3962 2004-04-01  Martin Baulig  <martin@ximian.com>
3963
3964         * reflection.c (mono_image_get_generic_field_token): Use the
3965         `handleref' cache here.
3966
3967 2004-04-01  Martin Baulig  <martin@ximian.com>
3968
3969         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
3970
3971         * reflection.c (create_generic_typespec): Use the `typespec' hash
3972         here, not the `typeref' one.    
3973
3974 2004-04-01  Martin Baulig  <martin@ximian.com>
3975
3976         * class.c (mono_class_inflate_generic_type): Moved the
3977         functionality into a new static inflate_generic_type() which
3978         returns NULL if it didn't do anything.  Only increment the
3979         `mono_stats.inflated_type_count' if we actually inflated
3980         something.
3981         (mono_class_get_full): Check the classes type to see whether we
3982         need to inflate it; also inflate MONO_TYPE_(M)VAR.
3983
3984 2004-04-01  Jackson Harper  <jackson@ximian.com>
3985
3986         * reflection.c: Set culture for assembly references.
3987         
3988 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
3989
3990         * reflection.[ch], icall.[ch], Fix support for pinning variables.
3991
3992 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3993
3994         * assembly.c:
3995         (do_mono_assembly_open): the critical section also covers
3996         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
3997
3998 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3999
4000         * threads.c:
4001         (mono_manage_threads): abort the background threads when finishing.
4002         Fixes bug #47232.
4003
4004 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4005
4006         * gc.c: only close the done_event handle if there was no timeout.
4007         C-ified comments.
4008
4009 2004-03-30  Martin Baulig  <martin@ximian.com>
4010
4011         * icall.c (icall_entries): It's called "System.Activator", not
4012         "System.Activation".    
4013
4014 2004-03-30  Martin Baulig  <martin@ximian.com>
4015
4016         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
4017         (mono_class_create_from_typespec): Likewise.
4018
4019 2004-03-30  Martin Baulig  <martin@ximian.com>
4020
4021         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
4022         `has_ctor_constraint' and `initialized'.
4023
4024 2004-03-30  Martin Baulig  <martin@ximian.com>
4025
4026         * reflection.c (encode_new_constraint): New static function to add
4027         the constructor constraint attribute to a type parameter.
4028         (encode_constraints): Call encode_new_constraint() if necessary.
4029
4030         * reflection.h
4031         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
4032
4033         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
4034         
4035 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
4036
4037         * reflection.c, icall.c: add support for pinning variables. 
4038
4039 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
4040
4041         * marshal.c (mono_marshal_get_managed_wrapper):
4042         init bool local with zero rather than null.
4043
4044 2004-03-29  Martin Baulig  <martin@ximian.com>
4045
4046         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
4047         the "official" behavior here.
4048         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
4049
4050 2004-03-29  Martin Baulig  <martin@ximian.com>
4051
4052         * icall.c: Reflect latest API changes.
4053
4054 2004-03-29  Martin Baulig  <martin@ximian.com>
4055
4056         * loader.c (mono_get_method_from_token): Also call
4057         mono_metadata_load_generic_params () for abstract and interface
4058         methods; replace the type arguments in the method signature with
4059         the ones which are loaded from the metadata.
4060
4061 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
4062
4063         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
4064         of the lock is not the current thread. MS.NET don't do it, in spite of
4065         what the documentation says. See bug #56157.
4066
4067 2004-03-28  Martin Baulig  <martin@ximian.com>
4068
4069         * class.c (mono_class_init): Don't call init_properties() and
4070         init_events() for generic instances; set `prop->parent' when
4071         inflating properties.
4072
4073         * reflection.c (mono_generic_inst_get_object): Call
4074         `mono_class_init (ginst->klass)'.
4075         (mono_type_get_object): Only create a MonoGenericInst if your
4076         generic type is a TypeBuilder.
4077         (do_mono_reflection_bind_generic_parameters): Only set
4078         `ginst->is_dynamic' if our generic type is a TypeBuilder.
4079
4080 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
4081
4082         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
4083         Fixes #56091.
4084
4085 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4086
4087         * icall.c: added Kill_internal icall.
4088         * process.[ch]: added Kill_internal icall.
4089
4090 2004-03-25  Martin Baulig  <martin@ximian.com>
4091
4092         * class.h (MonoStats): Added `generic_instance_count',
4093         `inflated_method_count', `inflated_type_count' and
4094         `generics_metadata_size'.       
4095
4096 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4097
4098         * reflection.c: no warnings now.
4099
4100 2004-03-25  Martin Baulig  <martin@ximian.com>
4101
4102         * class.c (mono_class_get_full): New public function; does a
4103         mono_class_get(), but also takes a `MonoGenericContext *'.
4104
4105         * loader.c (mono_field_from_memberref): Renamed to
4106         `field_from_memberref', made static and added `MonoGenericContext *'
4107         argument.
4108         (mono_field_from_token): Added `MonoGenericInst *' argument.
4109         (method_from_memberef): Likewise.
4110         (mono_get_method_from_token): Likewise.
4111         (mono_get_method_full): New public function; does a
4112         mono_get_method(), but also takes a `MonoGenericContext *'.
4113
4114         * verify.c (mono_method_verify): Get the method's generic context
4115         and pass it to mono_field_from_token(), mono_get_method_full() and
4116         mono_class_get_full().
4117
4118 2004-03-25  Martin Baulig  <martin@ximian.com>
4119
4120         * class.c (mono_class_inflate_generic_type): Take a
4121         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4122         `MonoGenericMethod *'.
4123
4124 2004-03-25  Martin Baulig  <martin@ximian.com>
4125
4126         * loader.h (MonoMethodInflated): Store the MonoGenericContext
4127         instead of the MonoGenericMethod here.
4128
4129 2004-03-25  Martin Baulig  <martin@ximian.com>
4130
4131         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4132         each time we create a new MonoGenericInst, we also create a new
4133         context which points back to us.
4134
4135         * class.c (inflate_method): Use `ginst->context' instead of
4136         creating a new context.
4137
4138         * loader.c (method_from_memberref): Use
4139         `klass->generic_inst->context' instead of creating a new context.
4140
4141 2004-03-25  Martin Baulig  <martin@ximian.com>
4142
4143         * class.h (MonoGenericContext): New struct.
4144         (MonoGenericMethod): Removed `generic_inst'.
4145
4146         * class.c (mono_class_inflate_generic_method): Take a
4147         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4148
4149 2004-03-25  Martin Baulig  <martin@ximian.com>
4150
4151         * loader.h (MonoMethodInflated): New typedef.
4152
4153         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4154         `generic_param_count' consume just 30 bits, added `is_inflated'
4155         and `has_type_parameters' flags (one bit each).
4156
4157         * class.c (mono_class_inflate_generic_method): Create a
4158         MonoMethodInflated instead of a MonoMethodNormal and set
4159         `is_inflated' in the method signature.
4160
4161         * class.h (MonoGenericMethod): Removed `generic_method'.
4162
4163 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4164
4165         * image.c: Make sure the name of a MonoImage is always an absolute path.
4166           This fixes bug #54415.
4167
4168 2004-03-24  Martin Baulig  <martin@ximian.com>
4169
4170         * class.c (mono_class_setup_vtable): If we're a generic instance,
4171         use our generic type's vtable size.
4172
4173 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4174
4175         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4176         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4177         problems.
4178
4179 2004-03-23  Martin Baulig  <martin@ximian.com>
4180
4181         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4182         `MonoEvent *events'.
4183
4184         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4185         (typebuilder_icalls): Added "get_event_info"; calls
4186         mono_reflection_event_builder_get_event_info(). 
4187
4188         * reflection.c (mono_reflection_generic_inst_initialize): Added
4189         `MonoArray *events'.
4190         (mono_reflection_event_builder_get_event_info): New function.
4191
4192 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4193
4194         * object.h: add mono_type_initialization_init
4195
4196         * object.c (mono_runtime_class_init): 
4197         implement class constructor synchronization rules
4198         to cope with threading issues.  
4199         add mono_type_initialization_init
4200
4201         * appdomain.c (mono_runtime_init): call 
4202         mono_type_initialization_init
4203
4204         * class.h: removing initializing field from MonoVTable
4205
4206 2004-03-23  Martin Baulig  <martin@ximian.com>
4207
4208         * class.c (my_mono_class_from_generic_parameter): Use
4209         `param->name' if it's not NULL. 
4210
4211 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4212
4213         * class.c: do not insert non-virtual methods in the vtable.
4214         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4215         that means the method is non-virtual. This never would have
4216         happened before.
4217
4218 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4219
4220         * profiler.c: Added lock for accessing coverage_hash.
4221
4222 2004-03-22  Martin Baulig  <martin@ximian.com>
4223
4224         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4225         `method->method->signature->generic_param_count != 0' to make it
4226         work for interface methods.
4227
4228 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4229
4230         * process.c: quote the string passed to the shell using g_shell_quote.
4231
4232 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4233
4234         * threads.c:
4235         (mono_threads_manage): don't remove the finalizer thread and self
4236         from the threads hash table so that mono_thread_manage can be called
4237         more than once.
4238
4239 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4240
4241         * process.c: quote the arguments when UseShellExecute is true. Fixes
4242         bug #55790.
4243
4244 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4245
4246         * threads.c: set mono_thread_detach as a cleanup routine for every
4247         thread. This way it's always executed upon thread termination, either
4248         aborted or finished normally. No more xsp hangs!
4249
4250 2004-03-17  Martin Baulig  <martin@ximian.com>
4251
4252         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4253         `int count_nested' and a `MonoType **nested'.
4254
4255         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4256         most of the functionality into a new static
4257         do_mono_reflection_bind_generic_parameters() and don't take a
4258         `MonoType *nested_in' argument any more.  Don't compute nested
4259         types here.
4260         (mono_reflection_generic_inst_get_nested_types): New public method
4261         to get nested types.
4262
4263         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4264         we're a nested class.
4265
4266         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4267         mono_reflection_generic_inst_get_nested_types() to compute the
4268         nested types.
4269
4270 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4271
4272         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4273         descriptive error message under windows.
4274         
4275 2004-03-17  Martin Baulig  <martin@ximian.com>
4276
4277         * class.c (dup_type): Added `const MonoType *original' argument;
4278         copy the attrs from the original type.
4279
4280 2004-03-17  Martin Baulig  <martin@ximian.com>
4281
4282         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4283         `m->generic_inst_cache' here.
4284
4285 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4286
4287         * exception.h exception.c: Add stack_overflow_exception.
4288
4289 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4290
4291         * threadpool.c:
4292         (overlapped_callback): call SetEvent *after* invoking the callback.
4293         No need to call CloseHandle.
4294
4295 2004-03-16  Martin Baulig  <martin@ximian.com>
4296
4297         * reflection.c (mono_image_get_fieldref_token): Take a
4298         `MonoReflectionField *' instead of a `MonoClassField *' and a
4299         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4300
4301 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4302
4303         * appdomain.c: don't add the culture to the filename we're looking for
4304         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4305
4306 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4307
4308         * locales.c: don't ignore symbols when doing case insensitive compares.
4309         Thanks Dick! Fixes bug #54046.
4310
4311         * threads.c: surround 'threads' usage with enter/leave in
4312         mono_thread_manage.
4313
4314 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4315
4316         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4317         implicitly marshalled as [Out]. Fixes #55450.
4318
4319         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4320         an exception.
4321
4322 2004-03-16  Martin Baulig  <martin@ximian.com>
4323
4324         * class.c (mono_class_from_generic_parameter): Use the actual
4325         parameter name. 
4326
4327 2004-03-16  Martin Baulig  <martin@ximian.com>
4328
4329         * reflection.c (type_get_signature_size): New static function.
4330         Compues the size of the type in a method signature.
4331         (method_get_signature_size): New static function; calls
4332         type_get_signature_size() to compute the actual size of the
4333         method's signature.
4334         (method_encode_signature): Use method_get_signature_size() to get
4335         the signature's size rather than using `nparams * 10'.
4336
4337 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4338
4339         * file-io.h: define here WapiOverlapped on windows. I don't want the
4340         regular OVERLAPPED one.
4341
4342         * file-io.c:
4343         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4344         Disabling AIO on windows.
4345
4346 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4347
4348         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4349         bug #55385.
4350
4351 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4352
4353         * appdomain.c: upgraded corlib version.
4354
4355         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4356         and BeginWrite. Allow opening files for asynchrnous operations.
4357
4358         * file-io.h: new struct that maps FileStreamAsyncResult.
4359         * icall.c: added new icalls.
4360         * process.[ch]: support setting child process environment variables
4361         and use the SHELL or COMSPEC when UseShellExecute is true.
4362
4363         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4364         callback for async. IO is here and also BindHandle.
4365
4366         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4367         from here.
4368
4369 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4370
4371         * reflection.c (create_custom_attr): Allow len == 0.
4372
4373         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4374         computation on big-endian machines.
4375
4376 2004-03-13  Martin Baulig  <martin@ximian.com>
4377
4378         * class.h (MonoGenericInst): Added `int count_ifaces'.
4379
4380         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4381         `ginst->count_ifaces' instead `klass->interface_count' since we
4382         may get called before the vtable is created.
4383
4384         * loader.c (mono_method_get_param_names): If we're a generic
4385         instance, return and don't initialize the class.
4386
4387         * reflection.c (mono_reflection_setup_generic_class): Don't call
4388         ensure_runtime_vtable().
4389         (mono_reflection_bind_generic_parameters): Set
4390         `ginst->count_ifaces'.
4391
4392 2004-03-11  Jackson Harper <jackson@ximian.com>
4393
4394         * icall.c:
4395         * unicode.c:
4396         * unicode.h: Remove unused System.Char icalls.
4397         
4398 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4399
4400         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4401         code when we P/Invoke the first library in Windows.Forms, instead
4402         of when we first open the assembly.
4403
4404         * assembly.c: Drop the lookup from here.
4405
4406 2004-03-10  Martin Baulig  <martin@ximian.com>
4407
4408         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4409         class for properties, fields and events.  Finally fixes #54945.
4410
4411 2004-03-10  Martin Baulig  <martin@ximian.com>
4412
4413         * metadata.c (mono_metadata_class_equal): New static function;
4414         checks whether two generic instances or two generic parameters are
4415         equal.
4416         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4417         compare classes.        
4418
4419 2004-03-10  Martin Baulig  <martin@ximian.com>
4420
4421         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4422
4423         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4424         argument and write it into the `reflection_info' field.
4425
4426         * icall.c
4427         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4428         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4429
4430 2004-03-09  Jackson Harper  <jackson@ximian.com>
4431
4432         * char-conversions.h: use 8 bits for numeric data its all we need
4433         * icall.c: numeric data is only 8 bits now.
4434
4435 2004-03-09  Martin Baulig  <martin@ximian.com>
4436
4437         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4438
4439         * class.c (init_properties, init_events): Initialize the new
4440         `parent' field.
4441
4442         * reflection.c (typebuilder_setup_properties): Likewise.
4443         (typebuilder_setup_events): Likewise.
4444
4445         * reflection.h (MonoEventInfo): Replaced `parent with
4446         `declaring_type' and `reflected_type'.
4447
4448         * icall.c (ves_icall_get_property_info): Distinguish between
4449         declaring and reflected type.
4450         (ves_icall_get_event_info): Likewise.
4451
4452 2004-03-09  Martin Baulig  <martin@ximian.com>
4453
4454         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4455         (ves_icall_Type_GetField): Correctly set field->klass.
4456
4457 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4458
4459         * loader.h: Fix warning.
4460
4461 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4462
4463         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4464         library routine if present.  Notice that it will still continue
4465         executing even if its missing, for those working on the Gtk#
4466         edition of Windows.Forms.
4467
4468         * assembly.c (do_mono_assembly_open): If loading the
4469         System.Windows.Forms call mono_loader_wini_init.
4470
4471 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4472
4473         * class.h: Added MonoRemoteClass struct.
4474         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4475         function for MonoStrings.
4476         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4477         Added internal call for getting the proxy type.
4478         * marshal.c: Get the type of transparent proxies from its remote_class.
4479         Added methods that generate the IL for type checks and casts:
4480         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4481         mono_marshal_get_proxy_cancast.
4482         * marshal.h: Declaration of the previous new methods.
4483         * object.c: Added new moethods for creating and updating MonoRemoteClass
4484         instances: mono_remote_class, mono_upgrade_remote_class, 
4485         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4486         * verify.c: FIx transparent_proxy_fields layout.
4487         * appdomain.c: Bump corlib version.
4488
4489 2004-03-04  Jackson Harper  <jackson@ximian.com>
4490
4491         * icall.c: Add icall to access char conversion tables.
4492         * char-conversions.h: Character conversion tables.
4493         * Makefile.am: Add char-conversions.h private header file.
4494         
4495 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4496
4497         * appdomain.c (unload_thread_main): Increase unloading timeout to
4498         10 sec as a temporary workaround for Nant problems.
4499
4500 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4501
4502         * gc.c: Add checks for GC_enable and GC_disable.
4503
4504         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4505         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4506         (bug #54988).
4507         
4508 2004-02-27  Martin Baulig  <martin@ximian.com>
4509
4510         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4511         `MonoReflectionType *' instead of a `MonoType *'.
4512
4513 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4514
4515         * gc.c (run_finalize): Avoid finalizing the object representing the
4516         finalizer thread.
4517         (finalizer_thread): Fix warning.
4518
4519 2004-02-25  Martin Baulig  <martin@ximian.com>
4520
4521         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4522         argument for nested types.
4523         (mono_class_create_generic): Added support for nested generictypes.
4524
4525         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4526         `GList *nested'.
4527
4528         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4529
4530         * reflection.c (method_encode_signature): Increase the minimum
4531         value of `size' from 10 to 11.
4532         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4533         and `MonoType **types' arguments instead of the `MonoArray
4534         *types'; added `MonoType *nested_in'.  Recursively instantiate
4535         nested classes. 
4536
4537 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4538
4539         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4540         stack_overflow_ex members which are used by exception handling.
4541
4542         * appdomain.c (mono_runtime_init): Initialize the new members.
4543
4544         * gc.c (mono_gc_enable): New helper function.
4545         * gc.c (mono_gc_disable): New helper function.
4546
4547 2004-02-23  Martin Baulig  <martin@ximian.com>
4548
4549         * icall.c: I must have been really stupid - make it actually work
4550         this time ;-)
4551
4552 2004-02-23  Martin Baulig  <martin@ximian.com>
4553
4554         * loader.c (method_from_memberref): Only inflate the method if
4555         it's in another klass.
4556
4557 2004-02-23  Martin Baulig  <martin@ximian.com>
4558
4559         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4560         (mono_class_init): If we're a generic instance and an interface,
4561         compute `class->interface_id'; also create `class->interfaces'
4562         here and inflate them.
4563
4564         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4565         `ginst->is_open'.
4566         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4567
4568         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4569
4570 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4571
4572         * reflection.c (method_encode_code): Improved the error message
4573         generated by the exception.
4574
4575 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4576
4577         * icall.c: Martin did not do what he said in the ChangeLog for
4578         2004-02-18, but put back the changes for properties and events.
4579         Commenting those changes out again and adding comment to bug #54518.
4580         
4581         * process.c: removed warning.
4582
4583 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4584
4585         * marshal.c (emit_struct_conv): Print an error message instead of
4586         asserting when a type does not have the StructLayout attribute.
4587
4588 2004-02-20  Martin Baulig  <martin@ximian.com>
4589
4590         * reflection.c (mono_type_get_object): Also use the cache for
4591         generic instances.
4592         (mono_reflection_bind_generic_parameters): Always compute
4593         `ginst->ifaces'.        
4594
4595 2004-02-20  Martin Baulig  <martin@ximian.com>
4596
4597         * class.h (MonoGenericMethod): Removed `klass'.
4598
4599         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4600         *klass' argument.
4601
4602 2004-02-20  Martin Baulig  <martin@ximian.com>
4603
4604         * reflection.c (method_encode_methodspec): Actually use the
4605         uninflated signature for the memberref.
4606
4607 2004-02-20  Martin Baulig  <martin@ximian.com>
4608
4609         * class.h (MonoGenericMethod): Removed `declaring'.
4610
4611         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4612         is NULL, compute it here.
4613
4614 2004-02-20  Martin Baulig  <martin@ximian.com>
4615
4616         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4617
4618         * metadata.c (mono_metadata_generic_inst_hash): New method.
4619         (mono_metadata_generic_inst_equal): New method.
4620
4621         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4622         `klass->image->generic_inst_cache' cache to avoid creating
4623         duplicate MonoGenericInst's.
4624
4625         * class.c (mono_class_inflate_generic_type): Use the cache.
4626
4627 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4628
4629         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4630
4631 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4632
4633         * icall.c: added Socket.WSAIoctl icall.
4634
4635         * socket-io.[ch]: implemented
4636         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4637
4638 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4639
4640         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4641
4642 2004-02-18  Urs C Muff  <umuff@quark.com>
4643
4644         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4645         this work on PPC and other big-endian architectures.
4646
4647         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4648         fields with an underscore to make sure they're only accessed by
4649         the read32() macro.
4650
4651 2004-02-18  Martin Baulig  <martin@ximian.com>
4652
4653         * icall.c: Put the klass->refclass changes back for methods and
4654         fields, but not for properties and events.  We're currently not
4655         distinguishing between DeclaringType and ReflectedType for
4656         properties and events, that's what caused the regressions.
4657
4658 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4659
4660         * object.c:
4661         (mono_async_result_new): the handle can be NULL.
4662
4663         * threadpool.c: Use an event instead of a semaphore, don't initialize
4664         it until needed. This saves quite a few semaphores from being created
4665         when using the threadpool.
4666
4667 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4668
4669         * object.c (mono_string_is_interned_lookup): Fix interning of long
4670         strings. Fixes #54473.
4671
4672         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4673
4674         * icall.c: Revert the klass->refclass changes since they introduce
4675         regressions (bug #54518).
4676
4677 2004-02-18  Martin Baulig  <martin@ximian.com>
4678
4679         * class.c (mono_class_init): If we're a generic instance and don't
4680         come from a TypeBuilder, inflate our members here.
4681         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4682         (mono_class_create_generic): New public method.
4683         (mono_class_initialize_generic): Removed.
4684         (get_instantiation_name): Renamed to
4685         _mono_class_get_instantiation_name() and made it public.
4686
4687 2004-02-18  Martin Baulig  <martin@ximian.com>
4688
4689         * class.c (mono_class_inflate_generic_type): Clear the new
4690         instance's `nginst->klass' when inflating a generic instance.
4691         (mono_class_is_subclass_of): Added (basic) support for generic
4692         instances.
4693
4694 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4695
4696         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4697         MonoMempool to hold compiled native code.
4698
4699 2004-02-17  Martin Baulig  <martin@ximian.com>
4700
4701         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4702         `properties'.
4703
4704         * reflection.c (mono_reflection_generic_inst_initialize): Added
4705         `MonoArray *properties' argument.
4706
4707         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4708
4709 2004-02-17  Martin Baulig  <martin@ximian.com>
4710
4711         * icall.c (ves_icall_Type_GetFields): Renamed to
4712         ves_icall_Type_GetFields_internal() and added a
4713         `MonoReflectionType *rtype' argument; pass it to
4714         mono_field_get_object() to set the field's "reflected" type.
4715         (ves_icall_Type_GetConstructors): Likewise.
4716         (ves_icall_Type_GetEvents): Likewise.
4717         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4718         argument; pass it to mono_method_get_object() to set the method's
4719         "reflected" type.       
4720
4721 2004-02-17  Martin Baulig  <martin@ximian.com>
4722
4723         * class.h (MonoDynamicGenericInst): New type.
4724         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4725
4726         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4727         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4728         (ves_icall_MonoGenericInst_GetFields): New interncall.
4729
4730         * class.c (mono_class_from_generic): Don't call
4731         mono_class_initialize_generic() if this is a dynamic instance;
4732         ie. it's being created from a TypeBuilder.
4733         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4734         `class->byval_arg.type'.
4735
4736         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4737         to `inflate_method' and made static.
4738         (mono_reflection_inflate_field): Removed.
4739         (mono_reflection_generic_inst_initialize): New public method.
4740
4741         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4742         `ctors' and `fields'; added `initialized'.
4743
4744 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4745
4746         * debug-helpers.c (mono_method_full_name): Fix output for empty
4747         namespaces.
4748
4749 2004-02-12  Martin Baulig  <martin@ximian.com>
4750
4751         * class.h (MonoClassField): Added `MonoType *generic_type'.
4752
4753         * reflection.c (mono_image_get_fieldref_token): Added support for
4754         instantiated generic types.
4755         (field_encode_inflated_field): Removed.
4756         (mono_image_get_inflated_field_token): Removed.
4757         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4758
4759         * reflection.h (MonoReflectionInflatedField): Removed.
4760
4761 2004-02-12  Martin Baulig  <martin@ximian.com>
4762
4763         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4764         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4765
4766         * reflection.c (mono_image_get_methodspec_token): Take a
4767         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4768         (mono_image_create_token): Check whether we have a
4769         `method->signature->gen_method' and call
4770         mono_image_get_methodspec_token() if appropriate.
4771         (inflated_method_get_object): Removed.
4772         (mono_reflection_bind_generic_method_parameters): Return a
4773         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4774         (mono_reflection_inflate_method_or_ctor): Likewise.
4775
4776         * reflection.h (MonoReflectionInflatedMethod): Removed.
4777
4778 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4779
4780         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4781         for custom valuetype marshalling.
4782
4783         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4784
4785 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4786
4787         * icall.c: fixed WSAGetLastError_internal name.
4788
4789 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4790
4791         * threads.c (mono_thread_attach): Allow this to be called multiple
4792         times for a thread.
4793         
4794         * threads.c (build_wait_tids): Do not wait for ourselves.
4795
4796         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4797         appdomain list is empty.
4798
4799         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4800         memory returned by mono_string_builder_to_utf16, since it points into
4801         managed memory. Thanks to Bernie Solomon for noticing this.
4802
4803         * icall.c: Add AppDomainSetup icalls.
4804
4805         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4806
4807         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4808         types.
4809
4810         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4811         custom attributes to the method_aux struct. Also fix array indexes etc.
4812
4813         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4814         
4815 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4816
4817         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4818         (both static and runtime) and reduce startup time.
4819
4820 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4821
4822         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4823         AsAny marshalling conversion instead of crashing.
4824
4825         * marshal.c: Fix warnings.
4826
4827 2004-02-09  Martin Baulig  <martin@ximian.com>
4828
4829         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4830
4831         * reflection.h (MonoReflectionInflatedMethod): Removed the
4832         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4833
4834         * reflection.c (method_encode_methodspec): Removed the `method'
4835         argument; we get it from `gmethod->declaring'.
4836         (inflated_method_get_object): Removed the `declaring' argument.
4837
4838 2004-02-09  Martin Baulig  <martin@ximian.com>
4839
4840         * class.h (MonoGenericMethod): New type.
4841         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4842         `generic_method'.
4843
4844         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4845         a `MonoGenericMethod *gen_method' one.
4846
4847         * class.c (mono_class_inflate_generic_type): Take an additional
4848         `MonoGenericMethod * argument.  This is only non-NULL if we're
4849         inflating types for a generic method.   
4850         (mono_class_inflate_generic_signature): Renamed to
4851         inflate_generic_signature() and made static; take a
4852         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4853         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4854         instead of a `MonoGenericInst *' one.
4855         (mono_class_inflate_generic_method): Likewise.
4856
4857         * reflection.c (encode_generic_method_sig): Take a
4858         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4859         (method_encode_methodspec): Likewise.
4860         (inflated_method_get_object): Likewise. 
4861
4862         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4863         field with a `MonoGenericMethod *gmethod' one.  
4864
4865 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4866
4867         * class.h (mono_class_has_parent): add parens to expansion
4868         so you can ! this.
4869
4870 2004-02-08  Martin Baulig  <martin@ximian.com>
4871
4872         * image.h (MonoImage): Removed `generics_cache'.
4873
4874         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4875         instead of a `MonoType *' argument; removed the `inflate_methods'
4876         argument.  Don't inflate methods here.
4877
4878         * loader.c (find_method): If it's a generic instance, call
4879         mono_class_init() on the `sclass->generic_inst->generic_type'.
4880
4881         * metadata.c (mono_type_size): Make this work on uninitialized
4882         generic instances; call it on the `ginst->generic_type's class.
4883
4884         * reflection.c (mono_reflection_bind_generic_parameters): Call
4885         mono_class_from_generic() to create the `ginst->klass'.
4886
4887 2004-02-08  Martin Baulig  <martin@ximian.com>
4888
4889         * class.h (MonoClass): Changed type of `generic_inst' from
4890         `MonoType *' to `MonoGenericInst *'.
4891
4892 2004-02-08  Martin Baulig  <martin@ximian.com>
4893
4894         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4895         mono_type_get_object(), this is now creating a `MonoGenericInst'
4896         for MONO_TYPE_GENERICINST.
4897         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4898         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4899
4900         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4901         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4902         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4903         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4904         and reflected type.
4905
4906         * reflection.h (MonoReflectionInflatedMethod): Removed
4907         `declaring_type' and `reflected_type'.
4908
4909 2004-02-08  Martin Baulig  <martin@ximian.com>
4910
4911         * class.h (MonoGenericInst): Added `MonoType *parent' and
4912         `MonoType **ifaces'.
4913
4914         * reflection.h (MonoReflectionGenericInst): Removed `klass',
4915         `parent' and `interfaces'.
4916
4917         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4918         `MonoType *' argument and return a `MonoType *'.
4919
4920         * icall.c
4921         (ves_icall_MonoGenericInst_GetParentType): New interncall.
4922         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
4923
4924 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4925
4926         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
4927         valuetype marshalling.
4928
4929 2004-02-06  Martin Baulig  <martin@ximian.com>
4930
4931         * class.c
4932         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
4933         (my_mono_class_from_generic_parameter): Likewise.
4934
4935 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4936
4937         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
4938         contents of the symbol files lazily.
4939
4940         * object.h (MonoThread): Add 'name' and 'name_len' fields.
4941
4942         * threads.h threads.c icall.c: New icalls for getting and setting the
4943         threads name.
4944
4945 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
4946
4947         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
4948         Raise an exception when the domain is not found.
4949
4950 2004-02-03  Martin Baulig  <martin@ximian.com>
4951
4952         * reflection.c (mono_image_get_methodspec_token): Use the
4953         uninflated signature; fixes gen-33.
4954
4955 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
4956
4957         * gc.c threads.c: Make the finalizer thread a normal managed thread so
4958         the finalizer code can use thread functionality.
4959
4960         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
4961         the finalizer thread.
4962
4963         * threads.c: Make some functions more robust.
4964
4965         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
4966
4967         * metadata.h: Add new marshalling conventions.
4968
4969         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
4970         stringbuilder marshalling. Fixes #53700.
4971
4972         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
4973
4974         * reflection.c (mono_image_get_type_info): Save declarative security
4975         info.
4976
4977         * reflection.c (mono_image_get_field_info): Handle uninitialized 
4978         unmanaged fields as well.
4979
4980         * appdomain.c: Bump corlib version.
4981
4982 2004-02-01  Martin Baulig  <martin@ximian.com>
4983
4984         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
4985         method type arguments.  
4986
4987 2004-01-30  Duncan Mak  <duncan@ximian.com>
4988
4989         * marshal.h: Add prototype for
4990         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
4991         and
4992         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
4993         fix the build.
4994
4995 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
4996
4997         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
4998         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
4999
5000 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5001
5002         * marshal.c (mono_marshal_get_native_wrapper): Add support for
5003         custom marshalling of valuetypes.
5004
5005         * marshal.c: Fix some warnings.
5006
5007 2004-01-29  Martin Baulig  <martin@ximian.com>
5008
5009         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
5010         for generic method parameters.
5011
5012         * reflection.c (method_encode_methodspec): Write the uninflated
5013         signature into the methodspec table.
5014         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
5015         is always the uninflated method.
5016         (reflection_methodbuilder_to_mono_method): Copy the generic
5017         parameters from the MethodBuilder into `header->gen_params'.
5018
5019 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5020
5021         * class.c (mono_class_from_generic_parameter): Fix warning.
5022
5023 2004-01-27  Martin Baulig  <martin@ximian.com>
5024
5025         * class.c (mono_class_from_generic_parameter): Don't create
5026         `klass->methods' here.  
5027
5028 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
5029
5030         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
5031         extension since it does not work with libraries named lib<FOO>.dll.so.
5032
5033 2004-01-25  Martin Baulig  <martin@ximian.com>
5034
5035         * class.c (mono_class_inflate_generic_type): Added support for
5036         MONO_TYPE_GENERICINST.
5037
5038         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
5039         inflate methods on open constructed types.      
5040
5041 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5042
5043         * object.c: fire ProcessExit event in the root AppDomain after running
5044         Main. Fixes bug #53299.
5045
5046 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
5047
5048         * socket-io.c: include the new socket-wrappers.h header.
5049         Use the wrappers instead of the unix socket functions to make the code
5050         more clear.
5051
5052 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
5053
5054         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
5055
5056         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5057         Fixes #22532.
5058
5059 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
5060
5061         * reflection.c (mono_image_create_pefile): Handle the case when the
5062         entry point is not a MethodBuilder.
5063
5064         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5065         field to ReflectionMethod since it is not allways a builder.
5066
5067         * reflection.c (type_get_fully_qualified_name): New helper function to
5068         return the fully qualified name of a type.
5069
5070         * reflection.c (encode_marshal_blob): Always emit the fully qualified
5071         type name for custom marshallers.
5072
5073         * reflection.c (mono_marshal_spec_from_builder): Ditto.
5074
5075         * class.c (mono_class_setup_vtable): If a parent class already 
5076         implements an interface, use the implementing methods from that class.
5077         Fixes #53148.
5078
5079 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5080
5081         * threadpool.c: just return instead of ExitThread to allow for thread
5082         clean up earlier.
5083
5084 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
5085
5086         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
5087         when closing resource modules.
5088
5089         * reflection.c (mono_image_create_pefile): Handle the case when the
5090         entry point is not a MethodBuilder.
5091
5092         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5093         field to ReflectionMethod since it is not allways a builder.
5094
5095 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5096
5097         * marshal.c (mono_marshal_get_managed_wrapper): 
5098         mono_marshal_alloc takes native int so CONV_I
5099         the arg for 64bits.
5100
5101 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
5102
5103         * reflection.c (fixup_cattrs): New function to fixup the methoddef
5104         tokens in the cattr table. Fixes #53108.
5105
5106 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5107
5108         * loader.c: don't trim ".dll" before looking up in the config file.
5109         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5110
5111 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5112
5113         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
5114         Return the module which contains the resource as well.
5115         (ves_icall_System_Reflection_Module_Close): New icall.
5116
5117         * appdomain.c: Bump corlib version number.
5118
5119         * image.c (mono_image_addref): New public function.
5120
5121         * assembly.c: Call mono_image_addref.
5122
5123         * reflection.c (mono_module_get_object): Increase reference count of 
5124         the image.
5125
5126         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5127         Fixes #22532.
5128
5129         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5130         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5131         proper exceptions on DllImport problems.
5132
5133 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5134
5135         * class.c, metadata.c: eliminate CSIZE macro.
5136
5137 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5138
5139         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5140         * object.h: Added async_callback field in MonoAsyncResult.
5141         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5142         * verify.c: Added async_callback in MonoAsyncResult layout.
5143
5144 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5145
5146         * reflection.c (mono_reflection_get_custom_attrs): Add support
5147         for Modules.
5148
5149 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5150
5151         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5152         marshalling.
5153         (mono_marshal_method_from_wrapper): Add null pointer check.
5154
5155 2004-01-16  Martin Baulig  <martin@ximian.com>
5156
5157         * debug-mono-symfile.h: Set version number to 36 and reflect
5158         latest symbol writer changes.
5159
5160 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5161
5162         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5163         multi-dimensional arrays.
5164         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5165         (mono_class_from_mono_type): Use bounded_array_class_get.
5166         
5167         * class.c (mono_bounded_array_class_get): New function which takes
5168         a 'bounded' bool argument to distinguish vectors from one dimensional
5169         arrays.
5170
5171         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5172         bounded_array_class_get if the array has bounds.
5173
5174         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5175         Search modules loaded using AssemblyBuilder:AddModule as well.
5176
5177 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5178
5179         * appdomain.c: increased corlib version.
5180         * filewatcher.c: removed g_print.
5181         * icall.c:
5182         (get_property_info): only allocate what is actually requested.
5183         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5184
5185 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5186
5187         * Makefile.am: added filewatcher.[ch]
5188         * filewatcher.[ch]: FileSystemWatcher runtime support.
5189         * icall.c: added new FSW icalls.
5190
5191 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5192
5193         * string-icalls.c: fix stringbuilder regression as suggested by
5194         Iain McCoy <iain@mccoy.id.au>.
5195
5196 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5197
5198         * process.c (process_read_stringtable_block): Recognize '007f' as
5199         a language neutral stringtable block.
5200
5201 2004-01-12  Patrik Torstensson
5202
5203         * object.h (MonoStringBuilder) : Changed layout to support our
5204         new stringbuilder class.
5205         * marshal.c: Change marshalling to support the new layout of 
5206         string builder.
5207         * appdomain.c: increased version number because new layout of
5208         string builder.
5209
5210 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5211
5212         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5213         assembly name as an string instead of an AssemblyName, since it is
5214         easier to extract info from it.
5215
5216         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5217         the culture subdirectories too. Fixes #52231.
5218
5219 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5220
5221         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5222         It takes 2 new parameters with an optional name for the method to look
5223         for and case ignoring info.
5224
5225         * threadpool.c: removed unused variable.
5226
5227 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5228
5229         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5230         It takes 2 new parameters with an optional name for the property to look
5231         for and case ignoring info.
5232         Fixes bug #52753.
5233
5234 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5235
5236         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5237         Fix #52451.
5238
5239 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5240
5241         * appdomain.c:
5242         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5243         Fixes bug #52630.
5244
5245 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5246
5247         * reflection.c: Add support for more than one unmanaged resource.
5248
5249         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5250         in field->def_value, as done in all other cases.
5251
5252         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5253         TypeBuilders.
5254
5255         * reflection.c (mono_reflection_create_runtime_class): Remove 
5256         errorneous assignment to klass->element_class, since it is already
5257         done in mono_reflection_setup_internal_class.
5258
5259 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5260
5261         * gc.c: added missing LeaveCriticalSection.
5262         * icall.c: indented a couple of lines.
5263         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5264         if we call EndInvoke inside a callback. Fixes bug #52601.
5265
5266 2004-01-07  Martin Baulig  <martin@ximian.com>
5267
5268         * mono-debug-debugger.h
5269         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5270
5271 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5272
5273         * appdomain.c: Use messages in NotImplementedException.
5274
5275         * exception.c (mono_get_exception_not_implemented): Now this takes
5276         a message argument.
5277
5278         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5279         exception instead of g_asserting an aborting when something is not
5280         implemented.
5281
5282         Add some inline docs.
5283
5284 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5285
5286         * reflection.h: Update after changes to object layout.
5287
5288         * reflection.c: Implement saving of unmanaged aka win32 resources.
5289
5290         * appdomain.c: Bump version number.
5291
5292         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5293         Handle missing domains gracefully.
5294
5295 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5296
5297         * file-io.c : On Windows, there are much more invalid_path_chars.
5298
5299 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5300
5301         * class.h, object.c: prepare for GetType () speedup.
5302
5303 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5304
5305         * profiler.c: workaround for --profile null reference exception on
5306           cygwin. Patch by Patrik Torstensson.
5307
5308 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5309
5310         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5311         make work for unaligned access.
5312
5313 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5314
5315         * class.c: small cleanup (class->fields [i] -> field).
5316         * image.c: check address of metadata is valid.
5317
5318 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5319
5320         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5321         search the list of loaded assemblies.
5322
5323         * reflection.c (mono_reflection_type_from_name): Use 
5324         mono_assembly_loaded instead of mono_image_loaded.
5325
5326         * reflection.c: Fix warnings.
5327
5328 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5329
5330         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5331         is dynamic. This is needed since an assembly can contain both dynamic and
5332         non-dynamic images.
5333
5334         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5335         assembly->dynamic.
5336
5337         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5338
5339         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5340         to store modules loaded using AddModule.
5341
5342         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5343         on Modules.
5344
5345         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5346
5347         * reflection.c (mono_image_fill_export_table_from_module): New function to
5348         fill out the EXPORTEDTYPES table from a module.
5349
5350         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5351         into a separate function. Also handle loaded non-dynamic modules.
5352
5353         * reflection.c (mono_image_basic_init): Fix memory allocation.
5354
5355         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5356
5357         * assembly.c (mono_assembly_load_references): Make this public.
5358
5359 2003-12-19  Martin Baulig  <martin@ximian.com>
5360
5361         * class.c (mono_class_initialize_generic): Made this static, take
5362         a `MonoGenericInst *' instead of a `MonoClass *'.
5363         (mono_class_from_generic): Call mono_class_initialize_generic()
5364         unless we're already initialized or being called from
5365         do_mono_metadata_parse_generic_inst().
5366
5367         * class.h (MonoGenericInst): Added `initialized' and
5368         `init_pending' flags.
5369
5370         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5371         `mono_class_init (gklass)' or mono_class_initialize_generic()
5372         here; set `generic_inst->init_pending' while parsing the
5373         `type_argv'.
5374
5375 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5376
5377         * locales.c: include string.h for memxxx prototypes
5378
5379 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5380
5381         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5382         constructor when accessing literal fields.
5383
5384 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5385
5386         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5387
5388         * reflection.c (assembly_add_resource_manifest): New function to fill
5389         the MANIFESTRESOURCE table.
5390
5391         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5392
5393         * reflection.h: Update to changes in class layout.
5394
5395         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5396         Reenable call to mono_runtime_is_shutting_down ().
5397
5398         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5399         determine if the runtime is shutting down.
5400
5401 2003-12-16  Jackson Harper <jackson@ximian.com>
5402
5403         * icall.c: comment out call to mono_runtime_is_shutting_down to
5404         fix build.
5405         
5406 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5407
5408         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5409         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5410
5411 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5412
5413         * reflection.c: move definition of swap_with_size
5414         to before its first call
5415
5416 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5417
5418         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5419
5420         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5421         icall.
5422
5423         * object.c: Fix warnings.
5424
5425         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5426         members if FlattenHierarchy is set.
5427
5428         * reflection.c (mono_image_add_decl_security): New function to emit
5429         declarative security.
5430
5431         * reflection.h reflection.c: Add support for declarative security.
5432
5433         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5434         
5435 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5436
5437         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5438         
5439         * appdomain.c verify.c: Moved corlib version checking into its own
5440         function in appdomain.c since it needs to create vtables etc.
5441
5442 2003-12-13  Patrik Torstensson <p@rxc.se>
5443
5444         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5445         instead of unwrapped server.
5446
5447 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5448
5449         * verify.c (check_corlib): Fix field index.
5450
5451 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5452
5453         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5454         GetGacPath icall.
5455
5456 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5457
5458         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5459         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5460         cope with sizeof(size_t) != sizeof(guint32).
5461
5462 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5463
5464         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5465         in case of failure.
5466
5467 2003-12-10  Mark Crichton <crichton@gimp.org>
5468
5469         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5470         in managed code.
5471
5472         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5473
5474 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5475
5476         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5477         marked as deleted.
5478
5479 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5480
5481         * verify.c (check_corlib): Handle the case when the version field is 
5482         initialized by a static constructor.
5483
5484 2003-12-08  Patrik Torstensson  <p@rxc.se>
5485
5486     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5487
5488 2003-12-08  Martin Baulig  <martin@ximian.com>
5489
5490         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5491         a MonoReflectionGenericParameter, also take the parameter index
5492         and name as arguments.
5493         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5494         (ves_icall_MonoGenericParam_initialize): New interncall.
5495         (ves_icall_Type_make_byref_type): New interncall.
5496
5497         * reflection.h (MonoReflectionGenericParam): Derive from
5498         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5499         `index' fields.
5500
5501         * reflection.c (mono_reflection_define_generic_parameter): Create
5502         and return a new MonoReflectionGenericParam; don't initialize the
5503         constraints here.
5504         (mono_reflection_initialize_generic_parameter): New public method;
5505         initializes the constraints and creates the `param->pklass'.
5506
5507 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5508
5509         * reflection.h reflection.c: Use the new fields 'num_types', 
5510         'num_fields' and 'num_methods' to track the number of types etc.
5511
5512         * verify.c (check_corlib): Check corlib version number.
5513
5514 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5515
5516         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5517         function works on all methods.
5518
5519 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5520
5521         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5522         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5523         the custom_type_info flag of the transparent proxy.
5524         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5525         objects that supports IRemotingTypeInfo.
5526         * object.h: Added custom_type_info field in transparent proxy.
5527
5528 2003-12-06  Martin Baulig  <martin@ximian.com>
5529
5530         * class.c (mono_class_create_from_generic): Removed.
5531         (mono_class_from_generic): Check `ginst->klass' before doing
5532         anything else.  This is important to fully support "recursive"
5533         generic types.
5534
5535         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5536         empty `generic_inst->klass' before doing anything else.
5537
5538 2003-12-06  Dick Porter  <dick@ximian.com>
5539
5540         * verify.c: 
5541         * object.h:
5542         * icall.c:
5543         * locales.c: Use C structs to access class fields.  Don't do a
5544         conversion between MonoString and UChar because both are
5545         platform-endian UTF-16.  Compare now takes startindex and count
5546         parameters.  Add a char overload for IndexOf.  Speed up the
5547         invariant string IndexOf.
5548
5549 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5550
5551         * Makefile.am (monosn_LDADD): Fix parallel build.
5552
5553 2003-12-04  Martin Baulig  <martin@ximian.com>
5554
5555         * icall.c
5556         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5557         (ves_icall_Type_make_array_type): New interncall.       
5558
5559 2003-12-04  Martin Baulig  <martin@ximian.com>
5560
5561         * locales.c: also change it in the !HAVE_ICU case.
5562
5563 2003-12-04  Dick Porter  <dick@ximian.com>
5564
5565         * icall.c:
5566         * locales.c: construct_compareinfo is now in CompareInfo, not
5567         CultureInfo.
5568
5569 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5570
5571         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5572         image->files array.
5573
5574         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5575         table as well.
5576
5577         * assembly.c (mono_assembly_load_references): Only load references
5578         once.
5579
5580         * class.c (mono_class_from_name): Avoid linear search of the 
5581         EXPORTEDTYPE table.
5582
5583         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5584
5585 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5586
5587         * image.h (MonoImage): Add 'field_cache' field.
5588
5589         * loader.c (mono_field_from_token): Cache field lookups.
5590         
5591         * reflection.c (mono_module_get_object): Fix name property.
5592
5593         * icall.c (ves_icall_get_enum_info): Update after changes to 
5594         mono_metadata_get_constant_index ().
5595
5596         * icall.c: Get rid of get_type_info icall, use a separate icall for
5597         each type property to avoid needless memory allocations. Fixes #51514.
5598
5599         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5600         to avoid needless binary searches.
5601
5602         * class.c (class_compute_field_layout): Move the initialization of
5603         field->def_value to mono_class_vtable ().
5604
5605         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5606         non-corlib types.
5607
5608         * object.c (mono_object_allocate): Make it inline.
5609
5610         * object.c (mono_object_allocate_spec): Make it inline.
5611         
5612 2003-12-02  Dick Porter  <dick@ximian.com>
5613
5614         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5615         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5616
5617 2003-12-01  Dick Porter  <dick@ximian.com>
5618
5619         * threads.c: Fix signature and call in CreateMutex and
5620         CreateEvent.
5621
5622 2003-12-01  Dick Porter  <dick@ximian.com>
5623
5624         * icall.c: 
5625         * locales.c: Implement string compares and searching
5626
5627         * object.h: Add extra Thread field
5628
5629 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5630
5631         * reflection.c (fixup_method): Add support for MonoCMethod.
5632
5633 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5634
5635         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5636
5637         * reflection.c (assembly_name_to_aname): Allow extra characters in
5638         assembly names. Fixes #51468.
5639
5640 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5641
5642         * exception.c (mono_exception_from_name_domain): New helper function.
5643
5644         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5645         exception object in the correct domain.
5646
5647         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5648         formatting + make a copy a the input data.
5649
5650         * loader.c (mono_get_method_from_token): Methods which contain
5651         native code do not have entries in the ImplMap.
5652
5653         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5654         Thanks to Gonzalo for spotting this.
5655         
5656         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5657         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5658
5659         * assembly.h (mono_assembly_load_from): Split the second part of 
5660         assembly loading into a new public function.
5661
5662         * exception.h (mono_get_exception_bad_image_format): New function.
5663
5664 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5665
5666         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5667         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5668         
5669         * icall.c: Add new icall for creating dynamic methods.
5670
5671         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5672
5673         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5674
5675         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5676         create a dynamic method.
5677
5678         * reflection.c (resolve_object): New helper function.
5679
5680         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5681         which manipulate it so they can also work on dynamic methods.
5682
5683         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5684         creating the MonoReflectionMethodAux structure if it is not needed.
5685         
5686         * reflection.h verify.c: Update after changes to object layout.
5687
5688         * reflection.c (method_builder_encode_signature): Fix compilation on
5689         gcc 2.95.x.
5690
5691 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5692
5693         * appdomain.h: Added support for context static fields. Added static_data
5694           field to MonoAppContext and renamed thread_static_fields to a more
5695           generic special_static_fields in MonoAppDomain, since it can now contain
5696           context static fields.
5697         * domain.c: Updated hashtable name.
5698         * object.c: Replaced field_is_thread_static() for a more generic
5699           field_is_special_static() which also checks for context static attribute.
5700           In mono_class_vtable(), added support for static context fields.
5701         * threads.c: Changed methods that manage thread static fields to more
5702           generic methods so they can be reused both for thread and context static
5703           data.
5704         * threads.h: Declared some new methods.
5705
5706 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5707
5708         * reflection.h: Update after changes to the managed types.
5709
5710         * reflection.c (encode_custom_modifiers): New helper function.
5711
5712         * reflection.c (method_encode_signature): Emit custom modifiers.
5713
5714         * reflection.c (field_encode_signature): Emit custom modifiers.
5715
5716 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5717
5718         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5719
5720         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5721         implementation.
5722
5723         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5724         icall.
5725
5726         * object.c (mono_field_get_value_object): New function.
5727
5728         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5729         specific.
5730
5731 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5732
5733         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5734         return a preallocated out-of-memory exception instance.
5735
5736         * object.c (out_of_memory): Use the new function.
5737
5738         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5739         flag is before the custom modifiers. Fixes #49802.
5740
5741 2003-11-16  Martin Baulig  <martin@ximian.com>
5742
5743         * class.c (mono_class_is_open_constructed_type): Implemented the
5744         MONO_TYPE_GENERICINST case.
5745
5746 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5747
5748         * assembly.c (mono_assembly_fill_assembly_name): New function to
5749         fill out the MonoAssemblyName structure.
5750         (mono_assembly_open): Use the new function.
5751
5752         * icall.c (fill_reflection_assembly_name): New helper function.
5753
5754         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5755         new function.
5756
5757         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5758
5759 2003-11-15  Martin Baulig  <martin@ximian.com>
5760
5761         * class.c (mono_class_is_open_constructed_type): New public
5762         function; checks whether a type is an open constructed type,
5763         ie. whether it still contains type parameters.
5764         (mono_class_inflate_generic_type): If we're a type parameter and
5765         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5766         type.
5767
5768         * class.h (MonoGenericInst): Added `guint32 is_open'.
5769
5770         * loader.c (method_from_methodspec): Check whether we're an open
5771         or closed constructed type and set `ginst->is_open'.
5772
5773         * reflection.c (mono_reflection_bind_generic_parameters): Check
5774         whether we're an open or closed constructed type and set
5775         `ginst->is_open'.
5776         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5777         from open constructed types.
5778
5779 2003-11-15  Martin Baulig  <martin@ximian.com>
5780
5781         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5782         a generic instance (instead of a generic type declaration) with
5783         unbound generic parameters, bind them to our actual types.
5784
5785 2003-11-14  Martin Baulig  <martin@ximian.com>
5786
5787         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5788
5789         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5790         an interface type, populate `res->interfaces' with instantiated
5791         versions of all the interfaces we inherit.
5792
5793 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5794
5795         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5796         when MONO_PATH is set but doesn't contain the install dir.
5797
5798 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5799
5800         * icall.c:
5801         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5802         it's also implemented in base classes. Fixes bug #50927.
5803
5804 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5805
5806         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5807         if this method is called from a finalizer. Fixes #50913.
5808
5809 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5810
5811         * threads.c: Implement VolatileRead/VolatileWrite
5812
5813         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5814
5815 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5816
5817         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5818         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5819         2.95.3.
5820
5821         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5822         from Peter Ross (pro@missioncriticalit.com).
5823         
5824 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5825
5826         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5827
5828 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5829
5830         * assembly.c (mono_assembly_load_references): Disable check because it
5831         triggers on older corlibs which lots of people have.
5832
5833 2003-11-12  Jackson Harper  <jackson@ximian.com>
5834
5835         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5836         load corlib.dll if mscorlib.dll is not found.
5837         * assembly.h: Remove corlib name define.
5838         * class.c:
5839         * domain.c:
5840         * image.c: Change corlib name to mscorlib.
5841         
5842 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5843
5844         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5845
5846 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5847
5848         * appdomain.h: Added loader_optimization here to sync with the C#
5849         code, and add disallow_binding_redirects field.
5850
5851 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5852
5853         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5854
5855         * reflection.c (mono_image_build_metadata): Fix crash on modules
5856         with no types.
5857
5858         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5859
5860         * icall.c (ves_icall_get_method_info): Return callingConvention as
5861         well.
5862
5863         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5864         namespaces from the EXPORTEDTYPE table as well.
5865
5866         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5867         from all modules inside the assembly.
5868         
5869 2003-11-11  Martin Baulig  <martin@ximian.com>
5870
5871         * reflection.c (mono_reflection_bind_generic_parameters): Make
5872         this work for interfaces.
5873
5874 2003-11-11  Martin Baulig  <martin@ximian.com>
5875
5876         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5877
5878 2003-11-11  Martin Baulig  <martin@ximian.com>
5879
5880         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5881         "MonoInflatedMethod" and "MonoInflatedCtor".
5882
5883 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5884
5885         * reflection.c (resolution_scope_from_image): Use the assembly table
5886         from the manifest module, since other modules don't have it.
5887
5888         * debug-helpers.c (mono_type_full_name): New helper function.
5889
5890         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5891
5892         * image.c (mono_image_load_file_for_image): New public function which
5893         is a replacement for the load_file_for_image in class.c.
5894
5895         * assembly.c (mono_assembly_load_module): A wrapper for the function
5896         above which does assembly association and reference loading too.
5897
5898         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5899
5900 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5901
5902         * appdomain.c: not all of the attributes for the full assembly name
5903         are required and the order doesn't matter. Fixes bug #50787.
5904
5905 2003-11-10  Dick Porter  <dick@ximian.com>
5906
5907         * locales.c: Use platform-endian UTF16
5908
5909 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5910
5911         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5912         
5913 2003-11-10  Martin Baulig  <martin@ximian.com>
5914
5915         * metadata.c
5916         (mono_metadata_load_generic_params): Make this actually work.
5917
5918         * reflection.c (mono_reflection_bind_generic_parameters): If our
5919         parent is a generic instance, pass all the `types' to it, no
5920         matter whether it has the same number of type parameters or not.
5921
5922 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5923
5924         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5925
5926         * assembly.c (mono_assembly_load_references): Move the image<->assembly
5927         assignment code to this function so it gets called recursively for all
5928         modules.
5929
5930         * image.c (load_modules): Remove the assembly assignment since it is
5931         now done by mono_assembly_load_references.
5932         
5933         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5934         Add 'module' argument.
5935         (mono_module_get_types): New helper function.
5936         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
5937
5938 2003-11-08  Martin Baulig  <martin@ximian.com>
5939
5940         * class.c (mono_class_inflate_generic_method): Interface method
5941         don't have a header.
5942
5943         * reflection.c (mono_image_get_methodspec_token): Take an
5944         additional `MonoGenericInst *' argument instead of reading it from
5945         the header; this is necessary to support interfaces.
5946         (mono_image_create_token): Pass the `MonoGenericInst *' from the
5947         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
5948         (inflated_method_get_object): Take an additional `MonoGenericInst *'
5949         argument.
5950
5951         * reflection.h (MonoReflectionInflatedMethod): Added
5952         `MonoGenericInst *ginst'.
5953
5954 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
5955
5956         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
5957
5958 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
5959
5960         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
5961
5962 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
5963
5964         * reflection.c 
5965         (reflection_methodbuilder_from_method_builder):
5966         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
5967         initialize a ReflectionMethodBuilder structure.
5968         (mono_image_get_methodbuilder_token):
5969         (mono_image_get_ctorbuilder_token): New functions to emit memberref
5970         tokens which point to types in another module inside the same assembly.
5971
5972         * reflection.c: Use the new helper functions.
5973         
5974         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
5975
5976         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
5977         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
5978
5979         * reflection.c (resolution_scope_from_image): Emit a moduleref if
5980         neccesary.
5981
5982         * reflection.c (mono_image_build_metadata): Emit metadata only for the
5983         current module. Emit the manifest only for the main module.
5984
5985         * reflection.c (mono_image_create_token): Add assertion when a 
5986         memberref needs to be created.
5987
5988         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
5989
5990         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
5991         larger buffer for the custom attribute blob. Fixes #50637.
5992         
5993 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5994
5995         * threadpool.c: notify listener on async processing handles after
5996         invoking the async callback. Thanks to Zoltan.
5997
5998 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5999
6000         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
6001         avoid code duplication.
6002
6003         * reflection.h (MonoDynamicImage): New type which is currently unused,
6004         but will be used through the ref.emit code in place of 
6005         MonoDynamicAssembly.
6006
6007         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6008         object layout.
6009
6010         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
6011         a MonoDynamicImage instead of just a MonoImage.
6012         
6013         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
6014         icalls to ModuleBuilder but keep their semantics, so they will work
6015         with moduleb->assemblyb. This will change later.
6016         
6017 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6018
6019         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6020         object layout.
6021
6022         * reflection.c (mono_image_build_metadata): Avoid creation of a default
6023         main module, since it is now done by the managed code.
6024
6025 2003-11-03  Martin Baulig  <martin@ximian.com>
6026
6027         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
6028         `ginst->klass' here.
6029         (method_encode_methodspec): Don't use the `ginst->generic_method's
6030         klass if it's a generic instance, use `ginst->klass' in this case.
6031
6032 2003-11-03  Martin Baulig  <martin@ximian.com>
6033
6034         * reflection.c (mono_image_get_generic_method_param_info):
6035         Removed, use mono_image_get_generic_param_info() instead.
6036         (mono_image_get_type_info): Write the GenericParam table before
6037         the Method table.  This is neccessary because in the GenericParam
6038         table, type parameters of the class (ie. '!0' etc.) must come
6039         before the ones from its generic methods (ie. '!!0' etc).
6040
6041 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6042
6043         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
6044
6045 2003-11-02  Martin Baulig  <martin@ximian.com>
6046
6047         * reflection.c (create_generic_typespec): Take a
6048         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
6049         the generic parameters from it.
6050
6051 2003-11-02  Martin Baulig  <martin@ximian.com>
6052
6053         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
6054         instead of a `MonoClassField *' since we just need the type.
6055         (create_generic_typespec): New static function.  Creates a
6056         TypeSpec token for a generic type declaration.
6057         (mono_image_get_generic_field_token): New static function.
6058         (mono_image_create_token): If we're a FieldBuilder in a generic
6059         type declaration, call mono_image_get_generic_field_token() to get
6060         the token.
6061
6062 2003-11-02  Martin Baulig  <martin@ximian.com>
6063
6064         * reflection.h
6065         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
6066         `MonoReflectionGenericInst *declaring_type' and
6067         `MonoReflectionGenericInst *reflected_type' fields.
6068
6069         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
6070         `MonoReflectionGenericInst *declaring_type' and a
6071         `MonoReflectionGenericInst *reflected_type' argument instead of a
6072         single `MonoReflectionGenericInst *type' one.  Set
6073         `res->declaring_type' and `res->reflected_type' from them.
6074         (mono_reflection_inflate_field): Likewise.      
6075
6076 2003-11-02  Martin Baulig  <martin@ximian.com>
6077
6078         * class.c (mono_class_setup_vtable): Don't store generic methods
6079         in the vtable.  
6080
6081 2003-11-02  Martin Baulig  <martin@ximian.com>
6082
6083         * reflection.h (MonoReflectionGenericInst): Added
6084         `MonoReflectionType *declaring_type'.
6085
6086         * reflection.c (mono_reflection_bind_generic_parameters): Use
6087         `if (tb->parent)' instead of `klass->parent'.
6088
6089 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
6090
6091         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
6092         with an empty ASSEMBLY table.
6093
6094         * reflection.c (mono_image_build_metadata): Avoid using the same loop
6095         variable in the inner and outer loops.
6096
6097 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
6098
6099         * metadata.h (mono_metadata_make_token): Put parentheses around macro
6100         argument.
6101
6102         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
6103         
6104         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
6105         icalls. Instead, do everything in managed code. This is needed since
6106         it is hard to restore the original domain etc. in unmanaged code in the
6107         presence of undeniable exceptions.
6108
6109         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
6110         New icalls to push and pop appdomain refs.
6111
6112 2003-10-31  Martin Baulig  <martin@ximian.com>
6113
6114         * class.c (inflate_generic_type): Renamed to
6115         mono_class_inflate_generic_type() and made it public.
6116
6117         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6118         New interncall.
6119
6120         * loader.c (mono_field_from_memberref): Also set the retklass for
6121         typespecs.
6122
6123         * fielder.c (mono_image_get_inflated_field_token): New static
6124         method; creates a metadata token for an inflated field.
6125         (mono_image_create_token, fixup_method): Added support for
6126         "MonoInflatedField".
6127         (fieldbuilder_to_mono_class_field): New static function.
6128         (mono_reflection_inflate_field): New public function.
6129
6130         * reflection.h
6131         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6132         (MonoReflectionInflatedField): New typedef.     
6133
6134 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6135
6136         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6137         for Solaris and other platforms without s6_addr16
6138
6139 2003-10-30  Martin Baulig  <martin@ximian.com>
6140
6141         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6142         argument instead of two.
6143         (mono_class_inflate_generic_signature): Likewise.
6144         (inflate_generic_header): Likewise.
6145         (mono_class_inflate_generic_method): Likewise.  In addition, if
6146         `ginst->klass' is set, it becomes the new `method->klass'.
6147
6148         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6149         field.
6150
6151         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6152         first byte. [FIXME]
6153         (method_encode_methodspec): If we have generic parameters, create
6154         a MethodSpec instead of a MethodRef.
6155         (fixup_method): Added support for "MonoInflatedMethod" and
6156         "MonoInflatedCtor".
6157         (mono_image_create_token): Added support for "MonoInflatedMethod"
6158         and "MonoInflatedCtor".
6159         (inflated_method_get_object): New static function; returns a
6160         managed "System.Reflection.MonoInflatedMethod" object.
6161         (mono_reflection_bind_generic_method_parameters): Return a
6162         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6163         (mono_reflection_inflate_method_or_ctor): Likewise.
6164         (mono_image_get_generic_method_param_info): Initialize unused
6165         fields to zero.
6166         (mono_image_get_generic_param_info): Likewise.
6167
6168         * reflection.h (MonoReflectionInflatedMethod): New public
6169         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6170         "S.R.MonoInflatedCtor" classes.
6171
6172         * loader.c (method_from_memberref): If we're a TypeSpec and it
6173         resolves to a generic instance, inflate the method.
6174
6175 2003-10-28  Dick Porter  <dick@ximian.com>
6176
6177         * object.c (mono_runtime_run_main): Convert command-line arguments
6178         into utf8, falling back to the user's locale encoding to do so.
6179
6180 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6181
6182         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6183         at this time.
6184
6185         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6186
6187         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6188         up icalls at method definition time. Partially fixes #33569.
6189
6190 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6191
6192         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6193         marshalling of arrays. Fixes #50116.
6194
6195         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6196
6197         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6198         points to a vtable in the dying appdomain.
6199
6200         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6201         listeners into unmanaged code inside the lock.
6202
6203         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6204         domains and add some comments.
6205
6206 2003-10-25  Martin Baulig  <martin@ximian.com>
6207
6208         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6209
6210         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6211
6212         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6213         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6214         currently parsing.  Create the generic class and store it in
6215         `generic_inst->klass' before parsing the type arguments.  This is
6216         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6217         for an example.
6218         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6219         to support recursive typespec entries.
6220
6221         * class.c (mono_class_setup_parent): If our parent is a generic
6222         instance, we may get called before it has its name set.
6223         (mono_class_from_generic): Splitted into
6224         mono_class_create_from_generic() and mono_class_initialize_generic().
6225
6226 2003-10-25  Martin Baulig  <martin@ximian.com>
6227
6228         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6229         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6230         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6231         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6232
6233         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6234         (create_typespec): Likewise.
6235         (mono_reflection_bind_generic_parameters): Return a
6236         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6237         (mono_reflection_inflate_method_or_ctor): New public function.
6238
6239         * reflection.h (MonoReflectionGenericInst): New typedef.        
6240
6241 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6242
6243         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6244         inside the domain lock. Fixes #49993.
6245         
6246         * object.c (mono_class_vtable): When typed allocation is used, 
6247         allocate vtables in the GC heap instead of in the mempool, since the
6248         vtables contain GC descriptors which are used by the collector even
6249         after the domain owning the mempool is unloaded.
6250
6251         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6252
6253         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6254         reflect what it does. Also invalidate mempools instead of freeing
6255         them if a define is set.
6256
6257         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6258         of the appdomain.
6259         
6260         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6261         hold the finalizable objects in this domain.
6262
6263         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6264         appdomain.
6265
6266         * appdomain.c (mono_domain_set): New function to set the current
6267         appdomain, but only if it is not being unloaded.
6268
6269         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6270         appdomain which is being unloaded.
6271         
6272         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6273         unloading of the root appdomain.
6274
6275         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6276         icall to execute a method in another appdomain. Intended as a 
6277         replacement for InternalSetDomain, which can confuse the code 
6278         generation in the JIT.
6279
6280         * appdomain.c (mono_domain_is_unloading): New function to determine
6281         whenever an appdomain is unloading.
6282
6283         * appdomain.c (mono_domain_unload): New function to correctly unload
6284         an appdomain.
6285
6286         * assembly.c (mono_assembly_load_references): Check that an assembly
6287         does not references itself.
6288
6289         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6290         domain manually, it asks the finalizer thread to do it, then waits for
6291         the result. Also added a timeout.
6292
6293         * icall.c: Register the new icalls.
6294
6295         * threads.h threads.c: Export the mono_gc_stop_world and 
6296         mono_gc_start_world functions.
6297         
6298         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6299         function to fill out the mempool with 0x2a.
6300
6301 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6302
6303         * reflection.h (MonoReflectionMethodAux): New structure to store
6304         information which is rarely used, thus is not in the MonoMethod
6305         structure.
6306
6307         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6308         store the aux info.
6309
6310         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6311         and marshalling info into the aux structure.
6312
6313         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6314         from the aux structure.
6315
6316         * loader.c (mono_method_get_param_names): Retrieve the param names from
6317         the aux structure.
6318         
6319 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6320
6321         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6322         warning.
6323
6324 2003-10-21  Dick Porter  <dick@ximian.com>
6325
6326         * socket-io.c
6327         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6328         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6329
6330 2003-10-21  Martin Baulig  <martin@ximian.com>
6331
6332         * reflection.c (mono_reflection_bind_generic_parameters):
6333         `klass->parent' is NULL for interfaces.
6334
6335 2003-10-21  Martin Baulig  <martin@ximian.com>
6336
6337         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6338
6339 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6340
6341         * exception.c (mono_exception_from_name_msg): New helper function for
6342         creating exceptions and initializing their message field.
6343
6344         * exception.c: Simplify functions using the new helper.
6345
6346         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6347         New function.
6348
6349         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6350         mono_raise_exception, since otherwise gcc doesn't generate the function
6351         epilog for raise_exception, confusing the stack unwinding in the JIT.
6352         Fixes #45043.
6353
6354         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6355         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6356         Fixes #49499.
6357
6358 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6359
6360         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6361         utf8.
6362
6363 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6364
6365         * icall.c: Removed GetUninitializedObject method because
6366           AllocateUninitializedClassInstance does the same.
6367
6368 2003-10-18  Martin Baulig  <martin@ximian.com>
6369
6370         * class.c (inflate_generic_signature): Renamed to
6371         mono_class_inflate_generic_signature() and made it public.
6372         (my_mono_class_from_generic_parameter): New static function; if we
6373         don't already have the generic parameter's MonoClass, create a
6374         very simple one which is just used internally in the runtime and
6375         not passed back to managed code.
6376
6377         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6378
6379         * metadata.h (MonoMethodSignature): Moved the
6380         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6381         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6382
6383         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6384         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6385         interncall on the MonoMethod class, not on MethodInfo.
6386         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6387         calling mono_reflection_bind_generic_method_parameters() directly.
6388
6389         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6390         return the already computed `method->signature'.
6391         (method_from_methodspec): New static function to load a method
6392         from a MethodSpec entry.
6393         (mono_get_method_from_token): Call the new method_from_methodspec()
6394         for MethodSpec tokens.  
6395         (mono_get_method_from_token): If we're a generic method, load the
6396         type parameters.
6397
6398         * reflection.c (mono_image_get_memberref_token): Allow
6399         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6400         table.
6401         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6402         (mono_image_create_token): First check whether it's a generic
6403         method (so we'd need to create a MethodSpec), then do the other
6404         two alternatives.
6405         (mono_reflection_bind_generic_method_parameters): Return a
6406         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6407         called directly from the interncall.
6408
6409 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6410
6411         * reflection.c (load_public_key): Move loading of the public key
6412         into managed code.
6413
6414         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6415
6416         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6417         fields.
6418
6419         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6420         culture, hash_alg and public_key. Fixes #49555.
6421
6422 2003-10-17  Martin Baulig  <martin@ximian.com>
6423
6424         * class.h (MonoGenericInst): Moved this declaration here and added
6425         `MonoMethod *generic_method'.
6426
6427         * icall.c
6428         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6429         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6430
6431         * metadata.c (mono_metadata_type_equal): Two types of
6432         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6433         index; ie. don't compare the address of the `MonoGenericParam'
6434         structure.
6435         (mono_metadata_load_generic_params): Removed the `MonoMethod
6436         *method' argument.
6437
6438         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6439         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6440
6441         * reflection.c (method_encode_signature): Encode the number of
6442         generic parameters.
6443         (encode_generic_method_sig): New static function.
6444         (method_encode_methodspec): New static function; creates an entry
6445         in the MethodSpec table for a generic method.
6446         (mono_image_get_methodspec_token): New static function.
6447         (mono_image_create_token): Call mono_image_get_methodspec_token()
6448         for generic methods.
6449         (mono_reflection_bind_generic_method_parameters): New public
6450         function.  Instantiates a generic method.
6451
6452 2003-10-16  Martin Baulig  <martin@ximian.com>
6453
6454         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6455         *gen_params' here from MonoMethodHeader.
6456
6457         * metadata.c (mono_metadata_parse_method_signature): If we have
6458         generic parameters, initialize `method->gen_params' and then set
6459         the correct `type->data.generic_param' in all the parameters.
6460
6461 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6462
6463         * threads.c (mono_threads_get_default_stacksize): New function to 
6464         return the default stacksize.
6465
6466         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6467         termination of the finalizer thread, since the previous method had
6468         race conditions. Fixes #49628.
6469
6470         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6471         as for the other managed threads.
6472
6473 2003-10-16  Martin Baulig  <martin@ximian.com>
6474
6475         * class.c (inflate_generic_signature): Copy `generic_param_count'
6476         and `gen_params'.
6477
6478         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6479         New interncall.
6480
6481         * metadata.c (mono_metadata_parse_method_signature): Actually set
6482         the `method->generic_param_count' here.
6483         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6484
6485 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6486
6487         * object.h: Add a new field to TypedRef to simplify the implementation
6488         of the REFANY opcodes in the JIT.
6489
6490         * icall.c: Make use of the new field.
6491
6492         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6493         dynamically.
6494
6495 2003-10-15  Martin Baulig  <martin@ximian.com>
6496
6497         * class.c (mono_class_from_gen_param): Renamed to
6498         mono_class_from_generic_parameter() and moved most of the
6499         functionality from mono_reflection_define_generic_parameter()
6500         here; ie. we create a "real" class here.
6501         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6502         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6503         previously been called.
6504
6505         * class.h (MonoGenericParam): Moved the declaration of this struct
6506         here from metadata.h and added `MonoMethod *method'.
6507
6508         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6509         interncall.
6510
6511         * loader.c (mono_get_method_from_token): If we have any generic
6512         parameters, call mono_metadata_load_generic_params() to read them
6513         from the MONO_TABLE_GENERICPAR.
6514
6515         * metadata.c (mono_metadata_load_generic_params): Added
6516         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6517
6518         * metadata.h (MonoMethodSignature): Replaced
6519         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6520         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6521
6522         * reflection.c (mono_reflection_define_generic_parameter): Moved
6523         most of the functionality into the new
6524         mono_class_from_generic_parameter(); set the `method' field if
6525         we're a method parameter.       
6526
6527 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6528
6529         * marshal.c (emit_struct_conv): if native size is 0
6530         emit no code.
6531
6532 2003-10-14  Martin Baulig  <martin@ximian.com>
6533
6534         * icall.c: The generics API has changed in the spec since it was
6535         added to System.Type; these modifications make it match the spec
6536         again.
6537         (ves_icall_Type_GetGenericParameters): Renamed to
6538         `ves_icall_Type_GetGenericArguments'.
6539         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6540         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6541         `ves_icall_MonoType_get_HasGenericArguments'.
6542         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6543         `ves_icall_MonoType_get_IsGenericParameter'.
6544         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6545         this is no interncall anymore.
6546         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6547         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6548
6549 2003-10-14  Martin Baulig  <martin@ximian.com>
6550
6551         * reflection.c (mono_reflection_bind_generic_parameters): Also
6552         inflate generic methods if we're reading the class from IL.
6553
6554 2003-10-13  Martin Baulig  <martin@ximian.com>
6555
6556         * reflection.c (mono_reflection_define_generic_parameter): This
6557         method isn't called directly from the icall anymore; take a
6558         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6559         method generic parameters.
6560         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6561         (method_builder_encode_signature): Encode generic parameters.
6562         (mono_image_get_method_info): Write generic params to the
6563         MONO_TABLE_GENERICPARAM table.
6564
6565         * reflection.h (MonoReflectionMethodBuilder): Added
6566         `MonoArray *generic_params'.
6567
6568         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6569
6570         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6571         wrapper for mono_reflection_define_generic_parameter().
6572         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6573
6574 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6575
6576         * marshal.h: Add missing function to fix build.
6577
6578         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6579         the SetLastError pinvoke attribute.
6580
6581         * marshal.c (mono_marshal_set_last_error): New helper function called
6582         by the generated code.
6583         
6584         * marshal.c (mono_mb_emit_branch): New helper function.
6585
6586         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6587
6588         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6589         classes as parameters and return values of delegates. Fixes #29256. 
6590
6591 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6592
6593         * locales.c: use gint32 in non HAVE_ICU case
6594
6595 2003-10-11  Martin Baulig  <martin@ximian.com>
6596
6597         * mono-debug.c (mono_debug_add_method): Added a workaround for
6598         bug #48591.
6599
6600 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6601
6602         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6603         delegates passed to native code must use the STDCALL calling 
6604         convention. Fixes #35987.
6605
6606 2003-10-10  Martin Baulig  <martin@ximian.com>
6607
6608         * class.c (inflate_generic_type): If we're inflating for a generic
6609         type instance (and not for a generic method), return
6610         MONO_TYPE_MVAR unchanged.
6611
6612 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6613
6614         * string-icalls.c: Join ignores null strings in the source array.
6615         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6616         * threads.c: GetAvailableTheads is slightly more accurate.
6617
6618 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6619
6620         * threads.h threads.c : add mono_threads_set_default_stacksize
6621         and pass default to CreateThread calls.
6622
6623 2003-10-09  Dick Porter  <dick@ximian.com>
6624
6625         * icall.c:
6626         * locales.h:
6627         * locales.c: Internal calls for constructing CultureInfo and
6628         related objects from libicu (if its available.)
6629
6630 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6631
6632         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6633
6634 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6635
6636         * threadpool.c: added an argument to async_invoke_thread that is the
6637         item to process, pass the MonoAsyncResult to the thread start function
6638         when creating a new thread. This way we don't need to acquire any lock
6639         when we're creating a new thread. Readded a semaphore for faster
6640         response times (instead of that Sleep i added).
6641
6642 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6643
6644         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6645         get daylight change dates better on Windows, fix handling
6646         of platforms without tm_gmtoff.
6647
6648 2003-10-06  Martin Baulig  <martin@ximian.com>
6649
6650         * class.c (inflate_generic_method): Renamed to
6651         mono_class_inflate_generic_method() and made public.
6652         (mono_class_init): Don't inflate the generic methods here.
6653         (mono_class_from_generic): Added `gboolean inflate_methods'
6654         argument.  Inflate the methods here.
6655
6656         * loader.c (mono_method_get_param_names): Ignore instances of
6657         generic types for the moment.
6658
6659         * reflection.c (fixup_method): Added support for inflated methods.
6660         (mono_image_create_token): Use mono_image_get_methodref_token()
6661         for inflated methods.
6662         (mono_custom_attrs_from_param): Ignore instances of generic types
6663         for the moment.
6664         (mono_reflection_bind_generic_parameters): New public function.
6665         Moved all the functionality from
6666         ves_icall_Type_BindGenericParameters() here and added support for
6667         dynamic types.
6668         (mono_reflection_define_generic_parameter): Initialize
6669         `klass->methods' here.
6670
6671         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6672         functionality into mono_reflection_define_generic_parameter().
6673         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6674         TypeBuilder, return that TypeBuilder.
6675
6676 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6677
6678         * appdomain.c: removed mono_delegate_semaphore.
6679
6680         * threadpool.c:
6681         (mono_thread_pool_add): moved hash table creation inside and the thread 
6682         creation outside of the critical region.
6683         (mono_thread_pool_finish): removed obsolete code.
6684         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6685         continue or exit the thread depending on the queue.
6686
6687 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6688
6689         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6690         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6691         handle more bool marshalling options
6692
6693 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6694
6695         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6696         arrays of structs. Also add a more descriptive error message when
6697         a structure member is marshalled as LPArray.
6698
6699 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6700
6701         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6702         marshalling arrays of complex types. Fixes #29098. Also remove an
6703         usused and incomplete function.
6704
6705 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6706
6707         * gc.c: report heap_size - free_bytes as total memory allocated
6708         (bug#49362).
6709
6710 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6711
6712         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6713         fix timezone handling problems on Windows.
6714         
6715         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6716         asserts when the year is outside the range handled by ms the functions.
6717
6718         * class.c (setup_interface_offsets): If the class is an interface,
6719         fill out its interface_offsets slot.
6720
6721 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6722
6723         * threadpool.c: mark threadpool threads as background.
6724
6725 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6726
6727         * decimal.c - define DECINLINE to nothing if not using GCC
6728
6729 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6730
6731         * assembly.c: More refcount fixes.
6732
6733 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6734
6735         * string-icalls.c: if we're not trimming, return the same string.
6736         When not splitting, don't create a new string.
6737
6738 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6739
6740         * image.c:
6741         (mono_image_open): increment the ref_count inside the critical section.
6742
6743 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6744
6745         * image.c (mono_image_open): Fix reference counting bug.
6746
6747 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6748
6749         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6750         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6751         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6752         mono_lookup_pinvoke_call throws.        
6753
6754 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6755
6756         * reflection.c (mono_reflection_parse_type): Fix #49114.
6757
6758         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6759         temporary workaround for cygwin header problem.
6760
6761         * object.c (mono_object_isinst): Synchronize this with the code
6762         generated by the JIT for casts.
6763
6764 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6765
6766         * reflection.c (encode_type): Fix #38332.
6767
6768 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6769
6770         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6771         the original method from the wrapper method.
6772
6773 2003-09-25  Martin Baulig  <martin@ximian.com>
6774
6775         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6776         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6777         (ves_icall_Type_get_IsGenericInstance): New interncall.
6778
6779 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6780
6781         * object.c: fix cast warning in big endian code.
6782
6783 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6784
6785         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6786         
6787 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6788
6789         * assembly.c: don't call check_env from mono_assembly_load. It's
6790         already done once in mono_assemblies_init and may cause headaches when
6791         multiple threads are loading assemblies.
6792
6793 2003-09-19  Martin Baulig  <martin@ximian.com>
6794
6795         * reflection.c (mono_reflection_define_generic_parameter): Don't
6796         allocate `klass->methods', set `klass->flags' to
6797         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6798
6799 2003-09-18  Martin Baulig  <martin@ximian.com>
6800
6801         * class.c (mono_class_init): Don't create `class->methods' if it's
6802         already initialized.
6803
6804         * metadata.c (mono_metadata_load_generic_params): Make this
6805         actually work.
6806
6807         * reflection.c (mono_reflection_define_generic_parameter): Set
6808         parent class and interfaces from the constraints.
6809
6810         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6811         to keep this struct in sync with the declaration in TypeBuilder.cs.
6812
6813 2003-09-17  Martin Baulig  <martin@ximian.com>
6814
6815         * metadata.h (MonoType): Replaced the data's `int type_param'
6816         field with `MonoGenericParam *generic_param'.
6817         (MonoGenericParam): Added `MonoClass *klass'.
6818
6819         * class.c (mono_class_from_gen_param): Removed the
6820         `MonoImage *image' and `int type_num' arguments.
6821
6822         * metadata.c (mono_metadata_parse_generic_param): New static
6823         method; creates a MonoGenericParam which just contains the index.
6824         (do_mono_metadata_parse_type): Call
6825         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6826         MONO_TYPE_MVAR.
6827
6828         * reflection.c (mono_image_typedef_or_ref): Generic type
6829         parameters may be in the same assembly, but never use a typedef
6830         for them.
6831         (mono_reflection_define_generic_parameter): We're now creating a
6832         "real" class for the type parameter; it's now safe to call
6833         mono_class_from_mono_type() on the class'es type, it'll do the
6834         right thing.
6835
6836 2003-09-16  Martin Baulig  <martin@ximian.com>
6837
6838         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6839         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6840         the `symfile' data structure must be fully initialized before it
6841         gets added to the table.
6842
6843 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6844
6845         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6846
6847         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6848         class init trampolines.
6849
6850 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6851
6852         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6853         to the built-in profiler to turn off time and allocation profiling
6854         respectively.
6855
6856 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6857
6858         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6859         g_direct_equal.
6860
6861         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6862         in human readable form.
6863
6864 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6865
6866         * reflection.c icall.c: Fixed warnings.
6867
6868         * image.c (load_class_names): Use a temporary hash table to hold the
6869         namespaces in order to avoid doing many string comparisons.
6870
6871         * image.h: Fix typo.
6872
6873         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6874         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6875         since the NULL case is short-circuited inside g_hash_table_lookup, 
6876         leading to better performance.  
6877
6878         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6879         obtain the first custom attribute for a given index. Depends on the
6880         CustomAttribute table being sorted by the parent field.
6881
6882         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6883         for better performance.
6884
6885 2003-09-07  Martin Baulig  <martin@ximian.com>
6886
6887         * class.c (mono_class_init): If we're a generic instance, inflate
6888         all our methods instead of loading them from the image.
6889         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6890
6891 2003-09-07  Martin Baulig  <martin@ximian.com>
6892
6893         * mono-debug-debugger.c: Added support for constructors.
6894
6895 2003-09-06  Martin Baulig  <martin@ximian.com>
6896
6897         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6898         New interncall.
6899
6900         * reflection.c (mono_reflection_setup_generic_class): Call
6901         ensure_runtime_vtable() to create the vtable.
6902
6903 2003-09-05  Martin Baulig  <martin@ximian.com>
6904
6905         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6906         MONO_TYPE_MVAR.
6907
6908 2003-09-04  Martin Baulig  <martin@ximian.com>
6909
6910         * reflection.c (mono_reflection_define_generic_parameter): Generic
6911         parameters start with zero.
6912
6913 2003-09-04  Martin Baulig  <martin@ximian.com>
6914
6915         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6916
6917         * reflection.h (MonoReflectionGenericParam): New typedef.
6918         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
6919         the generic parameters from the managed TypeBuilder.
6920
6921         * reflection.c (mono_reflection_define_generic_parameter): New function.
6922         (mono_reflection_create_runtime_class): Encode generic parameters.
6923         (mono_reflection_setup_generic_class): New function; this is
6924         called after adding adding all generic params to the TypeBuilder.
6925         (encode_type): Added MONO_TYPE_VAR.
6926
6927 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
6928
6929         * class.h class.c (mono_class_needs_cctor_run): Moved this method
6930         here from the JIT.
6931
6932         * assembly.h assembly.c: Moved the AOT loading code into an assembly
6933         load hook.
6934
6935 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
6936
6937         * reflection.h reflection.c class.h class.c: Delete duplicate 
6938         definition of mono_type_get_name () from reflection.c and export the
6939         one in class.c.
6940
6941         * class.c: Class loading fixes from Bernie Solomon 
6942         (bernard@ugsolutions.com).
6943
6944         * reflection.c: Endianness fixes from Bernie Solomon 
6945         (bernard@ugsolutions.com).
6946         
6947 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
6948
6949         * assembly.h assembly.c: Define a file format version for AOT
6950         libraries.
6951         
6952         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
6953
6954         * appdomain.h (MonoJitInfo): New field to determine whenever the
6955         code is domain neutral.
6956         
6957 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
6958
6959         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
6960
6961 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
6962
6963         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
6964         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
6965         Avoid caching the result since strings must be domain specific. Fixes
6966         #48050.
6967
6968 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
6969
6970         * marshal.c (mono_marshal_init): Make this callable multiple times
6971         since it is hard to find a correct place to call it.
6972
6973         * object.c (mono_runtime_class_init): Execute static constructors in
6974         the correct appdomain.
6975
6976         * image.c (build_guid_table): Handle the case when multiple images have
6977         the same GUID.
6978
6979 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6980
6981         * icall.c: added a couple of icalls for System.Web.
6982
6983 2003-08-28  Martin Baulig  <martin@ximian.com>
6984
6985         * icall.c (ves_icall_Type_BindGenericParameters): Use
6986         `klass->generic_inst' instead of `&klass->byval_arg' in the
6987         mono_type_get_object() call.  The returned type must be
6988         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
6989
6990 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
6991
6992         * NOTES: New file.
6993
6994         * object.c (mono_class_proxy_vtable): Make it thread safe.
6995
6996         * pedump.c: Fix warning.
6997
6998         * object.c appdomain.h: Get rid of metadata_section. 
6999         It is no longer needed and it was causing deadlocks with domain->lock.
7000
7001         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
7002
7003 2003-08-26  Martin Baulig  <martin@ximian.com>
7004
7005         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
7006
7007 2003-08-26  Martin Baulig  <martin@ximian.com>
7008
7009         * pedump.c (main): Call mono_metadata_init(),
7010         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
7011         and mono_loader_init().
7012
7013 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
7014
7015         * loader.h: Add missing include to fix build.
7016
7017         * image.h: mono_image_load_references is no more.
7018
7019         * assembly.c: Reworked assembly loading to make it really thread safe.
7020         After these changes, the assembly returned by mono_assembly_open is
7021         fully initialized, i.e. all its references assemblies are loaded.
7022
7023         * assembly.c (mono_image_load_references): Renamed to 
7024         mono_assembly_load_references, and made private, since clients no
7025         longer need to call it.
7026
7027         * class.c: Removed calls to mono_assembly_load_references, since it was
7028         a source of deadlocks.
7029
7030         * loader.h loader.c class.h class.c: Protect data structures using a 
7031         new lock, the loader lock.
7032
7033         * class.c (mono_class_setup_vtable): Create temporary hash tables and
7034         GPtrArrays only when needed.
7035
7036         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
7037         into empty structures by mcs. Fixes pinvoke7.cs.
7038         
7039         * domain.c (mono_init): Call a new initialization function.
7040
7041         * appdomain.c (mono_runtime_init): Call the new initializer function
7042         of the marshal module.
7043
7044         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
7045         inserted into empty structures by mcs. Fixes pinvoke7.cs.
7046
7047         * marshal.h marshal.c: Added locks around the wrapper caches to make
7048         this module thread safe.
7049
7050         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
7051         this argument. Fixes pinvoke1.exe.
7052
7053 2003-08-25  Lluis Sanchez <lluis@ximian.com>
7054
7055         * object.h: Added call_type field to MonoMethodMessage and the corresponding
7056         enumeration of values. Removed fields to store remote call output values in
7057         MonoAsyncResult. Not needed any more.
7058         * object.c: Initialize call_type and async_result fields in mono_message_init.
7059         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
7060         dispatching the message.
7061         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
7062         async call to finish. To do it use a message with EndInvoke call type.
7063
7064 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
7065
7066         * loader.h loader.c (mono_method_hash_marhal_info): New function which
7067         determines whenever a method has marshalling info.
7068
7069 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7070
7071         * assembly.c: fix the build on windows.
7072
7073 2003-08-22 Lluis Sanchez <lluis@ximian.com>
7074
7075         * object.cs: Fixed bug #47785.
7076
7077 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
7078
7079         * string-icalls.c (StringReplace): If their are no occurances of
7080         the old string found return a reference to the supplied
7081         string. This saves some memory and matches MS behavoir.
7082         
7083 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7084
7085         * socket-io.c: fixed compilation for systems that define AF_INET6
7086         and don't define SOL_IP/SOL_IPV6.
7087
7088 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
7089
7090         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
7091         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
7092
7093         * rawbuffer.c rawbuffer.h: Make this module thread safe.
7094
7095         * domain.c: Make this module thread safe.
7096
7097         * domain.c (mono_init): Call new initialization function.
7098
7099         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
7100         reference types too. Fixes #38812.
7101
7102         * image.c (mono_image_init): Fixed warnings.
7103
7104         * class.c (mono_class_from_typeref): Handle assembly load failure
7105         correctly.
7106
7107         * appdomain.c (add_assemblies_to_domain): Handle the case when
7108         the references of an assembly are not yet loaded.
7109
7110         * metadata.c image.c assembly.c: Moved initialization of global
7111         variables to a separate function called at startup since lazy 
7112         initialization of these variables is not thread safe.
7113         
7114         * image.c assembly.c: Made this module thread safe by adding locks in 
7115         the appropriate places.
7116
7117         * domain.c (mono_init): Call the new initialization functions of the
7118         three modules.
7119
7120 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
7121
7122         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7123           make a direct call. It is proxy's work to make the call asynchronous.
7124           mono_delegate_end_invoke(): If the targe is a proxy, just collect
7125           the return values.
7126         * object.cs: mono_method_call_message_new(): read AsyncResult and
7127           state object from parameters list, if this info is requested.
7128         * object.h: Added fields to store remote call output values in
7129           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7130
7131 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7132
7133         * object.h: add needed fields to MonoThread.
7134         * threads.c, threads.h: allow registering a function to cleanup data
7135         allocated per thread by the JIT.
7136
7137 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7138
7139         * loader.h: portability fix by Bernie Solomon
7140         * <bernard@ugsolutions.com>.
7141
7142 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7143
7144         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7145         return a MonoArray. This simplifies the code and also ensures that
7146         the cache allways contains an object reference as a value.
7147
7148         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7149         function.
7150
7151 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7152
7153         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7154         fixes a problem with byte ordering when getting the address family for
7155         a socket.
7156
7157 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7158
7159         * .cvsignore: Added monosn.
7160
7161         * reflection.h reflection.c loader.c: Added support for parameter
7162         marshalling to dynamically created types. Fixes #47295.
7163
7164 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7165
7166         * rand.c: remove useless warnings.
7167
7168 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7169
7170         * class.c: implemented ldtoken for methods and fieldrefs.
7171
7172 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7173
7174         * threadpool.c: when mono_async_invoke was called, no one took care of
7175         monitoring the queue. So if the method invoked took some time and we
7176         got new async invoke requests after 500 ms (the thread created waited
7177         that long in WaitForSingleObject), the new async invoke was not called
7178         until the previous one finished.
7179
7180         This is fixed now. Thanks to Totte for helping with it.
7181
7182 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7183
7184         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7185
7186 2003-08-11  Martin Baulig  <martin@ximian.com>
7187
7188         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7189
7190 2003-08-06  Martin Baulig  <martin@ximian.com>
7191
7192         * mono-debug-debugger.c: Added support for static fields,
7193         properties and methods.
7194
7195 2003-08-06  Martin Baulig  <martin@ximian.com>
7196
7197         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7198         make this work for applications with multiple application domains.
7199
7200 2003-08-04  Martin Baulig  <martin@ximian.com>
7201
7202         * mono-debug-debugger.c: Completely reworked the type support; the
7203         most important thing is that we're now just using one single
7204         `MonoType' instance per type.
7205
7206 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7207
7208         * mono-endian.h, mono-endian.c, icall.c: Added icall
7209         ves_icall_System_Double_AssertEndianity to assert double word endianity
7210         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7211
7212 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7213
7214         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7215         support, icalls and fixes.
7216
7217 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7218
7219         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7220         classes that are a punctuation character in .NET is not the same a
7221         g_unichar_ispunct.
7222
7223 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7224
7225         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7226
7227 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7228
7229         * icall.c: Add new MemCopy internalcall.
7230         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7231         Simplified code; It is not necessary to handle all the cases here,
7232         as the C# code takes care of it.  Only handle the case of the name
7233         resource embedded into the assembly.
7234
7235         Changed signature to return the data pointer and the size of the
7236         data. 
7237
7238 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7239
7240         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7241         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7242
7243 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7244
7245         * socket-io.c: ignore EINTR error in select.
7246
7247 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7248
7249         * class.h, class.c: removed unused subclasses field in MonoClass.
7250
7251 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7252
7253         * icall.c: improve fix of get_base_definition(). If the parent class
7254           doesn't have the mehod, look at the parent of the parent.
7255         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7256           to check if a parameter is an in or out parameter
7257           (PARAM_ATTRIBUTE_IN is not set by default).
7258           mono_method_return_message_restore(): Use mono_class_value_size to
7259           get the size of a value type. mono_type_stack_size (parameterType)
7260           does not return the correct value if parameterType is byRef.
7261           mono_load_remote_field(), mono_load_remote_field_new(),
7262           mono_store_remote_field(), mono_store_remote_field_new():
7263           raise exception if the remote call returns an exception.
7264
7265 2003-07-28  Martin Baulig  <martin@ximian.com>
7266
7267         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7268         method.  This is a wrapper around mono_runtime_invoke() which
7269         boxes the instance object if neccessary.
7270
7271 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7272
7273         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7274         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7275
7276 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7277
7278         * icall.c: disable mcs bug workaround.
7279
7280 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7281
7282         * object.c (mono_runtime_class_init): Take the metadata_section
7283         mutex before obtaining the domain mutex.
7284
7285         * appdomain.h: Added definition of metadata_section mutex here. 
7286
7287         * object.c: define metadata_mutex here.
7288
7289 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7290
7291         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7292         fixed.
7293
7294 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7295
7296         * reflection.c: Fix bug #46669
7297
7298 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7299
7300         * exception.c:
7301         * exception.h:
7302         * icall.c:
7303         * object.h: fill in the type name for TypeLoadException.
7304
7305 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7306
7307         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7308         relationship between TypeBuilders while compiling corlib) and bug
7309         45993 (Array types returned from the runtime while compiling
7310         corlib were from the loaded corlib).
7311
7312 2003-07-22  Martin Baulig  <martin@ximian.com>
7313
7314         * mono-debug-debugger.c: Reworked the type support a bit more;
7315         distinguish between types and classes.
7316
7317 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7318
7319         * icall.c: add IsArrayImpl icall.
7320
7321 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7322
7323         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7324         initializing real_size only once. Also fix bug #46602.
7325
7326 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7327
7328         * object.c: Renamed mono_metadata_section to metadata_section.
7329
7330 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7331
7332         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7333           empty array if the type is an array. Fixed.
7334           ves_icall_MonoMethod_get_base_definition: if the base method
7335           is abstract, get the MethodInfo from the list of methods of
7336           the class.
7337         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7338           and it was 1-based. Fixed in mono_param_get_objects.
7339
7340 2003-07-20  Martin Baulig  <martin@ximian.com>
7341
7342         * mono-debug.h: Set version number to 31.
7343         (mono_debug_init): Added `MonoDomain *' argument.
7344
7345         * mono-debug-debugger.c: Reworked the type support; explicitly
7346         tell the debugger about builtin types; pass the `klass' address to
7347         the debugger.
7348
7349 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7350
7351         * image.c: Allow new metadata tables to be loaded without a
7352         warning. Also update the warning message to give the new constant value.
7353                 
7354 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7355
7356         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7357         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7358         array type representation changes.
7359
7360 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7361
7362         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7363         on Environment.Exit () call.
7364
7365 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7366
7367         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7368         requires a matching corlib.
7369
7370 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7371
7372         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7373           Committed again without the CRs.
7374         
7375 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7376
7377         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7378           getting it from the "this" socket instance. Did not work
7379           if the socket is a subclass of Socket.
7380           Also fixed bug #35371.
7381
7382 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7383
7384         * metadata.c: fixed size for TypedByRef.
7385         * loader.c: when searching for a method, consider the vararg amrker.
7386         * unicode.c, decimal.c: constify some arrays.
7387
7388 2003-07-15  Dick Porter  <dick@ximian.com>
7389
7390         * socket-io.c: Fixed compilation for gcc < 3.2.
7391
7392         Fixed compilation for machines that don't have AF_INET6 (thanks to
7393         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7394
7395         Fixed compile warnings.
7396         
7397         Fixed formatting and line endings.
7398
7399 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7400
7401         * socket-io.h:
7402         * socket-io.c: Added IPv6 support.
7403
7404 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7405
7406         * class.c (mono_class_is_assignable_from): New function to implement
7407         the is_assignable_from logic. Used by mono_object_isinst, 
7408         Type::IsAssignableFrom () and the interpreter.
7409
7410         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7411         Object, even interfaces.
7412         
7413         * object.c (mono_object_isinst): Implement in terms of 
7414         is_assignable_from.
7415
7416         * icall.c (ves_icall_type_is_assignable_from): New icall.
7417
7418 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7419
7420         * domain.c (foreach_domain): fix compiler warning.
7421
7422 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7423
7424         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7425         not available on all plattforms
7426
7427 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7428
7429         * image.h image.c: Store the metadata version string in MonoImage.
7430         * icall.c: New icall to retrieve the image version.
7431         * reflection.c (create_dynamic_image): Fill in the image version field
7432         * reflection.c (build_compressed_metadata): Use the image version
7433         from the image structure.
7434
7435 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7436
7437         * appdomain.c: modified comment.
7438         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7439         That will be its last iteration when mono_gc_cleanup is called from
7440         mono_runtime_cleanup and before the domain is unloaded.
7441
7442         Fixes bug #45962.
7443
7444 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7445
7446         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7447         attributes.
7448
7449 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7450
7451         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7452         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7453         Bernie Solomon <bernard@ugsolutions.com>.
7454
7455 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7456
7457         * object.c, object.h: provide mono_object_new_fast() for faster
7458         allocation in some special cases.
7459
7460 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7461
7462         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7463         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7464
7465 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7466
7467         * threadpool.c: fix leaks.
7468
7469 2003-07-01  Dick Porter  <dick@ximian.com>
7470
7471         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7472         using MonoGHashTables.  Fixes threadpool bug posted to list.
7473
7474 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7475
7476         * image.h, image.c: added support to load an assembly from a byte array.
7477         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7478         assembly bundle support.
7479
7480 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7481
7482         * threadpool.c (mono_thread_pool_add): keep a reference to the
7483         AsyncResult to prevent GC
7484
7485 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7486
7487         * class.c: leak fix.
7488
7489 2003-06-25  Dick Porter  <dick@ximian.com>
7490
7491         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7492         for the async object, the WaitHandle object will close the handle.
7493         Fixes bug 45321.
7494
7495 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7496
7497         * class.c: in mono_array_class_get (), lookup from the hash with the
7498         same type we insert: this works around a bug in
7499         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7500         lluis. The real fix will have to wait for after the release.
7501
7502 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7503
7504         * icall.c: fix memory leak when getting type members.
7505
7506 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7507
7508         * reflection.c: added more pubtoken special cases.
7509
7510 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7511
7512         * class.c: handle field offset correctly when class size
7513         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7514
7515 2003-06-20  Martin Baulig  <martin@ximian.com>
7516
7517         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7518         *image' field.
7519
7520 2003-06-20  Martin Baulig  <martin@ximian.com>
7521
7522         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7523
7524 2003-06-20  Martin Baulig  <martin@ximian.com>
7525
7526         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7527         just distinguish between variables in registers and variables at
7528         an offset relative to a register.
7529
7530 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7531
7532         * icall.c: #ifdef out latest changes until mcs is fixed.
7533
7534 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7535
7536         * icall.c: return members in metadata order.
7537
7538 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7539
7540         * icall.c: avoid infinite loop in GetTimeZoneData.
7541
7542 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7543
7544         * icall.c: added Marshal.Prelink/All icalls.
7545
7546 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7547
7548         * object.c, object.h: fix warnings and do some overflow checking
7549         when creating arrays.
7550
7551 2003-06-17  Dick Porter  <dick@ximian.com>
7552
7553         * file-io.h:
7554         * file-io.c: File attributes need to be tweaked slightly when
7555         passed from the managed to the w32 world.
7556
7557 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7558         * profiler.h profiler-private.h profiler.c: Rework last patch
7559         based on suggestion by Paolo.
7560         
7561 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7562
7563         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7564         instruction level coverage data collection.
7565         * profiler.h profiler.c (: Added new callback function which can be
7566         used by the profiler to limit which functions should have coverage
7567         instrumentation.
7568         * profiler.c (mono_profiler_load): Call g_module_build_path to
7569         generate the file name of the profiler library.
7570
7571 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7572
7573         * profiler.c, profiler.h, profiler-private.h: added basic block 
7574         coverage profiling API.
7575
7576 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7577
7578         * reflection.c (mono_reflection_create_runtime_class): Add support
7579         for events in dynamically generated code.
7580
7581         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7582         not allocated.
7583
7584 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7585
7586         * icall.c: when getting timezone info, return reasonable values if we
7587         can't get the actual data.
7588
7589 2003-06-14  Dick Porter  <dick@ximian.com>
7590
7591         * threads.c (start_wrapper): Remove the reference to the thread
7592         object in the TLS data, so the thread object can be finalized.
7593         This won't be reached if the thread threw an uncaught exception,
7594         so those thread handles will stay referenced :-( (This is due to
7595         missing support for scanning thread-specific data in the Boehm GC
7596         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7597
7598 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7599
7600         * reflection.c: ensure streams and tables are first allocated with
7601         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7602
7603 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7604
7605         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7606
7607 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7608
7609         * reflection.c (mono_reflection_create_runtime_class): Add support for
7610         properties to dynamically created classes.
7611         * reflection.c: Fix a few places where non-MonoObjects were inserted
7612         into the tokens hashtable.
7613
7614 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7615
7616         * object.c: some support to handle out of memory exceptions.
7617
7618 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7619
7620         * marshal.c (mono_marshal_get_native_wrapper): support reference
7621         return types
7622
7623 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7624
7625         * object.h, object.c: more portability stuff from Bernie Solomon.
7626         Unexport mono_object_allocate(). Added mono_object_unbox ().
7627         Set exitcode when an unhandled exception is thrown.
7628
7629 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7630
7631         * marshal.c (mono_marshal_get_native_wrapper): use custom
7632         marshaler for return types.
7633
7634 2003-06-10  Dick Porter  <dick@ximian.com>
7635
7636         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7637         ip_mreq is available
7638
7639 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7640
7641         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7642         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7643         by Bernie Solomon <bernard@ugsolutions.com>.
7644
7645 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7646
7647         * gc.c (mono_gc_init): Avoid error message on shutdown when
7648         GC_DONT_GC=1 is used.
7649
7650         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7651         New icall to return the GUID of a module.
7652
7653 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7654
7655         * class.c: ensure instance size always includes the parent's size
7656         even whem class size is set explicitly (fixes bug#44294).
7657
7658 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7659
7660         * profiler.h, profiler.c: made the simple profiler thread-safe,
7661         get more accurate timing info. Allow the loading of an
7662         externally-developed profiler module.
7663
7664 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7665
7666         * marshal.c (mono_marshal_get_native_wrapper): improved
7667         class/byref arguments.
7668         (mono_marshal_get_native_wrapper): better string marshaling support.
7669
7670 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7671
7672         * class.c: ensure .pack and .size are handled correctly and
7673         simplified layout of static fields.
7674
7675 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7676
7677         * appdomain.c
7678         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7679
7680         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7681         current directory (fix bug 44008)
7682
7683 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7684
7685         * marshal.c (mono_marshal_get_native_wrapper): started support for
7686         custom marshalers.
7687         (mono_delegate_to_ftnptr): consider marshalling specifications
7688
7689 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7690
7691         * reflection.c, reflection.h: emit custom marshal info.
7692
7693 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7694
7695         * object.c: free the GError.
7696         * icall.c: added CloseEvent_internal.
7697         * threads.[ch]:
7698         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7699         call.
7700
7701 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7702
7703         * loader.c (mono_method_get_signature): Add support for dynamic
7704         assemblies.
7705
7706 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7707
7708         * reflection.c: fixed bug #43905.
7709
7710 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7711
7712         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7713         handling TypedReference and ArgIterator.
7714         * loader.c, loader.h: added function to get signature at call site.
7715
7716 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7717
7718         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7719         data readonly. Buglets and warning fixes. Some MethodSpec support.
7720
7721 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7722
7723         * class.h, class.c, object.c: remove relative numbering support.
7724
7725 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7726
7727         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7728         free the string, until we get a chance to fix Gtk#
7729
7730 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7731
7732         * marshal.c: revert last patch.
7733
7734 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7735
7736         * icall.c: updates for new mono_class_vtable() not calling
7737         the type constructor anymore.
7738
7739 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7740
7741         * object.h, object.c: separate vtable creation from type
7742         initialization. Make running the .cctor thread safe.
7743
7744 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7745
7746         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7747
7748 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7749
7750         * loader.c (mono_get_method): consider calling convention
7751
7752 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7753
7754         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7755         to return the invisible global type for a module.
7756
7757         * reflection.c (mono_image_build_metadata): Emit global fields too.
7758
7759 2003-05-20  Peter Williams  <peterw@ximian.com>
7760
7761         * loader.c (mono_lookup_internal_call): Add a few newlines.
7762
7763 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7764
7765         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7766         literal strings.
7767
7768         * appdomain.c (set_domain_search_path): Recalculate search path when
7769         AppDomainSetup.PrivateBinPath changes.
7770
7771         * object.c (mono_class_compute_gc_descriptor): It turns out some
7772         parts of the class libs (like System.Thread) holds pointers to
7773         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7774         to treat native int a pointer type here.
7775         
7776 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7777
7778         * appdomain.h, domain.c: add hashtable for jump target resolution.
7779
7780 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7781
7782         * reflection.h reflection.c icall.c: Added new icalls 
7783         GetManifestResourceInfoInternal, GetModulesInternal and support
7784         infrastructure.
7785
7786 2003-05-16  Dick Porter  <dick@ximian.com>
7787
7788         * icall.c:
7789         * file-io.h:
7790         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7791
7792 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7793
7794         * object.c: mono_store_remote_field: little fix to previous patch.
7795
7796 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7797
7798         * class.c: add constructors to array classes.
7799         * icall.c: special case array construction for InternalInvoke (),
7800
7801 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7802
7803         * class.h class.c reflection.c object.c: Added support for field
7804         defaults in dynamically generated classes.
7805
7806 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7807
7808         * reflection.c: properly encode charset for ddlimport.
7809
7810 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7811
7812         * threads.c: allow compiling without GC.
7813
7814 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7815
7816         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7817         handling of thread static data.
7818
7819 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7820
7821         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7822
7823 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7824
7825         * class.c (mono_array_class_get): always set the serializable flags
7826         (mono_array_class_get): always set the SEALED attribute for array types
7827
7828 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7829
7830         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7831         attributes (fix for bug 42021).
7832
7833 2003-05-12  Dick Porter  <dick@ximian.com>
7834
7835         * gc.c: Don't run finalizers when the finalizer thread is
7836         finishing up, because the default domain has already been
7837         destroyed.
7838
7839 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7840
7841         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7842         value is null, we should throw an exception.   This is slightly
7843         different than the other conventions used for the constructor.
7844
7845 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7846
7847         * socket-io.c: fixed windows build.
7848
7849 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7850
7851         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7852
7853 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7854
7855         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7856         compilers.
7857
7858 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7859
7860         * class.c (mono_class_layout_fields): Add experimental GC aware
7861         auto layout facility. Requires class library changes to work correctly.
7862
7863         (mono_class_setup_vtable): Avoid overriding explicit interface
7864         method implementations. Fixes iface3.exe test.
7865
7866         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7867         object reference.
7868         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7869         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7870
7871         * metadata.h: Add new type classification macro which determines
7872         whenever the type holds an object reference.
7873
7874 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7875
7876         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7877
7878 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7879
7880         * gc.c (finalizer_thread): Work around a GC bug.
7881
7882 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7883
7884         * marshal.c (emit_struct_conv): allow unions
7885
7886         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7887
7888 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7889
7890         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7891
7892 2003-05-06  Martin Baulig  <martin@ximian.com>
7893
7894         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7895
7896 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7897
7898         * socket-io.c:
7899         (Select_internal): allow NULLs, don't create arrays if not needed.
7900         Coupled with Socket.cs changes.
7901
7902         * threadpool.c:
7903         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7904         register a finalizer for it that will close the semaphore handle. This
7905         fixes the leak and make Lupus' test run with > 4080 loops.
7906
7907 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7908
7909         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7910         Jerome Laban (bug #42287)
7911
7912 2003-05-02  Martin Baulig  <martin@ximian.com>
7913
7914         * debug-mono-symfile.h
7915         (MonoSymbolFile): Moved declaration into mono-debug.h.
7916         (MonoDebugMethodJitInfo): Likewise.
7917         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
7918         argument.
7919         (_mono_debug_address_from_il_offset): Take a
7920         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
7921
7922         * mono-debug.h
7923         (MonoDebugDomainData): New struct.
7924         (mono_debug_get_domain_data): New function.
7925         (mono_debug_add_method): Take an additional `MonoDomain *'
7926         argument.
7927         (mono_debug_source_location_from_address): Likewise.
7928         (mono_debug_il_offset_from_address): Likewise.
7929         (mono_debug_address_from_il_offset): Likewise.
7930
7931 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
7932
7933         * reflection.c: one more check for null type in custom attrs.
7934
7935 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7936
7937         * reflection.c: avoid warning (comparison is always false due to limited
7938         range of data type).
7939
7940 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7941
7942         * icall.c: throw an exception in Type.GetField if the argument 'name'
7943         is NULL.
7944
7945 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
7946
7947         * reflection.c: fixed handling of enums in named arguments to custom
7948         attributes (bug #42123).
7949
7950 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
7951
7952         * reflection.c: use the right array element type and handle
7953         a null for a Type argument, too.
7954
7955 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
7956
7957         * reflection.c: handle arrays as arguments to custom attributes.
7958
7959 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7960
7961         * reflection.c: handle a string value in a custom attr
7962         ctor that takes an object.
7963
7964 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
7965
7966         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
7967         (fix bug #42063)
7968
7969 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
7970
7971         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
7972
7973 2003-04-27  Martin Baulig  <martin@ximian.com>
7974
7975         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
7976         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
7977         MONO_DEBUGGER_EVENT_BREAKPOINT.
7978         (mono_breakpoint_trampoline_code): Removed.
7979         (mono_debugger_event_handler): The last argument is now a
7980         `guint32'.
7981         (mono_debugger_insert_breakpoint_full): Removed the
7982         `use_trampoline' argument.
7983         (mono_debugger_method_has_breakpoint): Likewise.
7984         (mono_debugger_trampoline_breakpoint_callback): Renamed to
7985         mono_debugger_breakpoint_callback(); take the method and
7986         breakpoint number as arguments.
7987
7988 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
7989
7990         * metadata.c: fix off by one when loading parameters attributes.
7991
7992 2003-04-24  Martin Baulig  <martin@ximian.com>
7993
7994         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
7995
7996 2003-04-24  Martin Baulig  <martin@ximian.com>
7997
7998         * mono-debug-debugger.c: Moved all code which interacts with the
7999         Mono Debugger here.
8000
8001         * debug-mono-symfile.c: This code now just deals with the symbol
8002         file itself, the debugger code is now in mono-debug-debugger.c.
8003
8004 2003-04-23  Martin Baulig  <martin@ximian.com>
8005
8006         * mono-debug.c (mono_debug_source_location_from_il_offset):
8007         New method; like mono_debug_source_location_from_address(), but
8008         takes an IL offset instead of a machine address.
8009
8010 2003-04-23  Martin Baulig  <martin@ximian.com>
8011
8012         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
8013         `line' field; this is now computed by the debugger.
8014
8015 2003-04-23  Martin Baulig  <martin@ximian.com>
8016
8017         * mono-debug.[ch]: New files.  This is the new debugging interface.
8018
8019         * mono-debug-debugger.[ch]: New files.  Moved all code which
8020         interacts with the Mono Debugger here.
8021
8022 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
8023
8024         * domain.c (mono_init): initialize mono_defaults.monitor_class
8025
8026 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
8027
8028         * reflection.c (method_encode_code): Add a spicy exception to help
8029         future compiler authors.
8030
8031 2003-04-21  Martin Baulig  <martin@ximian.com>
8032
8033         * icall.c
8034         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8035         Make this work with relative pathnames; g_filename_to_uri() needs
8036         an absolute filename.
8037
8038 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
8039
8040         * icall.c: Track name changes in Object and ValueType.
8041
8042 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
8043
8044         * metadata.c (mono_type_stack_size): size should be a multiple of
8045         sizeof (gpointer)
8046
8047 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8048
8049         * gc.c:
8050         (internal_domain_finalize): moved into mono_domain_finalize. No need
8051         to create another thread because the finalizers will be run in the
8052         finalizer thread.
8053         
8054         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
8055         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
8056         to be run (MS does this too).
8057
8058 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
8059
8060         * object.c (mono_class_compute_gc_descriptor): Update comment.
8061
8062         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
8063
8064         * image.h: Add synchronized wrapper cache.
8065
8066         * image.c (do_mono_image_open): Initialize cache.
8067
8068         * reflection.c (create_dynamic_mono_image): Initialize cache.
8069
8070 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8071
8072         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
8073         ves_icall_System_Buffer_ByteLengthInternal.
8074
8075 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
8076
8077         * reflection.c: setup klass->nested_in earlier. Allow
8078         a dash in the assembly name.
8079
8080 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
8081
8082         * metadata.c (mono_type_to_unmanaged): dont access
8083         type->data.klass for MONO_TYPE_OBJECT
8084         (mono_type_to_unmanaged): consider System.Delegate class
8085
8086 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
8087
8088         * class.c: just setup supertypes in the proper place instead of
8089         initializing the full element class for arrays.
8090
8091 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
8092
8093         * class.c: ensure the element class of arrays is initialized.
8094         Setup the supertype info for array classes, too.
8095
8096 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
8097
8098         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
8099
8100 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8101
8102         * Makefile.am: re-added -m option when running cygpath. This way,
8103         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
8104         separator.
8105         * mono-config.c: same codepath for locating mono config file for WIN32
8106         and the rest.
8107         * assembly.c: if mono_assembly_setrootdir is called, don't override
8108         the value set.
8109
8110 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8111
8112         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8113         MONO_ASSEMBLIES variable.
8114
8115 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8116
8117         * icall.c: added Assembly::GetNamespaces() icall.
8118
8119 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8120
8121         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8122
8123 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
8124
8125         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8126         * object.c: fixed bug in the construction of vtable for proxies
8127
8128 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8129
8130         * object.c (mono_array_new): Mark mono_array_new as an icall.
8131
8132 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8133
8134         * class.c: fixed test for public method when overriding interfaces.
8135         Closes bug #40970.
8136
8137 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8138
8139         * appdomain.h, domain.c: added mono_domain_foreach() to
8140         be able to access the currently loaded appdomains.
8141         * object.c: make string interning work across sppdomains.
8142         Mark some functions for use as icalls.
8143
8144 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8145
8146         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8147
8148         * reflection.h reflection.c: Allocate long living data using 
8149         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8150
8151         * reflection.c: Double the allocation size in streams instead of
8152         increasing it, to prevent unneccesary copying on large assemblies.
8153         
8154         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8155         creation if the assembly does not have the Run flag set.
8156
8157 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8158
8159         * class.h: avoid the C++ keywords in header files (Jerome Laban
8160         spotted and fixed this).
8161
8162 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8163
8164         * object.c:
8165         (mono_unhandled_exception): fill in the arguments for the
8166         UnhandledException event. Only trigger that event for the default
8167         domain (as MS does).
8168
8169 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8170
8171         * object.c: Improve typed allocation stuff based on suggestions from
8172         Paolo. Also turn it on if the GC library supports it.
8173
8174 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8175
8176         * object.c object.h class.h: Added experimental typed allocation
8177         facility using the interfaces in gc_gcj.h.
8178
8179         * os/gc_wrapper.h: Added new include files.
8180         
8181 2003-04-03  Martin Baulig  <martin@ximian.com>
8182
8183         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8184         which is not yet enabled by default.
8185
8186         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8187         functions.
8188         (mono_gc_lock, mono_gc_unlock): New static functions.
8189
8190         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8191         functions; stop/start the world for the garbage collector.  This
8192         is using the windows API; we need to complete the SuspendThread()/
8193         ResumeThread() implementation in the io-layer to make this work on Unix.
8194         (mono_gc_push_all_stacks): New public function; tells the garbage
8195         collector about the stack pointers from all managed threads.
8196
8197 2003-04-03  Martin Baulig  <martin@ximian.com>
8198
8199         * object.h (MonoThread): Added `gpointer stack_ptr'.
8200
8201         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8202
8203 2003-04-03  Martin Baulig  <martin@ximian.com>
8204
8205         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8206
8207 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8208
8209         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8210         field.last.
8211
8212 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8213
8214         * loader.c (mono_lookup_internal_call): Report the corlib that is
8215         out of sync.
8216
8217 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8218
8219         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8220         System.DBNull (it's class not valuetype).
8221
8222 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8223
8224         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8225         if the array method was already assigned a token (fixes bug#40646).
8226
8227 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8228
8229         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8230         if no assembly is given.
8231
8232 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8233
8234         * metadata.h: Added the new tables.
8235
8236         * row-indexes.h: Added definitions for new tables.
8237
8238         * metadata.c: Add schemas for new tables, and add support for
8239         computing the sizes of them.
8240
8241         * class.c: Update for handling the new type cases.
8242
8243 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8244
8245         * metadata.h (MONO_TYPE_IS_VOID): new macro
8246
8247 2003-03-31  Martin Baulig  <martin@ximian.com>
8248
8249         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8250
8251         * threads.c (mono_thread_new_init): Call `thread_created' in the
8252         mono_thread_callbacks.
8253
8254 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8255
8256         * loader.h: added marshalbyrefobject_class to mono_defaults
8257         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8258         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8259           generation of output parameters.
8260           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8261         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8262           contextbound and the target object belongs to the context of the caller.
8263         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8264         * object.c: Implemented support for interfaces and abstract classes
8265           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8266           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8267
8268 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8269
8270         * class.h class.c (mono_class_is_subclass_of): New function.
8271         
8272         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8273         routines for most common case (calls from ArrayList::ToArray).
8274
8275         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8276         routine so programs which call Environment::Exit() can be profiled.
8277
8278         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8279         Added MONO_ARCH_SAVE_REGS.
8280
8281         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8282
8283 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8284
8285         * blob.h: Add a couple of new MonoType types definitions.
8286
8287         * tabledefs.h: Add a couple of new call convs.
8288
8289 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8290
8291         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8292         the layout of the class.
8293
8294         * reflection.c (alloc_table): double the size on overflow to avoid
8295         unnecessary copying.
8296
8297         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8298         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8299         null so it can be garbage collected.
8300         
8301 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8302
8303         * reflection.c (mono_reflection_get_type): Return the resolved type
8304         only if it is in the assembly we searched.
8305
8306         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8307
8308         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8309         method.
8310
8311 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8312
8313         * appdomain.c:
8314         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8315         the right one is 'file:///blah', but MS allows it.
8316         * assembly.c:
8317         (mono_assembly_open): allow 'file://blah'
8318
8319         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8320
8321 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8322
8323         * socket-io.c: fixes bug #40310.
8324
8325 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8326
8327         * reflection.c (mono_reflection_parse_type): handle deeply nested
8328         types correctly.
8329
8330         * reflection.c (mono_image_create_token): Use unique token values
8331         since they will be put into a hash table.
8332
8333         * class.c (mono_class_setup_vtable): If a method occurs in more than
8334         one place in the vtable, and it gets overriden, then change the
8335         other occurances too.
8336
8337         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8338         object as return type.
8339
8340 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8341
8342         * icall.c: Deleted "ToString" implementation for double and float
8343         because they are full implemented in managed code.
8344
8345 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8346
8347         * reflection.c, reflection.h: implemented and exported functions
8348         to retrieve info about custom attributes.
8349
8350 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8351
8352         * appdomain.c: moved Uri handling to assembly.c
8353         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8354         work when using a file Uri in *nix and windows.
8355
8356         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8357         GetReferencedAssemblies.
8358
8359 2003-03-18  Dick Porter  <dick@ximian.com>
8360
8361         * icall.c: Rename a couple of internal calls
8362
8363         * threads.c: Set the thread state to Stopped when a thread exits.
8364         Fixes bug 39377.
8365
8366 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8367
8368         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8369         New icall.
8370
8371         * object.c (mono_class_vtable): fix warning.
8372
8373 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8374
8375         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8376
8377         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8378         memory.
8379         (method_encode_clauses): Create exception info structures in the right
8380         order.
8381         (mono_reflection_setup_internal_class): Initialize supertypes field.
8382
8383         * class.c object.c: Handle interfaces which implement other interfaces 
8384         correctly.
8385
8386         * class.h class.c: Move the supertypes array initialization code into 
8387         a separate function so it can be used for dynamic types too. Also call
8388         it earlier, in mono_class_init(), since it can be used before the
8389         type is initialized.
8390
8391 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8392
8393         * Makefile.am:
8394         * assembly.c:
8395         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8396
8397         * appdomain.c:
8398         * appdomain.h:
8399         * marshal.c:
8400         * object.c: remove warnings.
8401
8402 2003-03-13  Martin Baulig  <martin@ximian.com>
8403
8404         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8405         (MonoDebugLexicalBlockEntry): New types.
8406
8407         * debug-mono-symfile.c
8408         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8409
8410 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8411
8412         * process.c: ret can be any non-zero value accroding to MS doc.
8413
8414 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8415
8416         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8417         fixing a warning for a miss-used prototype, would have cause
8418         random memory corruption.
8419
8420 2003-03-07  Martin Baulig  <martin@ximian.com>
8421
8422         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8423         getting really annoying ....
8424
8425 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8426
8427         * reflection.c (fixup_method): added support for array methods.
8428
8429 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8430
8431         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8432         (pointed out by Michael Adams).
8433
8434 2003-03-04  Dick Porter  <dick@ximian.com>
8435
8436         * icall.c: Temporarily reverted the Double and Single ToString()
8437         change, because it broke nunit.
8438
8439 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8440
8441         * object.h, threads.h: make include files compatible with C++
8442         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8443
8444 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8445
8446         * icall.c: Erased ToString helper functions for Double and Single.
8447         Now, that implementations ar all in managed code (Double and Single
8448         Formatters).
8449
8450 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8451
8452         * appdomain.c: Added method for initializing the default context of
8453         a domain. Added internal call for getting the default context.
8454         * appdomain.h: Added context variable in MonoDomain struct.
8455         * domain.c: mono_domain_set also sets the default context of the domain
8456         * icall.c: Mapped internal method InternalGetDefaultContext.
8457         * object.c: mono_object_get_virtual_method returns always a remoting
8458         wrapper if the object is a transparent proxy.
8459         mono_runtime_invoke_array: when creating an object by calling the
8460         constructor, if the created object is a proxy, then the constructor should
8461         be called using the a remoting wrapper.
8462
8463 2003-03-03  Dick Porter  <dick@ximian.com>
8464
8465         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8466         variable so it compiles on solaris.  Problem spotted by
8467         Christopher Taylor <ct@cs.clemson.edu>
8468
8469 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8470
8471         * appdomain.c:
8472         (get_info_from_assembly_name): don't leak value.
8473
8474         * icall.c:
8475         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8476         result.
8477
8478 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8479
8480         * assembly.c: export mono_image_load_references ().
8481         * class.c: handle function pointers. mono_class_from_name() now
8482         supports nested type names directly.
8483
8484 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8485
8486         * reflection.h reflection.c: Encode already created dynamic methods 
8487         and fields correctly as a DEF instead of a REF.
8488
8489         * reflection.c: Get rid of the force_ref argument to 
8490         mono_image_typedef_or_ref since it was wrong in the first place.
8491
8492         * string-icalls.c: add error checking to string constructors according
8493         to the MSDN docs.
8494
8495         * reflection.c: Emit types in the order their TypeBuilders were 
8496         created. Previously, a new table index was assigned to each type before
8497         the tables were emitted. This was wrong because the signature blob
8498         might already refer to a type by its original table index.
8499
8500 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8501
8502         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8503         change.
8504         
8505 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8506
8507         * Makefile.am: make assemblies dir have \ instead of / on windows.
8508
8509 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8510
8511         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8512         iterate over the NESTEDCLASS table using a linear search since the
8513         table is not guaranteed to be sorted by the secondary key.
8514
8515         * class.c (mono_class_create_from_typedef): fixed up call to
8516         mono_metadata_nesting_typedef.
8517         
8518 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8519
8520         * marshal.c (mono_string_to_byvalstr): clear the memory as
8521         suggested by Jerome Laban <jlaban@wanadoo.fr>
8522
8523 2003-02-26  Dick Porter  <dick@ximian.com>
8524
8525         * process.c: Cope with padding in .rsrc blocks
8526
8527 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8528
8529         * metadata.h: reverted the filter_len change, it breaks reflection
8530         
8531 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8532
8533         * metadata.h: added a new field to store the filter_len
8534         
8535
8536 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8537
8538         * reflection.c: handle custom attributes for types and members
8539         created with Reflection.Emit (bug#38422).
8540
8541 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8542
8543         * reflection.c: define RTSpecialName automatically for constructors for
8544         compatibility with MS.NET.
8545
8546         * reflection.c (mono_reflection_create_runtime_class): initialize
8547         nested_in field of dynamically created classes.
8548
8549 2003-02-22  Martin Baulig  <martin@ximian.com>
8550
8551         * debug-mono-symfile.h: Incremented version number.
8552
8553 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8554
8555         * object.h icall.c process.c: fix warnings.
8556
8557 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8558
8559         * appdomain.h appdomain.c:
8560         (mono_domain_try_type_resolve): split the 
8561         name_or_tb argument into a name and a tb argument.
8562         (mono_domain_has_type_resolve): new function to check whenever the
8563         application has registered a TypeResolve event handler.
8564         
8565         * icall.c reflection.h reflection.c: move the type resolve logic into
8566         mono_reflection_get_type () so it will be invoked when 
8567         Assembly::GetType () is called.
8568
8569         * reflection.c:
8570         (mono_reflection_get_type): renamed to get_type_internal.
8571         (mono_reflection_get_type): fixed type name generation so it works 
8572         for nested types too.
8573         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8574         costly type name generation if there is no resolve event handler.
8575
8576 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8577
8578         * class.c, image.c: load exported types from file references.
8579
8580 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8581
8582         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8583           used to cache the managed methods used to create proxies and make 
8584           remote invocation of methods.
8585         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8586           to be remotely created.
8587         * object.c: Modified the method mono_class_vtable(). It now initializes 
8588           the remote flag of the vtable. Modified mono_object_new_specific(), 
8589           so now it checks the remote flag.
8590         * icall.c: Added a couple of internal methods, one for enabling instance 
8591           creation interception for a type, and one for creating objects bypassing
8592           the remote check.
8593
8594 2003-02-18  Martin Baulig  <martin@ximian.com>
8595
8596         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8597         New interncall to get a method's metadata token.
8598
8599         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8600         New interncall for the debugger.
8601
8602 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8603
8604         * class.c (mono_class_setup_vtable): allocate supertype array
8605
8606 2003-02-18  Martin Baulig  <martin@ximian.com>
8607
8608         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8609
8610 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8611
8612         * reflection.c:
8613         (assembly_name_to_aname): jump over unknown properties (i've found
8614         something like: 'type, assembly, version=xxx, custom=null, public...',
8615         so now will ignore custom=null and still get the rest of the values).
8616
8617 2003-02-17  Dick Porter  <dick@ximian.com>
8618
8619         * threads.c: Have Thread.Start() wait for a semaphore to signal
8620         that the thread has set up all its local data.  This fixes bug
8621         34323, where Abort() raced the new thread's TLS data.
8622
8623         Also removes the handle_store() call from start_wrapper, because
8624         threads are now always created suspended and there is no longer a
8625         race between the parent and child threads to store the info.
8626
8627 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8628
8629         * image.c: explain the #- heap issue in a message, hopefully
8630         avoiding FAQs on mono-list.
8631
8632 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8633
8634         * icall.c:
8635         (GetEntryAssembly): if the domain has not invoked
8636         AppDomain.ExecuteAssembly yet, return the assembly of the default
8637         AppDomain.
8638
8639 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8640
8641         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8642
8643 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8644
8645         * metadata.c, reflection.c: simple speedup to type hash
8646         and equals code.
8647
8648 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8649
8650         * image.c, image.h, class.c, assembly.c: move module loading
8651         to MonoImage. When loading metadata, consider alignemnet from
8652         the start of metadata, not from the metadata address in memory.
8653
8654 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8655
8656         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8657         AssemblyBuilder objects. Factored out custom attribute creation into
8658         a separate function.
8659         (create_custom_attr): new function to create custom attributes.
8660
8661 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8662
8663         * Makefile.am: Got tired of typing the full pathname to pedump.
8664         Until there is another option, am installing this.
8665
8666 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8667
8668         * class.c (class_compute_field_layout): always set field->parent 
8669         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8670
8671 2003-02-11  Dick Porter  <dick@ximian.com>
8672
8673         * threads-types.h:
8674         * monitor.c: Rewrote Monitor, making lock much faster and
8675         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8676         creates them as needed.
8677
8678         * exception.c: Added SynchronizationLockException
8679
8680         * threads.c: Deleted old Monitor implementation.  The new one is
8681         in a new file.
8682
8683 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8684
8685         * class.c: handled TypedReference type code. Set the correct size for
8686         class data. Setup interface_offsets for interface classes, too.
8687
8688 2003-02-09  Martin Baulig  <martin@ximian.com>
8689
8690         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8691
8692 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8693
8694         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8695         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8696         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8697         * verify.c: check for code that runs after the end of the method.
8698
8699 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8700
8701         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8702         "System.Math::Round2".
8703         * sysmath.h: Added Floor, Round and Round2 definitions.
8704         * sysmath.c: Modified certain functions that were not 100% compliant
8705         with MS.NET (math precision) and added the implementation of Floor,
8706         Round and Round2.
8707
8708 2003-02-07  Martin Baulig  <martin@ximian.com>
8709
8710         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8711
8712 2003-02-07  Martin Baulig  <martin@ximian.com>
8713
8714         * debug-mono-symfile.c: Reflected latest symwriter changes.
8715         (mono_debug_create_mono_symbol_file): Removed.
8716         (mono_debug_open_mono_symbol_file): Take an argument which
8717         specifies whether to create a dynamic symbol file.
8718
8719 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8720
8721         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8722
8723 2003-02-05  Martin Baulig  <martin@ximian.com>
8724
8725         * reflection.c (mono_image_build_metadata): Make this public,
8726         protect it against being called multiple times, don't create
8727         resources and don't build the compressed metadata here.
8728         (mono_image_create_pefile): Do this here.
8729
8730         * icall.c
8731         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8732
8733 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8734
8735         * socket-io.c: fixed bug #36322.
8736
8737 2003-02-06  Piers Haken <piersh@friskit.com>
8738
8739         * appdomain.[ch]:
8740         * class.h:
8741         * debug-mono-symfile.c:
8742         * icall.c:
8743         * loader.c:
8744         * mono-config.c:
8745         * monosn.c:
8746         * reflection.c:
8747         * socket-io.c: warning cleanups
8748
8749 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8750
8751         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8752         function. works like remoting invoke, but does a check for the Proxy first.
8753
8754 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8755
8756         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8757
8758 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8759
8760         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8761         array of pointers.
8762         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8763         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8764
8765         * object.c (mono_store_remote_field_new): used by the new jit
8766         instead of mono_store_remote_field
8767         (mono_load_remote_field_new): used by the new jit
8768         instead of mono_load_remote_field
8769
8770 2003-02-05  Patrik Torstensson
8771
8772         * appdomain.c: changed unload to take the domain id instead
8773         of domain
8774         
8775         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8776
8777
8778 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8779
8780         * appdomain.c: don't look for assemblies in ApplicationBase if
8781         PrivateBinPathProbe is set.
8782
8783 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8784
8785         * object.c: make the first argument in main_args contain the absolute
8786         path to the assembly. Fixes bug #37511.
8787
8788 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8789
8790         * icall.c: get correct UTC offset for countries not using daylight
8791         time saving. Fixes bug #30030.
8792
8793 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8794
8795         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8796         and 1 are the family).
8797
8798 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8799
8800         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8801
8802         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8803
8804 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8805
8806         * reflection.c: added support for SignatureHelper tokens, which is
8807         needed by the Calli opcode.
8808
8809         * reflection.h: track changes to SignatureHelper class.
8810
8811         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8812
8813 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8814
8815         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8816
8817 2003-02-03  Patrik Torstensson
8818         * appdomain.[c|h], domain.c : 
8819          - Added support for getting a domain via domain id
8820          - Support for setting and getting domain from System.AppDomain 
8821            (used in cross appdomain channel)
8822          - Added support for get/set for a MonoAppContext on a thread 
8823            (Context class in System.Runtime.Remoting.Contexts),
8824          - Removed hack in Get/SetData and ExecuteAssembly.
8825         
8826         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8827         the managed world to get control when a proxy is created.
8828
8829         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8830         
8831 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8832
8833         * icall.c
8834         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8835         Populate the codebase field as well.
8836
8837 2003-02-02  Martin Baulig  <martin@ximian.com>
8838
8839         * debug-mono-symfile.c
8840         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8841         (mono_debug_symfile_add_method): Allow interncalls.
8842
8843 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8844
8845         * icall.c: throw parse exception if strtod fails or the string is empty.
8846
8847 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8848
8849         * marshal.c: handle object type separately from defined
8850         class types.
8851
8852 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8853
8854         * marshal.c: handle NATIVE_LPSTR for strings when it's
8855         explicitly specified.
8856
8857 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8858
8859         * reflection.c, reflection.h, icall.c: setup the reflection
8860         handle cache for ModuleBuilders and AssemblyBuilders.
8861
8862 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8863
8864         * reflection.c (reflection_methodbuilder_to_mono_method): set
8865         pinvoke flag
8866
8867 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8868
8869         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8870
8871 2003-01-29  Dick Porter  <dick@ximian.com>
8872
8873         * threads.c: No need for the fake_thread kludge now that Thread
8874         doesn't run a class constructor
8875         
8876 2003-01-29  Dick Porter  <dick@ximian.com>
8877
8878         * threads.c: Use g_direct_hash instead of the rather bogus
8879         g_int_hash
8880
8881 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8882
8883         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8884         (fix pinvoke12.exe)
8885         (mono_marshal_get_struct_to_ptr): generate valid IL code
8886         (mono_marshal_get_ptr_to_struct): generate valid IL code
8887         (*): correctly set sig->pinvoke, we need to memdup the signature
8888         to do that
8889
8890 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8891
8892         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8893         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8894
8895 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8896
8897         * profiler.c: provide more callers information.
8898
8899 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8900
8901         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8902
8903         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8904
8905         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8906
8907 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8908
8909         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8910         exception instead of going into an infinite loop on dates which it 
8911         can't yet handle.
8912
8913         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
8914         out-of-range exception if needed.
8915
8916         * class.c (mono_class_setup_vtable): allow a virtual method to provide
8917         an implementation for an interface method and to override an inherited
8918         method at the same time. 
8919         Imagine a scenario when a virtual method is used to override a
8920         virtual abstract method in a parent class, and this same method 
8921         provides an implementation for an method inherited from an interface. 
8922         In this case, the interface resolution code will set im->slot, which 
8923         means that the virtual method override pass will skip this method 
8924         which means a pointer to the abstract method inherited from the parent
8925         will remain in the vtable of this non-abstract class.
8926
8927         * class.c: (mono_class_setup_vtable): continue search for a real 
8928         method if only an abstract method is found.     
8929
8930 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8931
8932         * reflection.c: add size to encoding for ByValStr and ByValArray
8933         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
8934
8935 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8936
8937         * class.c (mono_class_setup_vtable): pass the override info as an
8938         argument.
8939
8940         * class.c (mono_class_setup_vtable): set the slot of overriding methods
8941         correctly.
8942         
8943         * reflection.c (ensure_runtime_vtable); add support for method 
8944         overrides.
8945         
8946 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8947
8948         * reflection.c (resolution_scope_from_image): Hack to work to work with
8949         dynamic assemblies.
8950
8951         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
8952         added a 'force_ref' argument to force this function to allways return 
8953         a TypeRef. This is needed by mono_image_get_memberref_token ().
8954         
8955 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8956
8957         * reflection.c (mono_image_get_type_info): interfaces really don't have
8958         a parent.
8959
8960         * reflection.c (mono_image_basic_init): fill out missing fields of
8961         image structure.
8962
8963         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
8964         dynamic assemblies. This is required so dynamic assemblies show up in
8965         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
8966         Type::GetType() etc. This is consistent with MS behaviour.
8967
8968         * image.c image.h reflection.c: add newly created classes to the name 
8969         cache so mono_class_get () will find them.      
8970
8971 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8972
8973         First part of changes to get IKVM.NET running under mono.
8974         
8975         * appdomain.h, appdomain.c: added new function 
8976         mono_domain_try_type_resolve() which will emit TypeResolve events. 
8977         This function will call AppDomain::DoTypeResolve to do the actual work.
8978
8979         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
8980         moved existing code dealing with dynamic tokens to a new function 
8981         called mono_reflection_lookup_dynamic_token (). This function will 
8982         raise TypeResolve events when appropriate. Since reflection.c is not 
8983         part of libmetadata, a new hook function called 
8984         mono_lookup_dynamic_token() is added to class.c which will call this.
8985
8986         * assembly.h assembly.c: make the invoke_load_hook function public,
8987         so it can be called for dynamic assemblies.
8988
8989         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
8990
8991         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
8992         type isn't found.
8993
8994         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
8995         MonoGHashTable, since it contains pointers to objects which the GC 
8996         needs to track.
8997
8998         * assembly.c (search_loaded): remove unused variable.
8999         
9000 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
9001
9002         * object.c: fixed issue exposed by gcc-generated IL programs
9003         that use RVA data for pointers.
9004
9005 2003-01-25  Martin Baulig  <martin@ximian.com>
9006
9007         * threads.c (start_wrapper): Moved the initialization of
9008         `start_func' above the mono_new_thread_init() call to which we
9009         pass it as argument.
9010
9011 2003-01-24  Martin Baulig  <martin@ximian.com>
9012
9013         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
9014         the MonoThread pointer.
9015
9016 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
9017
9018         * icall.c: Rename `PowImpl' to Pow.
9019
9020 2003-01-23  Dick Porter  <dick@ximian.com>
9021
9022         * threads.c (start_wrapper): Create a Thread object if needed, so
9023         the Main() thread can do the class initialisation in a subthread
9024         that has been set up to allow managed code execution.
9025
9026         Pass the thread ID instead of the MonoThread pointer to the thread
9027         start and attach callbacks.  This change is required, because the
9028         jit thread start callback must be called _before_ the Thread
9029         object can be created.
9030         
9031         (mono_thread_init): Removed much object creation code that is no
9032         longer needed.  No managed code is called from here now.
9033
9034         * object.c (mono_runtime_exec_managed_code): Create a subthread
9035         for Main, and call back to the runtime to use it.
9036         Set the exit code when Main exits.
9037
9038         * gc.c: Make sure domain finalisation happens in a subthread.
9039         Re-enable threaded GC, fixing bug 31333 (again).
9040
9041         * environment.c: System.Environment internall calls (so far just
9042         ExitCode is here, the others are still in icall.c)
9043
9044         * appdomain.c (mono_runtime_cleanup): All threads running managed
9045         code should have finished before mono_runtime_cleanup() is
9046         reached, so no need to clean up threads.
9047
9048 2003-01-22  Martin Baulig  <martin@ximian.com>
9049
9050         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
9051         `gpointer func' arguments.      
9052         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
9053         but added `MonoThread *thread' argument.
9054         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
9055
9056         * threads.c (mono_new_thread_init): Added `gpointer func' argument
9057         and pass it to the mono_thread_start_cb callback.
9058         (mono_install_thread_callbacks): New public function to install a
9059         set of callbacks which are set by the debugger.
9060         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
9061
9062 2003-01-22  Martin Baulig  <martin@ximian.com>
9063
9064         * Makefile.am: Install debug-mono-symfile.h.
9065
9066 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
9067
9068         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
9069
9070 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
9071
9072         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
9073         * class.c (mono_ptr_class_get): correctly set access levels of pointers
9074         (mono_array_class_get): correctly set access levels of arrays
9075
9076 2003-01-20      Patrik Torstensson
9077         * image.h (MonoAssemblyName): changed major, minor, build, revision
9078         from signed to unsigned.
9079
9080 2003-01-20  sean kasun <skasun@azstarnet.com>
9081
9082         * reflection.c (load_cattr_value): Now this handles
9083         MONO_TYPE_SZARRAY.  Fixes bug #35629
9084
9085 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
9086
9087         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
9088         integer value
9089
9090 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9091
9092         * decimal.c: fixed bug #26056.
9093
9094 2003-01-17  Martin Baulig  <martin@ximian.com>
9095
9096         * gc.c: Raise an ExecutionEngineException instead of using g_error().
9097
9098 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9099
9100         * exception.[ch]:
9101         (mono_get_exception_type_initialization): new function.
9102
9103         * object.c: throw a TypeInitializationException when an exception is
9104         thrown invoking the class constructor.
9105
9106 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9107
9108         * reflection.c: fixed attribute reading.
9109
9110 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9111
9112         * icall.c:
9113         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9114         provided, look for the type in the calling assembly and then in
9115         mscorlib; if the assembly name is provided, only try that one.
9116
9117 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9118
9119         * object.c: register the vtable before there is a chance it's
9120         queried again recursively.
9121
9122 2003-01-13  Duncan Mak  <duncan@ximian.com>
9123
9124         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9125         gc-internal.h. 
9126         
9127 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9128
9129         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9130
9131 2003-01-11  Martin Baulig  <martin@ximian.com>
9132
9133         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9134         this to 20 for the release.
9135
9136 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9137
9138         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9139
9140         * loader.c (mono_method_get_marshal_info): bug fix
9141
9142         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9143         structures with explicit layout
9144
9145 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9146
9147         * profiler.c: made the output more readable (and sorted). 
9148         Added caller information for the allocation profiler.
9149
9150 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9151
9152         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9153
9154 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9155
9156         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9157         to get value types.
9158         
9159 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9160
9161         * object.c, profiler.h, profiler.c, profiler-private.h:
9162         Added object allocation profiler.
9163
9164 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9165
9166         * reflection.h, reflection.c: handle global methods.
9167         Compress blob entries.
9168
9169 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9170
9171         * marshal.c: fix compilation.
9172
9173 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9174
9175         * loader.c (mono_method_get_marshal_info): impl.
9176
9177         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9178
9179 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9180
9181         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9182         for reference types.
9183
9184 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9185
9186         * loader.c: fixed off by one error in loaded parameter names.
9187
9188 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9189
9190         * marshal.c (mono_marshal_get_icall_wrapper): like
9191         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9192         instead of a MonoMethod.
9193
9194 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9195
9196         * decimal.c: fixed bug #36537.
9197
9198 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9199
9200         * marshal.c: throw a missing method exception if a
9201         P/Invoke method is not found.
9202
9203 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9204
9205         * icall.c: allow a null this for constructors.
9206
9207 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9208
9209         * icall.c: raise the proper exceptions if the arguments to the
9210         internal Invoke are incorrect.
9211
9212 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9213
9214         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9215
9216 2003-01-03  Martin Baulig  <martin@ximian.com>
9217
9218         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9219
9220 2002-12-31  Martin Baulig  <martin@ximian.com>
9221
9222         * debug-mono-symfile.c: Completely rewrote the type section.
9223         Instead of using individual malloc()ed fields, we use one big
9224         continuous memory area and offsets into this area.
9225         See the comments in the source code for details.
9226
9227 2002-12-30  Martin Baulig  <martin@ximian.com>
9228
9229         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9230
9231 2002-12-30  Martin Baulig  <martin@ximian.com>
9232
9233         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9234         line number table in this data blob instead of using an external
9235         pointer.
9236
9237 2002-12-28  Martin Baulig  <martin@ximian.com>
9238
9239         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9240
9241 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9242
9243         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9244         as a boxed return type.
9245
9246 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9247
9248         * appdomain.c
9249         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9250         g_build_filename to properly get separators on the filename created.
9251
9252         * object.h: Small change, introduce MonoMarshalByRefObject to
9253         track the layout of that structure in the C# universe as we make
9254         changes there.
9255
9256 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9257
9258         * object.c: removed assert to allow static fields on interfaces.
9259         * loader.c: a TypeSpec may be used for any type, not just arrays.
9260
9261 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9262
9263         * class.c, class.h: added mono_class_array_element_size ().
9264         Ignore static methods in interfaces.
9265
9266 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9267
9268         * threads.c: fixed the build under cygwin.
9269
9270 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9271
9272         * reflection.c: handle nullref constants. Allocate keys for
9273         reflection handles with the GC.
9274
9275 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9276
9277         * threads.c, threads.h: added mono_thread_get_abort_signal()
9278         to get a suitable signal for thread abort.
9279
9280 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9281
9282         * metadata.c: fix handling of ExportedType table.
9283
9284 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9285
9286         * icall.c: added WriteWindowsDebugString internal call.
9287
9288 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9289
9290         * reflection.h: added fields to match C# implementation.
9291
9292 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9293
9294         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9295
9296 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9297
9298         * gc.h, gc-internal.h: Rename header for GC internal calls to
9299         gc-internal.h from gc.h as to not clash with Boehm GC having its
9300         header installed as <gc.h> in outside include paths.
9301         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9302         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9303
9304 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9305
9306         * icall.c: assign minor, build and revision in FillName.
9307
9308 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9309
9310         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9311         Added support for running code generated by Reflection.Emit.
9312
9313 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9314
9315         * appdomain.c: check for NULL argument in LoadFrom.
9316
9317 2002-12-10  Dick Porter  <dick@ximian.com>
9318
9319         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9320
9321 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9322
9323         * appdomain.c: fix buglet when building exe file name.  Handle full
9324         assembly name (needed after latest changes to AssemblyName).
9325         * image.c:
9326         (mono_image_close): free some hashtables.
9327
9328 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9329
9330         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9331         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9332         on some systems (redhat 7.3) 
9333
9334 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9335
9336         * threads.c: delete the critical section of a sync block,
9337         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9338
9339 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9340
9341         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9342
9343 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9344
9345         * appdomain.[ch]: handle the assembly preload event to try loading the
9346         assemblies using the paths we have in the current domain.
9347
9348         * assembly.[ch]: created an assembly preload hook that is called to try
9349         loading the assembly by other means that the ones provided here.
9350
9351         * domain.c: initialize the domain search path.
9352
9353         From now on, assemblies (TODO: except corlib and System) are loaded
9354         according to these rules when using mono_assembly_load ():
9355
9356                 1. It tries to load the assembly from the ApplicationBase
9357                 of the current domain appending .dll and .exe (TODO: have to
9358                 try loading from name/name.dll and name/name.exe).
9359
9360                 2. It tries the search path specified in PrivateBinPath for the
9361                 current domain (if any).
9362
9363                 3. Previous behavior.
9364
9365 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9366
9367         * icall.c: implemented GetInterfaceMap() related icall.
9368         * domain.c, loader.h: load MethodInfo in mono_defaults.
9369
9370 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9371
9372         * gc.c: disable the finalizer thread for now, untill all the issues
9373         with it are resolved.
9374
9375 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9376
9377         * string-icalls.c: handle embedded nulls in string ctor when the
9378         length is specified.
9379
9380 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9381
9382         * class.c: look for explicit interface implementation in parent
9383         classes, too.
9384
9385 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9386
9387         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9388
9389 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9390
9391         * gc.c: protect handles with a critical section.
9392
9393 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9394
9395         * icall.c:
9396         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9397         parameters. If no assembly specified, try getting the type from all
9398         the assemblies in the current domain, else, load the assembly and get
9399         the type from it.
9400
9401 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9402
9403         * marshal.c: applied patch from Aleksey Demakov that fixes
9404         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9405
9406 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9407
9408         * icall.c: fixed get_location.
9409
9410 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9411
9412         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9413         declarations to make it work with older gcc. 
9414
9415         * loader.c (mono_get_method): set signature->pinvoke for native calls
9416
9417 2002-11-20  Dick Porter  <dick@ximian.com>
9418
9419         * threads.c (mono_thread_init): Set the main thread's handle
9420
9421 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9422
9423         * gc.c: allow compilation without GC support. Changed to match the
9424         mono coding style.
9425
9426 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9427
9428         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9429
9430 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9431
9432         * reflection.c: set a public key token on the core assemblies.
9433
9434 2002-11-18  Dick Porter  <dick@ximian.com>
9435
9436         * threads.c: Split out some thread initialisation so that other
9437         files can set the start callback function.
9438
9439         * gc.c: Run finalisers in a separate thread, to avoid stack
9440         overflow.  Fixes bug 31333.
9441
9442         * appdomain.c: Set up GC finalisation thread.
9443
9444         * reflection.c: 
9445         * object.c: 
9446         * domain.c: Use gc.h macros for GC_malloc
9447         
9448 2002-11-15  Dick Porter  <dick@ximian.com>
9449
9450         * threadpool.c: 
9451         * threads.c:
9452         * appdomain.c: Removed mono_runtime_init_with_attach(),
9453         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9454         merging the extra parameter with the existing function.  Removed
9455         unneeded code in mono_thread_attach().
9456
9457 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9458
9459         * image.c (mono_image_loaded_by_guid): a method to get loaded
9460         images by guid. 
9461         (load_metadata_ptrs): we store the guid as string.
9462
9463 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9464
9465         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9466
9467         * metadata.c (mono_guid_to_string): imported method form Zoltan
9468         Varga (slightly modified)
9469
9470         * assembly.c (mono_assembly_open): load precompiled code
9471
9472         * loader.h (MonoMethod): we store the method token for use in the
9473         aot compiler. 
9474
9475 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9476
9477         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9478         the hook function called when an assembly is loaded.
9479         
9480         * domain.c: Modified file.
9481         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9482
9483         Fixes bug #33196.
9484
9485 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9486
9487         * reflection.c: Map PEFileKind to the value expected by the WinNT
9488         image loader. 
9489
9490 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9491
9492         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9493         Read until the buffer is filled completely.
9494
9495 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9496
9497         * icall.c: implemented MonoType.InternalGetEvent ().
9498
9499 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9500
9501         * appdomain.c: implemented InitAppDomainSetup. Delayed
9502         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9503         the entry_assembly.
9504
9505         * assembly.c: base_dir is now an absolute path ending with
9506         G_DIR_SEPARATOR.
9507
9508         * icall.c: modified get_location according to the above changes.
9509
9510         * object.c: init AppDomain.SetupInformation for the default domain after
9511         we have the entry assembly.
9512
9513         * domain.c: when unloading a domain, setup = NULL.
9514
9515 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9516
9517         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9518
9519 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9520
9521         * object.h, object.c: introduced mono_object_get_virtual_method ()
9522         to lookup the method invoked on an object when a callvirt is done on
9523         a method.
9524         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9525
9526 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9527
9528         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9529         current domain when loaded an assembly and failed to load it.
9530
9531         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9532
9533 2002-10-31  Dick Porter  <dick@ximian.com>
9534
9535         * icall.c: 
9536         * file-io.h: 
9537         * file-io.c: Return the error status in a parameter, as the
9538         GetLastError() value has long since been blown away if we try and
9539         look it up in a subsequent internal call invocation.  Delete the
9540         GetLastError() internal call, because it's useless.
9541
9542 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9543
9544         * class.[ch]: added cast_class to fix bug 29517
9545
9546 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9547
9548         * marshal.c: create valid IL code in the filter clause:
9549         the new JIT is less forgiving:-)
9550
9551 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9552
9553         * icall.c: removed get_property internal call.
9554
9555 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9556
9557         * appdomain.h domain.c: Added an ID to appdomains.
9558         
9559         * threads.c threads.h icall.c: Implement icall
9560         Thread:GetDomainID(), and remove unused icall 
9561         CurrentThreadDomain_internal.
9562
9563 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9564
9565         * icall.c: Don't recurse through the base types in GetConstructor.
9566         Fixes bug #32063. 
9567
9568 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9569
9570         * mempool.h, mempool.c: added mono_mempool_empty() and
9571         mono_mempool_stats().
9572
9573 2002-10-23  Dick Porter  <dick@ximian.com>
9574
9575         * file-io.c: 
9576         * file-io.h: 
9577         * icall.c: Added MonoIO.GetFileType internal call
9578
9579 2002-10-17  Dick Porter  <dick@ximian.com>
9580
9581         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9582         delegate semaphore before waiting for all threads to finish,
9583         because new threads can also call async delegates.  Fixes bug
9584         32004.
9585
9586         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9587         of 3 seconds, in case another async job is queued.  (This part is
9588         needed because the bug fix reintroduced the 3s exit lag.)  This
9589         makes the mono_runtime_shutdown flag superfluous.
9590
9591 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9592
9593         * reflection.c: include ehader size in method section headers.
9594         Really check for suplicated modules entries.
9595
9596 2002-10-17  Martin Baulig  <martin@gnome.org>
9597
9598         * debug-mono-symfile.c: Added back support for locals.
9599
9600 2002-10-14  Martin Baulig  <martin@gnome.org>
9601
9602         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9603         MONO_TYPE_VOID.
9604
9605 2002-10-14  Martin Baulig  <martin@gnome.org>
9606
9607         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9608         mono_class_get() instead of looking in the class cache. 
9609
9610 2002-10-13  Martin Baulig  <martin@gnome.org>
9611
9612         * debug-mono-symfile.c: Set version number to 28, include the
9613         signature in method names.
9614
9615 2002-10-13  Martin Baulig  <martin@gnome.org>
9616
9617         * debug-mono-symfile.h: Set version number to 27.
9618
9619 2002-10-11  Martin Baulig  <martin@gnome.org>
9620
9621         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9622
9623 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9624
9625         * metadata.c, metadata.h: added helper function to allocate signatures.
9626
9627 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9628
9629         * icall.c: added internal call to get the location of machine.config.
9630
9631 2002-10-08  Martin Baulig  <martin@gnome.org>
9632
9633         * debug-mono-symfile.c: Ignore classes with a pending init for the
9634         moment.
9635
9636 2002-10-03  Dick Porter  <dick@ximian.com>
9637
9638         * threads.c: Freebsd pthread_t is a pointer
9639
9640 2002-10-03  Dick Porter  <dick@ximian.com>
9641
9642         * socket-io.c: Implemented GetHostName_internal
9643
9644 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9645
9646         * mono-config.c:
9647         (mono_config_parse_file): don't leak the text.
9648
9649 2002-10-02  Martin Baulig  <martin@gnome.org>
9650
9651         * debug-mono-symfile.c: Added support for methods.
9652
9653 2002-10-01  Martin Baulig  <martin@gnome.org>
9654
9655         * debug-mono-symfile.c: Don't emit methods and line numbers for
9656         the dynamic symbol file, just write the type table.  We can easily
9657         have an external helper program which creates a symbol file for an
9658         IL file.        
9659
9660 2002-10-01  Dick Porter  <dick@ximian.com>
9661
9662         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9663         Only add the handle to the cleanup array when we're about to
9664         launch the thread.  Bug 31425 deadlocked when the test was run on
9665         mono under w32.
9666
9667 2002-10-01  Martin Baulig  <martin@gnome.org>
9668
9669         * debug-mono-symfile.c: Added support for properties.
9670
9671 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9672
9673         * reflection.c: unaligned store fix from Mark Crichton
9674         <crichton@gimp.org>.
9675
9676 2002-09-27  Martin Baulig  <martin@gnome.org>
9677
9678         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9679         New interncall.
9680
9681 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9682
9683         * assembly.h, assembly.c: use a sane API to hook into the assembly
9684         loading process instead of a useless special-purpouse hack
9685         (ngen needs a hook, too, for example).
9686
9687 2002-09-27  Dick Porter  <dick@ximian.com>
9688
9689         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9690         io-layer can set up some process handle info.  Not needed on w32,
9691         but doesn't hurt either.
9692
9693         * process.c: Pass the program name in the second parameter to
9694         CreateProcess, so the path is searched.  Include the working
9695         directory. Implemented process name, process enumeration, and some
9696         process detail internal calls.
9697         
9698         * icall.c: Added internal calls for process lookup, and some
9699         process details
9700
9701 2002-09-26  Martin Baulig  <martin@gnome.org>
9702
9703         * assembly.c (mono_install_open_assembly_hook): New global
9704         function to install a function to be invoked each time a new
9705         assembly is loaded.
9706         (mono_assembly_open): Run this callback function if set.
9707
9708         * debug-mono-symfile.c: Put back line numbers for the dynamic
9709         symbol file and also record the .il file as source file.  This
9710         allows us to install the temporary symbol file as `file.dbg' just
9711         like a compiler-generated one.
9712
9713 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9714
9715         * Corrected typo in gc.c (BOHEM vs BOEHM).
9716
9717 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9718
9719         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9720         GetProperties. Also avoid calling g_slist_length in GetProperties and
9721         GetMethods.
9722
9723 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9724
9725         * reflection.c: avoid unaligned stores (bug spotted by
9726         Mark Crichton  <crichton@gimp.org>).
9727
9728 2002-09-25  Martin Baulig  <martin@gnome.org>
9729
9730         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9731         instead of guint64 for addresses and added prologue/epilogue info.
9732
9733 2002-09-25  Martin Baulig  <martin@gnome.org>
9734
9735         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9736         store line number info.  For the dynamic symbol file, we only need
9737         to provide the JIT generated dynamic line number info for the dynamic
9738         symbol file.
9739
9740 2002-09-25  Martin Baulig  <martin@gnome.org>
9741
9742         * debug-mono-symfile.h: Incremented version number.
9743
9744 2002-09-24  Martin Baulig  <martin@gnome.org>
9745
9746         * class.c (mono_debugger_class_init_func): New global function
9747         pointer variable.
9748         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9749         call it.
9750
9751         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9752         function.  This is called via the mono_debugger_class_init_func
9753         hook to add all types to the dynamic type table.
9754         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9755         from its metadata token.
9756
9757         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9758         New interncall for the debugger.
9759
9760 2002-09-24  Nick Drochak <ndrochak@gol.com>
9761
9762         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9763         before using it in case it is null.
9764         
9765 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9766
9767         * metadata.c: allow custom modifiers in local var signatures
9768         (bug spotted by Zoltan Varga).
9769
9770 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9771
9772         * class.c: deal with the <Module> class that may have a NULL vtable.
9773         Eliminate warnings.
9774
9775 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9776
9777         * image.c, image.h: more strong name helpers.
9778         * monosn.c: more work: convert pem keys to cryptoapi format.
9779
9780 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9781
9782         * string-icalls.c: speedup IndexOf.
9783
9784 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9785
9786         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9787
9788 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9789
9790         * icall.c: cleanup: use mono_object_domain ().
9791
9792 2002-09-23  Martin Baulig  <martin@gnome.org>
9793
9794         * debug-mono-symfile.c: Improved type support.
9795
9796 2002-09-22  Martin Baulig  <martin@gnome.org>
9797
9798         * debug-mono-symfile.c: Added support for reference types and strings.
9799
9800 2002-09-22  Martin Baulig  <martin@gnome.org>
9801
9802         * debug-mono-symfile.c: Started to work on the type table.
9803
9804 2002-09-21  Martin Baulig  <martin@gnome.org>
9805
9806         * debug-mono-symfile.c: Largely reworked the symbol table format.
9807         The symbol table is now incrementally updated each time a new
9808         method is added.  We're now also using our own magic and version
9809         so that you don't need to recompile all your classes if the
9810         dynamic table changes.
9811         (mono_debug_update_mono_symbol_file): Removed.
9812         (mono_debug_symfile_add_method): New function to add a method.
9813
9814 2002-09-21  Martin Baulig  <martin@gnome.org>
9815
9816         * icall.c
9817         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9818         New interncall.
9819
9820         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9821         New interncall to get a method from its metadata token.
9822
9823 2002-09-21  Martin Baulig  <martin@gnome.org>
9824
9825         * debug-mono-symfile.c: Create type table.
9826
9827 2002-09-20  Martin Baulig  <martin@gnome.org>
9828
9829         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9830
9831 2002-09-20  Martin Baulig  <martin@gnome.org>
9832
9833         * debug-mono-symfile.c: Provide information about params and locals.
9834
9835 2002-09-20  Martin Baulig  <martin@gnome.org>
9836
9837         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9838         New interncall.
9839
9840         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9841         interncall to get a method from its metadata token.
9842
9843 2002-09-20  Martin Baulig  <martin@gnome.org>
9844
9845         * debug-mono-symfile.c: Added a few checks for method->header
9846         being non-NULL.  This should never happen, but for the moment
9847         let's use a g_warning() rather than a g_assert().
9848
9849 2002-09-19  Mark Crichton  <crichton@gimp.org>
9850
9851         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9852         even if support for it isn't present.  Added an #ifdef to fix this.
9853
9854         * socket-io.c: Added checks back for Solaris support.
9855
9856 2002-09-19  Martin Baulig  <martin@gnome.org>
9857
9858         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9859         changes in the symbol file format.
9860
9861 2002-09-18  Martin Baulig  <martin@gnome.org>
9862
9863         * debug-mono-symfile.c: Set version number to 21.
9864
9865 2002-09-18  Dick Porter  <dick@ximian.com>
9866
9867         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9868         on netbsd.  Fixes bug 30051.
9869
9870 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9871
9872         * reflection.c:
9873         (set_version_from_string): little fix.
9874
9875 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9876
9877         * monosn.c, Makefile.am: added strong name utility.
9878         * reflection.h, reflection.c: implemented delayed signing,
9879         locale, version and hash id assembly attributes.
9880
9881 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9882
9883         * loader.c, metadata.c: load param attributes in signatures.
9884
9885 2002-09-16  Martin Baulig  <martin@gnome.org>
9886
9887         * debug-mono-symfile.c: Added string table with all method names.
9888
9889 2002-09-14  Martin Baulig  <martin@gnome.org>
9890
9891         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9892         fast method lookup.
9893
9894 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9895
9896         * reflection.c: record the public key token of referenced assemblies.
9897
9898 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9899
9900         * image.c, image.h: added functions to get the strong name and the
9901         public key of an assembly.
9902         * pedump.c: use them.
9903
9904 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9905
9906         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9907
9908 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9909
9910         * marshal.c (mono_marshal_get_managed_wrapper): Added
9911         MONO_TYPE_BOOLEAN 
9912
9913 2002-09-11  Martin Baulig  <martin@gnome.org>
9914
9915         * gc.c: Call GC_unregister_disappearing_link() on all links when
9916         finalizing them, this is necessary to aviod a crash in boehm's
9917         finalize handler.
9918
9919 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9920
9921         * gc.c: handle GetTarget for finalized objects spotted and fixed by
9922         nick@chemlab.org.
9923
9924 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9925
9926         * icall.c: implemented MonoType::Module.
9927         * reflection.c, reflection.h: mono_module_get_object () from
9928         Tomi Pakarinen <tomi.pakarinen@welho.com>.
9929
9930 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9931
9932         * icall.c: ignore overridden methods in GetMethods ().
9933         Fix for FieldInfo::SetValue().
9934         * object.c: handle float/double in runtime invoke.
9935
9936 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9937
9938         * object.c: allow a constructor to be called again on an object.
9939
9940 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9941
9942         * class.h, class.c: move field layout code to it's own function and
9943         export it. Get an interface id earlier. Move fields in MonoClass
9944         so they are more cache friendly and align the bitfields.
9945         * loader.c: temporary handle get_param_names() for a runtime method.
9946         * reflection.c, reflection.h: more code to handle runtime creation of
9947         types.
9948
9949 2002-09-09  Martin Baulig  <martin@gnome.org>
9950
9951         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
9952         signature with the pinvoke field being set for the actual call.
9953
9954 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9955
9956         * icall.c: removed some unused icalls. Start of map of glib charsets
9957         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
9958
9959 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9960
9961         * debug-helpers.c: break infinite loop (found and fixed by
9962         Holger Arnold <harnold@gmx.de>).
9963
9964 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9965
9966         * icall.c: target may be null in create_delegate.
9967
9968 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9969
9970         * marshal.c: handle a boolean return type.
9971
9972 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9973
9974         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
9975
9976 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9977
9978         * gc.c: fix weakreferences.
9979
9980 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9981
9982         * icall.c: added icall to get default codepage.
9983
9984 2002-09-03  Dick Porter  <dick@ximian.com>
9985
9986         * threads.h: 
9987         * threads.c: Use MonoThread instead of MonoObject where
9988         apropriate.
9989
9990         Store running thread objects in a hash table, so that we have all
9991         the info to hand when waiting for them to finish
9992         (means we don't need OpenThread() any more, so mingw builds should
9993         be fully functional again.)
9994
9995         * verify.c:
9996         * object.h: Added thread ID to MonoThread
9997
9998 2002-09-03  Martin Baulig  <martin@gnome.org>
9999
10000         * icall.c (System.Reflection.Assembly::get_location): New interncall.
10001
10002 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10003
10004         * icall.c: fixed leak in get_temp_path. Thanks lupus.
10005
10006 2002-09-03  Martin Baulig  <martin@gnome.org>
10007
10008         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
10009         argument to store the end address of the disassembled instruction.
10010
10011         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
10012         here from debug-symfile.h.
10013         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
10014         JIT into this struct.
10015         (MonoSymbolFile): Added `char *image_file' field.
10016         (MonoDebugGetMethodFunc): Removed.
10017         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
10018         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
10019         (mono_debug_find_method): New method.
10020
10021         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
10022         create a full symbol file.
10023         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
10024         and static symbol files.
10025         (mono_debug_find_method): The symbol file keeps an internal method hash,
10026         call this to get a MonoDebugMethodInfo from a MonoMethod.
10027
10028         * debug-symfile.[ch]: Removed.
10029
10030 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
10031
10032         * image.c (do_mono_image_open): Remove linker version check.
10033
10034 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
10035
10036         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
10037         wrappers for instance methods.
10038         
10039 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10040
10041         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
10042
10043 2002-08-28  Dick Porter  <dick@ximian.com>
10044
10045         * Makefile.am: Export HOST_CC for w32 builds
10046
10047 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10048
10049         * file-io.c process.c: MonoString are null terminated, no
10050         need for mono_string_to_utf16() anymore.
10051
10052 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10053
10054         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
10055
10056 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
10057
10058         * icall.c, reflection.h: speedup System.MonoType.
10059
10060 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10061
10062         * reflection.c: allow null as the value of a string argument in
10063         custom attributes constructors.
10064
10065 2002-08-27  Martin Baulig  <martin@gnome.org>
10066
10067         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
10068         `trampoline_address' field.
10069
10070 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
10071
10072         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
10073         check (fixes bug #29486) 
10074
10075 2002-08-27  Martin Baulig  <martin@gnome.org>
10076
10077         * debug-mono-symfile.c: Changed the file format in a way that allows us
10078         open it read-only and to use a specially malloced area for all the
10079         dynamic data.  We can now also generate a symbol file on-the-fly if we're
10080         debugging IL code and there is no MCS generated symbol file for it.
10081
10082 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10083
10084         * object.c: added a define for a good string and array
10085         creation speedup (not enabled by default because we need to deal with
10086         the synch stuff).
10087
10088 2002-08-26  Martin Baulig  <martin@gnome.org>
10089
10090         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
10091         function to create a dynamic symbol file.  This is used by the
10092         debugger to create a symbol file for IL code on-the-fly.
10093
10094 2002-08-26  Martin Baulig  <martin@gnome.org>
10095
10096         * loader.c (mono_lookup_pinvoke_call): Include the error message
10097         from g_module_error() in the error message.
10098
10099 2002-08-24  Martin Baulig  <martin@gnome.org>
10100
10101         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
10102         function to update the symbol file.  The symbol file is mmap()ed
10103         writable, but private.  This allows us to install the symbol file
10104         together with the assembly.
10105
10106 2002-08-24  Martin Baulig  <martin@gnome.org>
10107
10108         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
10109         but they can read the new symbol file format which mcs is now creating.
10110
10111         * debug-symfile.c (mono_debug_find_source_location): Moved to
10112         debug-mono-symfile.c; this is now operating on the new symbol file.
10113
10114 2002-08-23  Martin Baulig  <martin@gnome.org>
10115
10116         * debug-helpers.c (mono_method_desc_from_method): New function to get
10117         a MonoMethodDesc from a MonoMethod.
10118
10119 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10120
10121         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10122         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10123
10124 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10125
10126         * string-icalls.[ch]: make helper methods static.
10127
10128 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10129
10130         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10131         types to it and to SetValueInternal.
10132
10133         * object.c: Moved handle_enum label to its proper place. This was the
10134         f... bug! ;-)
10135
10136         This time i compiled mcs and gtk-sharp and they both work.
10137
10138 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10139
10140         * icall.c: reverted partially my previous patch until 
10141         object.c:set_value handles enums correcly.
10142
10143 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10144
10145         * icall.c:
10146         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10147         (ves_icall_System_Environment_get_MachineName): removed warning when
10148         compiling under cygwin.
10149
10150 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10151
10152         * object.c: fixed field_get_value() for reference types.
10153
10154 2002-08-22  Dick Porter  <dick@ximian.com>
10155
10156         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10157         Don't free a buffer while it's still needed.  Patch from Jonathan
10158         Liger <Jonathan.liger@wanadoo.fr>
10159
10160 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10161
10162         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10163         internal call.
10164
10165 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10166
10167         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10168         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10169
10170         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10171         we call unmanaged code which throws exceptions.
10172
10173 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10174
10175         * appdomain.h: added per-domain entry_assembly.
10176         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10177         arguments.
10178         * icall.c: Assembly::GetEntryAssembly icall.
10179         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10180         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10181
10182 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10183
10184         * appdomain.h, gc.c: added mono_domain_finalize ().
10185
10186 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10187
10188         * object.c:
10189         (mono_print_unhandled_exception): changed g_warning by g_printerr
10190         because g_log has a 1024 characters limit (yeah, i got a big stack
10191         trace). Don't print exception name, that should be in ToString 
10192         returned string.
10193
10194 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10195
10196         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10197         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10198
10199 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10200
10201         * object.c:
10202         (mono_print_unhandled_exception): after previous commit, i realized
10203         that MS calls ToString on the exception. I changed this function to
10204         do that. This way we get stack_trace for free.
10205
10206 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10207
10208         * object.c:
10209         (mono_print_unhandled_exception): invoke Message property instead of
10210         getting 'message' field from Exception. Don't allocate memory for
10211         'trace' and 'message' if not needed.
10212
10213 2002-08-18  Dick Porter  <dick@ximian.com>
10214
10215         * unicode.c: Fix asserts to match Encoder.cs checks
10216
10217 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10218
10219         * marshal.c: fix unaligned store issue and a few wrong
10220         opcode argument types.
10221
10222 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10223
10224         * icall.c: added GetUninitializedObjectInternal internal call.
10225
10226 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10227
10228         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10229         to the right domain.
10230
10231 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10232
10233         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10234
10235         * class.c (class_compute_field_layout): set blittable to false for Strings
10236
10237         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10238
10239 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10240
10241         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10242         first chunk of code to create types at runtime. Code to
10243         handle ReflectedType/DeclaringType. Make reflection handles
10244         domain specific.
10245
10246 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10247
10248         * class.c: set correct name in arrays.
10249
10250 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10251
10252         * appdomain.c (mono_domain_transfer_object): make it work with
10253         valuetypes. bug fixes.
10254
10255 2002-08-12  Dick Porter  <dick@ximian.com>
10256
10257         * object.h: Rename some parameters to avoid c++ keywords (Patch
10258         from Joseph Wenninger <kde@jowenn.at>)
10259
10260 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10261
10262         * icall.c: added icall to implement Assembly.GetFile*.
10263
10264 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10265
10266         * reflection.h, reflection.c: code to embed managed resources.
10267
10268 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10269
10270         * class.c: move all the type size stuff into
10271         class_compute_field_layout().
10272
10273 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10274
10275         * class.c: ensure enums have always the correct instance size.
10276         * unicode.c: remove wrong assert.
10277
10278 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10279
10280         * assembly.c: fix mem corruption issue.
10281         * image.h, image.c: added mono_image_get_resource () to access
10282         managed resources.
10283         * icall.c: implemented Assembly.EntryPoint property and some
10284         Managed Resources related internalcalls.
10285
10286
10287 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10288
10289         * image.c, image.h: impemented mono_image_get_entry_point ().
10290         * appdomain.c: use mono_image_get_entry_point.
10291
10292 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10293
10294         * reflection.c: support the object type argument when loading
10295         custom attributes.
10296
10297 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10298
10299         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10300         String as return type.
10301
10302 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10303
10304         * reflection.c: fix encoding of named args for custom attrs to match
10305         the ms implementation. Read them back when instantiating custom
10306         attributes.
10307
10308 2002-08-02  Radek Doulik  <rodo@ximian.com>
10309
10310         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10311         by Dietmar as quick fix
10312         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10313         16 as stack size, used on more places as quick fix before Dietmar
10314         will fix it properly
10315
10316 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10317
10318         * object.h, object.c: added accessors for fields and properties.
10319
10320 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10321
10322         * class.c, class.h: made mono_class_get_field_from_name ()
10323         loop on parent types.
10324         Added mono_class_get_property_from_name ().
10325
10326 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10327
10328         * class.c, class.h: move the code to setup the type vtable in its own
10329         function so that it can be reused also for types created at runtime.
10330         Eliminate the "class" identifier from the header file.
10331         * reflection.c: setup the vtable for enums so that we can create
10332         objects for use in SetConstant ().
10333
10334 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10335
10336         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10337         instead of the delegate itself as this pointer (bug #28383)
10338
10339 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10340
10341         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10342         conversions.
10343
10344 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10345
10346         * loader.c: don't set the pinvoke bit on icalls.
10347
10348 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10349
10350         * debug-helpers.c (mono_method_full_name): only print a number to
10351         indicate wrapper type (so that the output is more readable in traces).
10352
10353 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10354
10355         * class.c (mono_class_init): include method override patch from Paolo
10356
10357 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10358
10359         * icall.c: fixed GetTypeCode().
10360
10361 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10362
10363         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10364         use real delegate invoke function to make it work with multicast
10365         delegates (fix bug# 28291).
10366
10367 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10368
10369         * object.c: load constant strings.
10370
10371 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10372
10373         * reflection.c: no magic numbers.
10374         * tabledefs.h: security action enum.
10375
10376 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10377
10378         * assembly.c: fix possible memory corruption.
10379
10380 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10381
10382         * reflection.h, reflection.c: added support for linking resources.
10383         * verify.c: check we have an updated corlib.
10384
10385 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10386
10387         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10388         string arrays.
10389         (mono_marshal_string_array): null terminate unmanaged string arrays.
10390         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10391
10392 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10393
10394         * icall.c: Type.GetType () can now return also types from the
10395         calling assembly.
10396
10397 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10398
10399         * loader.h, loader.c: stack walking support.
10400         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10401         GetCallingAssembly.
10402
10403 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10404
10405         * marshal.c: added optimisations for blittable types 
10406
10407         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10408         (mono_class_setup_mono_type): set blittable attribute for single
10409         and double.
10410
10411         * marshal.c (mono_string_utf8_to_builder): impl.
10412         (mono_string_builder_to_utf8): impl.
10413         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10414
10415 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10416
10417         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10418         (mono_marshal_get_managed_wrapper): impl. byref types
10419
10420 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10421
10422         * icall.c:
10423         (search_method): don't display debug message. 
10424
10425 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10426
10427         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10428
10429 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10430
10431         * appdomain.c: set the missing filename when throwing exception.
10432
10433 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10434
10435         * metadata.c (mono_type_size): code cleanup
10436         (mono_type_stack_size): removed some test code
10437
10438 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10439
10440         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10441         mono_get_exception_file_not_found now.
10442
10443         * exception.c (mono_exception_from_name_two_strings): New version
10444         that will call a constructor with two string arguments. 
10445         (mono_get_exception_file_not_found): New helper routine, used to
10446         report file-not-found errors.
10447
10448 2002-07-20  Dick Porter  <dick@ximian.com>
10449
10450         * process.h:
10451         * process.c: Pass file handles to CreateProcess
10452         
10453         * icall.c:
10454         * file-io.h:
10455         * file-io.c: Implemented CreatePipe
10456
10457 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10458
10459         * metadata.c (mono_get_param_info): set alignment for value types
10460
10461 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10462
10463         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10464         Constify mono_domain_assembly_open().
10465         * loader.c: handle null namespace in icalls.
10466
10467 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10468
10469         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10470         (emit_str_to_ptr_conv): marshal object as structs
10471
10472         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10473
10474         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10475
10476 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10477
10478         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10479         (mono_marshal_get_native_wrapper): we an now return value types
10480
10481 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10482
10483         * verify.c: more checks implemented.
10484
10485 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10486
10487         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10488         (fix bug #27695)
10489         (mono_marshal_get_native_wrapper): allow byref arguments
10490         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10491         impl. PtrToStringXXX methods
10492         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10493         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10494         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10495         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10496         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10497
10498 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10499
10500         * reflection.c: fix buglet in parsing an assembly name.
10501
10502 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10503
10504         * marshal.c (emit_ptr_to_str_conv): first impl.
10505
10506 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10507
10508         * object.c, class.h: cache the vtable in the class as suggested by
10509         vargaz@freemail.hu (Zoltan Varga).
10510
10511 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10512
10513         * class.h, loader.c: added mono_field_from_token().
10514         * verify.c: first cut of type checking code.
10515
10516 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10517
10518         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10519
10520 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10521
10522         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10523         (fix bug #27782)
10524         (mono_marshal_get_remoting_invoke): impl.
10525         (mono_delegate_begin_invoke): impl.
10526         (mono_mb_emit_save_args): impl.
10527         (mono_delegate_end_invoke): impl.
10528         (mono_marshal_get_delegate_begin_invoke):
10529         (mono_marshal_get_delegate_end_invoke):
10530         (mono_marshal_get_delegate_invoke): generate a special name for
10531         those methods (including the signature) and associate them whith
10532         the delegate class. 
10533
10534 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10535
10536         * reflection.[ch]: 
10537         (mono_reflection_type_from_name): now it has a MonoImage parameter
10538         which is used as the default image to search the type in. If the image
10539         is NULL or getting the type from it fails, it defaults to corlib.
10540
10541         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10542         new parameter.
10543
10544 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10545
10546         * reflection.c: update the parameter table index.
10547
10548 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10549
10550         * domain.c: don't include the mark byte in the string hash.
10551
10552 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10553
10554         * icall.cs: icall for Type.GetTypeCode ().
10555         * verify: a couple of fixes and disabled local initialization checks.
10556
10557 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10558
10559         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10560
10561         * debug-helpers.c (mono_method_full_name): print the type of the
10562         runtime wrapper
10563
10564         * metadata.c (mono_signature_hash): a hash function for signatures
10565         (mono_signature_hash): better hash algorithm
10566
10567         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10568
10569         * debug-helpers.c (mono_method_full_name): this can now generate
10570         method names with signatures
10571
10572         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10573         method dont have this pointers.
10574
10575 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10576
10577         * reflection.c: fixup typebuilder tokens.
10578         * image.c: fix buglet.
10579         * marshal.h: remove whitespace.
10580         * metadata.h, metadata.c: reinstate code that was removed.
10581         * verify.c: handle catch directives and fix another couple of bugs.
10582
10583 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10584
10585         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10586         (mono_marshal_get_native_wrapper): make it comp. with the old code
10587         (mono_marshal_get_native_wrapper): support boolean
10588         (mono_marshal_get_managed_wrapper): support more types
10589
10590 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10591
10592         * class.c (class_compute_field_layout): compute class->blittable attribute.
10593
10594 2002-07-09  Dick Porter  <dick@ximian.com>
10595
10596         * threads.c: Make the thread cleaning up cope with threads that
10597         call ExitThread()
10598
10599 2002-07-08  Radek Doulik  <rodo@ximian.com>
10600
10601         * reflection.c (method_encode_code): use non-translated values to
10602         compute finally_start, this fixes exception handling on ppc, yay!
10603
10604         * decimal.h (struct signscale): fix endianess
10605
10606 2002-07-07  Radek Doulik  <rodo@ximian.com>
10607
10608         * reflection.c: swap box_val and not val
10609
10610 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10611
10612         * reflection.c, reflection.h: handle full assembly info in type name.
10613         Handle Type arguments when loading custom attributes.
10614         * icall.c: updated to use new mono_reflection_type_from_name () method.
10615
10616 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10617
10618         * loader.c:
10619         (method_from_memberref): also print assembly name when method not found.
10620
10621 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10622
10623         * icall.c:
10624         (ves_icall_TypeGetProperties): fixed bug #27473. 
10625
10626 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10627
10628         * reflection.c: display image name and token when cannot find the
10629         .ctor for an attribute.
10630
10631 2002-07-05  Martin Baulig  <martin@gnome.org>
10632
10633         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10634
10635 2002-07-04  Dick Porter  <dick@ximian.com>
10636
10637         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10638         compile on mingw.  This will cause mingw builds to not wait for
10639         subthreads to terminate after the main thread does.  I've lodged a
10640         bug with the mingw developers for them to wrap OpenThread().
10641
10642 2002-07-03  Dick Porter  <dick@ximian.com>
10643
10644         * threads.c: Store thread IDs instead of handles, because
10645         GetCurrentThread() returns a pseudohandle and therefore stores
10646         useless values.  mono_thread_cleanup() continues checking the
10647         array of threads until it is empty, to cope with subthreads
10648         spawning new threads after the main thread has finished.
10649
10650         * profiler.h:
10651         * profiler.c:
10652         * profiler-private.h: Pass the thread ID to thread profiler
10653         functions, instead of a handle
10654
10655 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10656
10657         * verify.c: fixes to make it more usable.
10658         * pedump.c: added --verify code to verify IL code in an assembly.
10659
10660 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10661
10662         * reflection.c: turn errors into warnings to allow compiling corlib.
10663
10664 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10665
10666         * reflection.c: add special cases to compile corlib.
10667
10668 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10669
10670         * reflection.c: handle properties with only a set method.
10671
10672 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10673
10674         * opcodes.h: add enum with opcodes in opval order.
10675
10676 2002-07-01  Dick Porter  <dick@ximian.com>
10677         
10678         * object.h:
10679         * object.c (mono_runtime_run_main): Removed unneeded argument
10680
10681 2002-06-28  Martin Baulig  <martin@gnome.org>
10682
10683         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10684
10685 2002-06-27  Dick Porter  <dick@ximian.com>
10686
10687         * threads.c: Store the handle in both the parent thread and in the
10688         subthread, to minimise the time between starting a new thread and
10689         storing its ID.
10690
10691 2002-06-26  Dick Porter  <dick@ximian.com>
10692
10693         * appdomain.c (mono_runtime_cleanup): Close the socket library
10694         after all the threads have finished, not before
10695
10696 2002-06-26  Martin Baulig  <martin@gnome.org>
10697
10698         * debug-symfile.c (mono_debug_find_source_location): Added
10699         `guint32 *line_number' argument.  If it's not NULL, store the line number
10700         there and return the file name without the line number.
10701
10702 2002-06-25  Dick Porter  <dick@ximian.com>
10703
10704         * icall.c:
10705         * process.h:
10706         * process.c: Process forking and other support functions
10707
10708 2002-06-25  Dick Porter  <dick@ximian.com>
10709
10710         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10711         things dont happen when the image is closed.
10712         (mono_image_lookup_resource): Walk the resource section looking
10713         for a particular entry
10714
10715         * cil-coff.h: PE resource section decoding
10716
10717 2002-06-25  Dick Porter  <dick@ximian.com>
10718         
10719         * assembly.h:
10720         * assembly.c: 
10721         (mono_assembly_foreach): Accessor functions to walk the list of
10722         loaded assemblies
10723         (mono_assembly_set_main):
10724         (mono_assembly_get_main): Process methods need to know which
10725         assembly is the "main" one
10726
10727         * object.c (mono_runtime_run_main): Record the main assembly
10728
10729         * debug-helpers.c: Fix typo
10730
10731 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10732
10733         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10734         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10735
10736 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10737
10738         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10739
10740 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10741
10742         * image.c (do_mono_image_open): Initialize reference count,
10743         otherwise we leak the MonoImage.
10744
10745 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10746
10747         * reflection.c: small tweak to handle self-hosting.
10748
10749 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10750
10751         * reflection.c: fix type name parse code.
10752
10753 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10754
10755         * reflection.c: break out of the loop.
10756         * image.c: special case corlib.
10757
10758 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10759
10760         * reflection.c: add all the custom attrs at the end to ensure the
10761         ctors have been properly initialized when the attributes are defined
10762         in the current assembly.
10763
10764 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10765
10766         * reflection.c: handle correctly multiple-nested types.
10767
10768 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10769
10770         * row-indexes.h: fix typos.
10771         * reflection.c: adjust for typos and fix method_def_or_ref
10772         encoding in MethodImpl table.
10773
10774 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10775
10776         * reflection.c: fix entry point patching (thanks Serge!).
10777
10778 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10779
10780         * verify.c: add check for System.Exception
10781
10782 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10783
10784         * image.c, class.c: minifix for code just c&p'ed.
10785         * reflection.c: warning fix.
10786         * object.h, loader.h, domain.c: load also StringBuilder.
10787
10788 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10789
10790         * marshal.h, marshal.c: some support code to handle complex marshaling.
10791
10792 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10793
10794         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10795         Better signatures with vtable error dump.
10796
10797 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10798
10799         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10800
10801 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10802
10803         * icall.c (ves_icall_Type_GetField): impl.
10804
10805 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10806
10807         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10808         to retrieve a marshal description blob for a field or param.
10809
10810 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10811
10812         * reflection.h, reflection.c: change order of nested type emission
10813         to avoid table corruption. The NestedTypes table is sorted.
10814         * icall.c: change order of GetConstructor results to workaround mcs bug.
10815
10816 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10817
10818         * reflection.h, reflection.c: handle field and param marshal
10819         information.
10820
10821 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10822
10823         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10824
10825 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10826
10827         * reflection.c: fix call convention.
10828
10829 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10830
10831         * reflection.h, reflection.c: mono_image_get_memberref_token()
10832         takes a type instead of a class, now. Added
10833         mono_image_get_array_token() to create tokens for the special
10834         multi-dim array methods.
10835
10836 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10837
10838         * assembly.c: handle modules (no assembly table). Split
10839         loading references in its own function.
10840         * class.c: handle moduleref resolution scope.
10841         * image.c, image.h: cache module name in image.
10842
10843 2002-06-07  Martin Baulig  <martin@gnome.org>
10844
10845         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10846         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10847
10848 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10849
10850         * icall.c: more signature fixes that used uint instead of int.
10851
10852 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10853
10854         * reflection.c: fixed signature of field refs.
10855
10856 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10857
10858         * class.c, reflection.c: handle typerefs of nested types
10859         (both on read and when writing files).
10860
10861 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10862
10863         * icall.c: fix method signatures that tried to workaround the previous
10864         typo, d'oh!
10865
10866 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10867
10868         * debug-helpers.c: fix typo.
10869
10870 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10871
10872         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10873         rewrote the PE/COFF writing code (our programs are understood by the
10874         ms runtime, now).
10875
10876 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10877
10878         * gc.c, gc.h, icall.c: weakreference support.
10879
10880 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10881
10882         * Makefile.am, mono-config.c: use $(sysconfdir).
10883
10884 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10885
10886         * icall.c: changed default precision of Double.ToString() to 15.
10887         Fixed memory leak. Unified with Single.ToString.
10888
10889 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10890
10891         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10892
10893 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10894
10895         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10896         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10897         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10898         and myself.
10899
10900 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10901
10902         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10903
10904 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10905
10906         * reflection.c, socket-io.c: more compilation fixes.
10907
10908 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10909
10910         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10911         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10912         unicode.c: warning and compiler compatibility fixes.
10913
10914 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10915
10916         * class.h, metadata.c: fixed warnings/compilation errors.
10917
10918 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10919
10920         * Makefile.am, mono-config.c, mono-config.h: configuration file
10921         support routines.
10922         * loader.c, loader.h: make Dll mapping configurable at runtime in the
10923         config file. Export methods to insert and lookup mappings.
10924
10925 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10926
10927         * reflection.c: handle types and boxed objects in custom attr
10928         constructors.
10929
10930 2002-05-30  Martin Baulig  <martin@gnome.org>
10931
10932         * debug-symfile.c
10933         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
10934
10935 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
10936
10937         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
10938         to lookup the implmap row for a P/Invoke method.
10939         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
10940         P/Invoke method from the runtime on an as needed basis.
10941
10942 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
10943
10944         * metadata.c (mono_metadata_parse_signature): impl.
10945
10946 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10947
10948         * class.c: handle .pack directive.
10949
10950 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10951
10952         * object.c: initialize static fields with RVA data.
10953
10954 2002-05-25  Martin Baulig  <martin@gnome.org>
10955
10956         * debug-symfile.c
10957         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
10958
10959 2002-05-24  Martin Baulig  <martin@gnome.org>
10960
10961         * debug-symfile.c
10962         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
10963         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
10964         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
10965
10966 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10967
10968         * object.c: special case string ctros in invoke.
10969         * gc.c: silly whitespace changes.
10970
10971 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
10972
10973         * threadpool.[ch]: impl. a threadpool that can
10974         be used by mint and mono.
10975
10976 2002-05-22  Martin Baulig  <martin@gnome.org>
10977
10978         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
10979         The first argument is now a `MonoReflectionModuleBuilder *', the return
10980         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
10981         `methods' field to get the method builder.  The `token' argument is the
10982         unfixed token.
10983
10984         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
10985         invalid characters instead of g_assert_not_reached()ing.  This seems
10986         to be the behaviour of mscorlib.
10987
10988 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
10989
10990         * object.c (mono_runtime_invoke_array): applied patch from Rachel
10991         Hestilow to fix bug #25104
10992
10993 2002-05-21  Martin Baulig  <martin@gnome.org>
10994
10995         * debug-symfile.c (mono_debug_find_source_location): New function.
10996         Looks up an IL offset in the line number table and returns the source
10997         location as a string.
10998
10999 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11000
11001         * icall.c:
11002         (mono_double_ToStringImpl): changed %f by %g until we have something
11003         better.
11004
11005 2002-05-21  Nick Drochak  <ndrochak@gol.com>
11006
11007         * icall.c : Use different name for Math.Pow's icall.  Needed to check
11008         parameters first in C#.
11009
11010 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11011
11012         * icall.c, reflection.h: added icall to get info about an event.
11013
11014 2002-05-20  Radek Doulik  <rodo@ximian.com>
11015
11016         * object.c (mono_value_box): don't use memcpy for boxing on BIG
11017         endian
11018         (mono_value_box): don't use memcpy for small sizes on
11019         architectures with unaligned access
11020
11021 2002-05-20  Martin Baulig  <martin@gnome.org>
11022
11023         * reflection.c (mono_reflection_setup_internal_class): Don't crash
11024         if `tb->parent == NULL'.
11025         (mono_reflection_create_internal_class): New function.  This is
11026         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
11027         for enum types.
11028
11029         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
11030         New interncall.
11031
11032 2002-05-19  Martin Baulig  <martin@gnome.org>
11033
11034         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
11035         argument to get the length, don't default to the array length.
11036
11037 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
11038
11039         * assembly.c (mono_assembly_setrootdir): New function used to
11040         override the MONO_ASSEMBLIES directory.
11041
11042 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11043
11044         * icall.c: ValueType_GetHashCode() initialize local var.
11045
11046 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11047
11048         * reflection.c: sort custom attributes table.
11049
11050 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11051
11052         * reflection.c: support named args in custom attributes (write support).
11053
11054 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
11055
11056         * reflection.c: fix finally position calculation.
11057
11058 2002-05-15  Radek Doulik  <rodo@ximian.com>
11059
11060         * reflection.c: fixed endianess at many places
11061
11062         * icall.c (ves_icall_InitializeArray): comment out debug msg
11063
11064 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
11065
11066         * object.c (mono_unhandled_exception): new function to handle
11067         unhandled exceptions.
11068         (mono_unhandled_exception): call the UnhandledException event.
11069         (mono_runtime_delegate_invoke): impl.
11070
11071 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
11072
11073         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
11074         returns the RVA, not the direct pointer to the data. Handle the case
11075         when the class size is fixed.
11076
11077 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11078
11079         * reflection.c: fix some endianess issues.
11080
11081 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
11082
11083         * object.c (mono_runtime_invoke): is now able to catch exceptions.
11084
11085         * threads.c (mono_thread_init): added a callback which is invoked
11086         at thread start.
11087
11088 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11089         
11090         * icall.c: make GetHashCode return non-negative values.
11091
11092 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11093
11094         * object.c, icall.c, gc.c: revert to address-based hashcode.
11095
11096 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
11097
11098         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
11099
11100 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11101
11102         * icall.c, class.c: special case <Module>.
11103
11104 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
11105
11106         * icall.c: fix bug in GetNow().
11107
11108 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
11109
11110         * object.c (mono_runtime_class_init): make sure that we call all
11111         static class constructors.
11112
11113 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11114
11115         * reflection.c: sort methodsemantics table.
11116
11117 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11118
11119         * reflection.h, reflection.c: honour init locals setting.
11120
11121 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11122
11123         * icall.c: copied Double ToStringImpl for Single ToStringImpl
11124
11125 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11126
11127         * reflection.c: support ContructorBuilders in attribute blob creation.
11128
11129 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11130
11131         * reflection.c: some changes to build a binary that can be run
11132         directly in windows.
11133
11134 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11135
11136         * loader.c: print a big message when an icall can't be found.
11137
11138 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11139
11140         * string-icalls.c: fix bug 24248.
11141
11142 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11143
11144         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11145         icall.c, reflection.h: separate assembly loading by pathname and by
11146         assembly name. Use the MONO_PATH env var to search for assemblies.
11147
11148 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11149
11150         * assembly.c, image.h: add some support for assemblies
11151         with multiple modules.
11152         * class.c, class.h: export mono_class_from_typeref().
11153         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11154         instead.
11155
11156 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11157
11158         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11159         documentation says (the ECMA one is correct).
11160
11161 2002-05-02  Dick Porter  <dick@ximian.com>
11162
11163         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11164         Don't name the synchronisation mutex.
11165
11166 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11167
11168         * rand.c
11169         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11170         Make the prototypes match.
11171         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11172         Same.
11173
11174         * icall.c
11175         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11176         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11177         all systems have tm.tm_zone, so use strftime() with %Z to print
11178         the timezone abreviation into a temp string.
11179
11180         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11181         rather than mono_array_addr() on a MonoString on Big Endian
11182         machines.
11183
11184 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11185
11186         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11187         fix bug 24041
11188
11189 2002-04-30  Dick Porter  <dick@ximian.com>
11190
11191         * socket-io.c: Cope with SOCKET being an integer rather than a
11192         pointer now.
11193
11194         * threads.c: Added Thread_free_internal, to deal with thread
11195         handle cleanup.  Moved calls to handle_store() and handle_remove()
11196         to start_wrapper(), so each can only be called once.  Allocate
11197         synchronisation blocks with GC_malloc(), and use GC finalisation
11198         to close the handles.
11199
11200         * icall.c: added System.Threading.Thread::Thread_free_internal
11201
11202 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11203
11204         * icall.c: support Environment.Exit, CommandLineArgs().
11205
11206 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11207
11208         * object.c, object.h: added mono_runtime_run_main () and
11209         mono_runtime_get_main_args () for use in System.Environment.
11210
11211 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11212
11213         * gc.c: fix thinko, enable actual finalization since the jit is now
11214         fixed.
11215
11216 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11217
11218         * gc.c, object.c: take into account that an object may be offset wrt the address
11219         returned by GC_malloc().
11220
11221 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11222
11223         * image.c: handle files without entries in the assembly table (modules).
11224
11225 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11226
11227         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11228         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11229         allowed to be null when it's System.Object class setup.
11230
11231 2002-04-27  Martin Baulig  <martin@gnome.org>
11232
11233         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11234         if `tb->parent == NULL' rather than crashing.
11235
11236 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11237
11238         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11239         calling acos() where asin() should have been called.
11240
11241 2002-04-26  Martin Baulig  <martin@gnome.org>
11242
11243         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11244         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11245         there's a subdirectory called `System', but we don't want to read that
11246         subdirectory as an assembly.
11247
11248 2002-04-25  Martin Baulig  <martin@gnome.org>
11249
11250         * debug-symfile.c: Reflect latest MonoString changes.
11251
11252 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11253
11254         * rand.c, rand.h: instance method icalls need to have an explicit
11255         this pointer as first argument in the C implementation.
11256
11257 2002-04-25  Nick Drochak <ndrochak@gol.com>
11258
11259         * icall.c: Fix typo in map for GetNonZeroBytes
11260
11261 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11262
11263         * string-icalls.c : String does now passes unit tests without any 
11264         errors, the following changes has been made:
11265         
11266         Implemented replace methods.
11267         Renaming of methods to (try) follow the standard.
11268         Fixed compare ordinal
11269         Made all memory allocated directly to function instead of via icall function.
11270         Small performance fix in is_in_array function
11271                         
11272  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11273
11274         c (mono_string_Internal_ctor_charp_int_int):
11275         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11276         sindex < 0, throw ArgumentOutOfRangeException instead of
11277         ArgumentNullException.
11278
11279         Added new check for length == 0, however
11280         I need to make it return String.Empty from the C code.
11281         
11282         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11283         that calculate the length for us here.
11284         
11285         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11286         mono_string_new_utf16 with mono_string_new, since value is utf8.
11287
11288 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11289
11290         * object.c: register the object for finalization if needed.
11291         Allocate one more char in the string for the terminating 0 char.
11292
11293 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11294
11295         * class.c, class.h, image.c: check if a type implemenst a destructor.
11296         Use the proper key for array class lookups.
11297         * icall.c: register the icalls in the System.GC class.
11298         * gc.c, gc.h: GC-related functions and icalls.
11299
11300 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11301
11302         * icall.c:
11303         * socket-io.c:
11304         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11305         changed a couple of free () by g_free ().
11306
11307         * decimal.c: one-liner in the comments for decimal2string ().
11308
11309 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11310
11311         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11312
11313 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11314
11315         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11316         * object.c (mono_runtime_invoke_array) : handle null in params
11317
11318 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11319
11320         * string-icalls.c: fixed bug in split (one off bug)
11321
11322 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11323
11324         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11325         * icalls.c: added String::Equals as internal method
11326
11327 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11328
11329         * threads.c: fixed bug in the double interlocked functions
11330
11331 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11332
11333         * threads.c: implemented all of the new interlocked icalls.
11334         * string-icalls.c: fix a bug in insert.
11335         * icalls.c: added the icalls for interlocked, removed old string functions.
11336         
11337 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11338
11339         * loader.c: fix off-by-one error when reading argument names.
11340
11341 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11342
11343         * profiler.c: win32 counter implementation (untested).
11344         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11345         (the latter needs testing and more complete impl. from win32 folks).
11346
11347 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11348
11349         * object.c: mono_array_new_full workaround mono_array_class_get
11350         problem.
11351
11352 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11353
11354         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11355         * object.h (mono_string_chars): Changed casting type.
11356
11357 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11358
11359         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11360                            method signatures to use gunichar2 instead of gint16.
11361
11362 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11363
11364         * object.h, object.c: domain-specific versions of mono_object_new and
11365         mono_array_new.
11366
11367 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11368
11369         * object.c: changed String layout
11370
11371         * string-icalls.c (mono_string_Internal_ctor_chara): added
11372         internal string constructors.
11373
11374 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11375
11376         * threads.c: pass 'this' to the thread start routine.
11377
11378 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11379
11380         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11381         InternalCompareStr don't call twice mono_string_cmp_char for the last
11382         character. Improved performance in mono_string_cmp_char.
11383
11384 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11385
11386         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11387         code into its own library: libmonoruntime.
11388
11389 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11390
11391         * object.h, object.c: changed array format so that szarrays do not
11392         require a bounds structure.
11393         * icall.c, appdomain.c: support for new szarray format.
11394
11395 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11396
11397         * metadata.c: compare also the retuns type when comparing signatures:
11398         we didn't do this as an optimization since really overloaded methods
11399         must differ also in the arguments, but this doesn't work with
11400         low-level IL code (or when using explicit conversion operators: see
11401         bug#23498 for an example).
11402
11403 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11404
11405         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11406
11407 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11408
11409         * icall.c: make MonoType::GetElementType its own icall.
11410
11411 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11412
11413         * icall.c: remove MonoMethod_get_Name().
11414         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11415         object.
11416
11417 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11418
11419         * string-icalls.c: optimized a few methods.
11420
11421 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11422
11423         * icall.c: added all new string internal calls
11424         * string-icalls.c: added, new string internal call implementation.
11425         * object.c: added mono_string_new_size for allocating a string a size
11426
11427 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11428
11429         * object.c (mono_object_isinst): use the same code as in the
11430         optimized x86 version.
11431
11432 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11433
11434         * profiler.c: TSC-based timer code (faster and more accurate).
11435         Not hooked up in configure, yet (set USE_X86TSC to 1).
11436
11437 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11438
11439         * profiler.c, profiler.h: track time spent compiling methods.
11440         * threads.c: track thread creation/destruction.
11441
11442 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11443
11444         * profiler.c, profiler.h, profiler-private.h: profiling interface
11445         and sample implementation. Moved here so that it can be used also by
11446         the jit.
11447
11448 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11449
11450         * reflection.c, reflection.h: keep types and other handles separate in
11451         the hash tables for referred tokens. Add guid for modules.
11452
11453 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11454
11455         * assembly.c: fix bugs found with valgrind.
11456         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11457
11458 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11459
11460         * threads: added icall support for getting current domain for
11461                    the thread.
11462  
11463 2002-04-13  Martin Baulig  <martin@gnome.org>
11464
11465         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11466         (MonoDebugVarInfo): Added `index' field for register based addresses.
11467         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11468         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11469         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11470         `MonoDebugVarInfo *this_var'.
11471
11472         * debug-symfile.c (relocate_variable): New static function to write
11473         a location description for a local variable or method parameter.
11474
11475 2002-04-12  Martin Baulig  <martin@gnome.org>
11476
11477         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11478         stack offset and begin/end scope address of a local variable.
11479         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11480         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11481         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11482
11483         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11484         Added new relocation types for start/end scope of a local variable.
11485
11486 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11487
11488         * object.h: add mono_object_domain() macro.
11489         * reflection.c: handle typespecs.
11490         * icall.c: MonoMethod::get_Name() implementation.
11491
11492 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11493
11494         * icall.c: String::GetHashCode() icall implementation.
11495
11496 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11497
11498         * icall.c: String::IndexOfAny icall.
11499         * object.c, object.h: make array->max_length more useful.
11500         Intrduced mono_object_class() and mono_string_length() macros.
11501
11502 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11503
11504         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11505         instead of g_unichar_isdigit.
11506
11507 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11508
11509         * icall.c: Implement a simple Double.ToString().
11510
11511 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11512
11513         * appdomain.h: only io-layer.h is supposed to be included.
11514         * icall.c: explicitly import environ. Fix warning.
11515
11516 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11517
11518         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11519                 return true even if it's not Daylight Savings time.
11520                 Only return false for the case where the function isn't
11521                 implemented for a plaform (read Windows).
11522
11523 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11524
11525         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11526         data with a mutex.
11527
11528 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11529
11530         * mempool.c (mono_mempool_alloc): only use g_malloc when
11531         absolutely necessary.
11532
11533 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11534
11535         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11536
11537         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11538         (mono_class_proxy_vtable): use domain mempool
11539
11540 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11541
11542         * appdomain.h, appdomain.c: split initialization that requires the
11543         execution engine support into mono_runtime_init().
11544
11545 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11546
11547         * class.c (mono_class_init): don't include vtable inside MonoClass
11548         to save some memory, gather some statistics.
11549         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11550
11551 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11552
11553         * icall.c: internalcall implementation for ValueType.Equals().
11554
11555 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11556
11557         * object.c (mono_message_init): moved 
11558         (mono_runtime_exec_main): new arch. independent impl.
11559         (mono_runtime_invoke_array): new method - like
11560         mono_runtime_invoke, but you can pass an array of objects.
11561         (mono_remoting_invoke): new arch. independent impl.
11562         (mono_message_invoke): new arch. independent impl.
11563         (mono_runtime_class_init): new arch. independent impl.
11564         (mono_runtime_object_init): new arch. independent impl.
11565
11566 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11567
11568         * metadata.c, object.c, reflection.c: documented the exported
11569         functions.
11570
11571 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11572
11573         * icall.c: simpler code to pass the assembly builder data to corlib.
11574         Implement GetNestedTypes() internalcall.
11575
11576 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11577
11578         * class.c: warn if a type can't be loaded.
11579
11580 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11581
11582         * image.h: typedef MonoImageOpenStatus
11583         * types.h: removed unused file
11584         
11585 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11586
11587         * icall.c: Enum_ToObject accepts enum value arguments.
11588
11589 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11590
11591         * class.c: move initialization of properties, events and nested
11592         classes, so that they happen for interfaces, too.
11593
11594 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11595
11596         * icall.c: cleanup some ugly casts in Array_SetValue*.
11597
11598 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11599
11600         * icall.c: the values array fro enums is of the correct type, now.
11601         Implement (correctly) getFullName instead of assQualifiedName for
11602         MonoType.
11603         * reflection.h, reflection.c: added mono_type_get_name ().
11604
11605 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11606
11607         * assembly.c, image.h: for each MonoImage, record from wich assembly
11608         it was loaded.
11609         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11610         Make Type.Assembly work.
11611
11612 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11613
11614         * debug-symfile.h: use char* instead of gpointer to avoid
11615         unnecessary casts.
11616
11617         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11618
11619         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11620         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11621
11622 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11623
11624         * icall.c (mono_message_init): impl. (code cleanup)
11625         (ves_icall_InternalExecute): impl. FieldGetter
11626
11627         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11628         defined we call all (non-static)methods through the vtable. 
11629
11630 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11631
11632         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11633         finalizer even though the memory is still referenced (and the chunk of
11634         memory is not freed).
11635
11636 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11637
11638         * assembly.c: fix brokeness.
11639
11640 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11641
11642         * class.c: kill some warnings. Check explicit interface method
11643         implementation also without considering the namespace.
11644         Load also literal strings in static class data.
11645
11646 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11647
11648         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11649         (default_assembly_name_resolver): Make the resolver take the
11650         "base" directory where the assembly was originally defined, so we
11651         can load DLLs that are in the same directory as the assembly that
11652         is being referenced.
11653
11654 2002-03-28  Dick Porter  <dick@ximian.com>
11655
11656         * file-io.h: 
11657         * file-io.c:
11658         * socket-io.c: 
11659         * unicode.h: 
11660         * unicode.c: Warning cleanups
11661
11662 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11663
11664         * object.h, reflection.h: use the correct type instead of MonoObject.
11665
11666 2002-03-28  Martin Baulig  <martin@gnome.org>
11667
11668         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11669         (mono_debug_update_symbol_file): Initialize classes if necessary.
11670
11671 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11672
11673         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11674         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11675
11676 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11677
11678         * assembly.h: fix function prototype.
11679         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11680         * mono-endian.h: use const cast.
11681
11682 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11683
11684         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11685
11686 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11687
11688         * loader.c: don't assert when a typeref can't be loaded, give
11689         a chance to the runtime to trow an exception instead.
11690         * loader.h: fix warning.
11691
11692 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11693
11694         * class.c (mono_class_proxy_vtable): added proxy support
11695
11696 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11697
11698         * icall.c: removed last of PAL calls, added System.Environment
11699         * file-io.h, file-io.c: MonoIO implementation
11700         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11701
11702 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11703
11704         * appdomain.c: do not use the byte marker in ldstr table lookup.
11705         * debug-helpers.c: allow two ':' to separate class and method name.
11706         * object.c: allocate arrays bounds with the GC, too.
11707         * verify: add a few more checks.
11708
11709 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11710
11711         * reflection.c: output also literal strings. Allocate parameter data
11712         with GC_malloc() (thanks, Martin, for catching this!).
11713
11714 2002-03-26  Martin Baulig  <martin@gnome.org>
11715
11716         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11717         include the `this' offset in the `param_offsets'.
11718
11719 2002-03-25  Martin Baulig  <martin@gnome.org>
11720
11721         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11722         mono_debug_get_class() function to get the classes. Added new
11723         relocation types for arrays and strings.
11724         (mono_debug_get_class): New static function to search in all
11725         referenced assemblies for a metadata token.
11726
11727         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11728
11729 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11730
11731         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11732         hold gc-allocated objects. Make the string heap a stream like the
11733         others. Removed duplicated code when writing stream info.
11734         Added asserts to catch possible buffer overflows. Set the sorted map
11735         for tables that need sorting. Added some documentation.
11736
11737 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11738
11739         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11740         for interned strings and vtables.
11741
11742 2002-03-24  Martin Baulig  <martin@gnome.org>
11743
11744         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11745         it in the array since it was created with g_slist_prepend().
11746
11747 2002-03-24  Martin Baulig  <martin@gnome.org>
11748
11749         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11750         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11751         (mono_debug_method_from_token): Renamed to
11752         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11753         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11754
11755         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11756         relocation types.
11757
11758         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11759
11760 2002-03-24  Martin Baulig  <martin@gnome.org>
11761
11762         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11763         (mono_debug_method_from_token): New func.
11764
11765         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11766         New interncall, calls mono_debug_local_type_from_signature().
11767         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11768         calls mono_debug_method_from_token().
11769
11770 2002-03-23  Martin Baulig  <martin@gnome.org>
11771
11772         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11773         specifies the number of bytes to be converted, not the array size.
11774         Return the number of chars, not the number of bytes.
11775         (ves_icall_iconv_get_chars): The `byteCount' argument
11776         specifies the number of bytes to be converted, not the array size.
11777
11778 2002-03-23  Martin Baulig  <martin@gnome.org>
11779
11780         * reflection.h (MonoReflectionSigHelper): New type.
11781
11782         * reflection.c (mono_reflection_sighelper_get_signature_local),
11783         (mono_reflection_sighelper_get_signature_local): New functions.
11784
11785         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11786         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11787         interncalls.
11788
11789 2002-03-23  Martin Baulig  <martin@gnome.org>
11790
11791         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11792         is_writeable is set.
11793         (mono_raw_buffer_update): New function to write the modified map
11794         back to disk.
11795
11796         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11797
11798         * debug-symfile.c (mono_debug_update_symbol_file): Call
11799         mono_raw_buffer_update() when done writing.
11800
11801 2002-03-23  Martin Baulig  <martin@gnome.org>
11802
11803         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11804
11805         * debug-symfile.c: Added support for arguments and local variables.
11806
11807 2002-03-23  Dick Porter  <dick@ximian.com>
11808
11809         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11810         protected by ifdefs, hence breaking the w32 build.
11811
11812 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11813
11814         * object.c: implement is_interned() the right way.
11815
11816 2002-03-21  Martin Baulig  <martin@gnome.org>
11817
11818         * debug-symfile.[ch]: New files to handle debugging information
11819         files. There's also support to dynamically update these symbol
11820         files to include machine dependent information.
11821
11822 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11823
11824         * threads.c (mono_thread_create): new function to create thread
11825         from C
11826
11827 2002-03-20  Martin Baulig  <martin@gnome.org>
11828
11829         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11830         method is a constructor.
11831         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11832         points to ves_icall_InternalInvoke().
11833
11834 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11835
11836         * file-io.c: Flush shouldn't throw exceptions.
11837
11838 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11839
11840         * file-io.c: FileStream flush support; FileSetLength now
11841         restores file pointer.
11842
11843 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11844
11845         * class.c: set image for pointer classes.
11846
11847 2002/03/19  Nick Drochak <ndrochak@gol.com>
11848
11849         * sysmath.c: Forgot one.
11850
11851 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11852
11853         * sysmath.c: Avoid redefining existing names.
11854
11855 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11856
11857         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11858         handled by runtime as icall rather than dllimport from libm.so
11859         * file-io.c, file-io.h: fixed handle argument type.
11860
11861 2002-03-18  Dick Porter  <dick@ximian.com>
11862
11863         * reflection.c (mono_image_get_type_info): rename interface to
11864         iface, because of "#define interface struct" on windows.
11865
11866 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11867
11868         * class.c, class.h: rename and export mono_ptr_class_get().
11869         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11870         * reflection.c, reflection.h, icall.c: better/saner type name
11871         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11872         method signatures.
11873
11874 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11875
11876         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11877
11878         * icall.c (ves_icall_InternalInvoke): impl.
11879
11880 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11881
11882         * reflection.c: output the interface map table, too.
11883
11884 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11885
11886         * class.c (class_compute_field_layout): separate computation of 
11887         static field layout
11888
11889 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11890
11891         * icall.c: added System.Buffer support.
11892         * file-io.c: moved file icalls from PAL to FileStream.
11893
11894 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11895
11896         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11897
11898 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11899
11900         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11901
11902 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11903
11904         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11905
11906 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11907
11908         * debug-helpers.{c,h}: moved here from monograph some useful functions
11909         to locate a method by name/signature in a class or image. Included
11910         also a small and flexible IL disassembler.
11911
11912 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11913
11914         * reflection.c: fixup tokens in methods with small header size, too.
11915
11916 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
11917
11918         * object.c (mono_string_to_utf8): remove assert(!error), instead
11919         print a warning. 
11920
11921 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
11922
11923         * icall.c: update to the new mono_Array_class_get interface.
11924
11925 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11926
11927         * appdomain.c, object.c: Boehm-GC enable.
11928         * icall.c: make get_data_chunk() support split data requests.
11929         Ensure a class is initialized in more cases. Return only the first
11930         property found in GetProperties() or the compiler gets confused. 
11931         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
11932         * reflection.h, reflection.c: add fixup mechanism for field and method
11933         tokens. Initialize assembly->typeref in a single place. Output
11934         properties after events. Support custom attributes for events, too.
11935         Typo fix for paramter custom attrs.
11936
11937 2002-03-07  Martin Baulig  <martin@gnome.org>
11938
11939         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
11940
11941 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
11942
11943         * class.c (mono_array_class_get): fix. for multi. dim. arrays
11944
11945 2002-03-06  Martin Baulig  <martin@gnome.org>
11946
11947         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
11948         non-zero lower bounds. See testcases #F10-#F13.
11949
11950 2002-03-05  Martin Baulig  <martin@gnome.org>
11951
11952         * exception.c (mono_get_exception_argument_out_of_range): New exception.
11953
11954         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
11955         ves_icall_System_Array_GetValue(), only calculate the absolute array position
11956         here.
11957         (ves_icall_System_Array_SetValue): Likewise.
11958         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
11959         as argument and does the actual work. This function is used when copying a
11960         multi-dimensional array.
11961         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
11962         now do all the widening conversions of value types.
11963         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
11964
11965 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11966
11967         * class.c: remove some magic numbers and use the smbolic names,
11968         instead. Added init_events() to load event info at class init time.
11969         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
11970         and mono_metadata_methods_from_event().
11971         * reflection.h, reflection.c: added support for writing out the evnets
11972         related information.
11973
11974 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11975
11976         * reflection.h, icall.c: use a different method (GetInterfaces)
11977         to gather interface info and add isbyref, isprimitive and
11978         ispointer to the ves_icall_get_type_info() return value.
11979
11980 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11981
11982         * class.h: stared adding support for events.
11983         * icall.c: split find_members implementation. Added debug icall to get
11984         the address of an object.
11985         * reflection.c: handle TypeBuilders in mono_type_get_object().
11986
11987 2002-03-01  Martin Baulig  <martin@gnome.org>
11988
11989         * icall.c (ves_icall_System_Array_GetLength): This must throw an
11990         ArgumentOutOfRangeException(), not an ArgumentException().
11991         (ves_icall_System_Array_GetLowerBound): Likewise.
11992         (ves_icall_System_Array_GetValue): Improved argument checking.
11993         (ves_icall_System_Array_SetValue): Improved argument checking.
11994
11995 2002-03-01  Martin Baulig  <martin@gnome.org>
11996
11997         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
11998         called with invalid arguments rather than just dying with g_assert().
11999         (ves_icall_System_Array_SetValue): Likewise.
12000         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
12001         raise a NotImplementedException instead.
12002         (ves_icall_System_Array_GetLength): Added argument checking.
12003         (ves_icall_System_Array_GetLowerBound): Added argument checking.
12004
12005 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
12006
12007         * object.h (mono_assert): new macros mono_assert and
12008         mono_assert_not_reached
12009
12010 2002-02-28  Martin Baulig  <martin@gnome.org>
12011
12012         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
12013         and "System::String::IsInterned" to "System::String::_IsInterned".
12014
12015 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
12016
12017         * icall.c: remove hacks for typebuilder. Added icall to create a
12018         modified type from a tybebuilder.
12019         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
12020         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
12021         to create a backing MonoClass for a TypeBuilder.
12022
12023 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12024
12025         * class.c, class.h: more refactoring of class init.
12026         Export mono_class_setup_mono_type() and mono_class_setup_parent().
12027
12028 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
12029
12030         * marshal.c, marshal.h: start of marshaling interface.
12031
12032 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12033
12034         * icall.c: fix order in assembly qualified name icall.
12035
12036 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12037
12038         * class.c: do not free str, since we store it in the hash table.
12039         * reflection.h: add label field to MonoILExceptionInfo.
12040         * reflection.c: handle references to more than one assembly. Handle
12041         case when there isn't a module created in the assembly.
12042
12043 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
12044
12045         * class.c: Fix typo. Start refactoring of class init code.
12046
12047 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
12048
12049         * appdomain.c: exit with 1 on error.
12050         * class.c: we already have the name in MonoClassField.
12051         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
12052         MonoStreamHeader instead of an offset of image->raw_metadata.
12053
12054 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
12055
12056         * appdomain.c (mono_init): Be even more descriptive about the error.
12057
12058 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
12059
12060         * appdomain.c: give the user an informative message when corlib can't
12061         be loaded.
12062
12063 2002-02-26  Martin Baulig  <martin@gnome.org>
12064
12065         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12066         New icall to get the time zone data.
12067
12068 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12069
12070         * reflection.c: set virtual and raw size of section correctly.
12071         * threads.c: transfer domain information to newly created threads.
12072
12073 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12074
12075         * class.c: when instancing a class in a domain, load the default
12076         vaules for static fields from the constant table. Fix System.Enum to
12077         not be an enum.
12078         * icall.c: implement Object::GetType() internalcall. Implemented
12079         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
12080         Fixed checking of binding flags in find_members().
12081         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
12082         * reflection.c: handle enumerations when writing to the constant
12083         table. Use a different object cache for types.
12084
12085
12086 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
12087
12088         * object.c (mono_object_isinst): fix for arrays
12089
12090         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
12091
12092 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12093
12094         * object.c: don't use mprotect ()  and fix intern pool hash table
12095         lookup for big endian systems.
12096
12097 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12098
12099         * icall.c: change type_is_subtype_of () signature.
12100
12101 2002-02-21  Mark Crichton  <crichton@gimp.org>
12102
12103         * rand.c, rand.h: Added random number generator for
12104         System.Security.Cryptography classes.
12105
12106         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12107
12108         * icall.c: Added System.Security.Cryptography calls.
12109
12110 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12111
12112         * class.c, icall.c, metadata.c: better support for pointer types.
12113         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12114         * reflection.c: Add support for getting custom attrs for properties
12115         and simplify some code.
12116
12117 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12118
12119         * icall.c: change getToken () and add custom attribute GetBlob()helper
12120         method.
12121         * reflection.h: add custom attrs array to the reflection builder structures.
12122         * reflection.c: encode and emit custom attributes for all the relevant
12123         reflection objects. Cache fieldref and methodref tokens. Change
12124         mono_image_create_token() interface to take a MonoDynamicAssembly.
12125         More complete custom attributes decoder. Load custom attributes for
12126         Assembly, Field, Method and Constructor objects, too. Make the
12127         returned array an Attribute[] one, not object[]. Added
12128         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12129         custom attribute constructor.
12130
12131 2002-02-20  Dick Porter  <dick@ximian.com>
12132
12133         * icall.c:
12134         * rawbuffer.c:
12135         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12136         problem code out for now).
12137
12138 2002-02-19  Radek Doulik  <rodo@ximian.com>
12139
12140         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12141
12142 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12143
12144         * icall.c: register the GetCustomAttributes method.
12145         * object.c, object.h: add mono_string_new_len ().
12146         * reflection.h, reflection.c: added mono_runtime_invoke(),
12147         mono_install_runtime_invoke(). Added
12148         mono_reflection_get_custom_attrs () to load custom attributes and
12149         create the attribute objects.
12150
12151 2002-02-19  Dick Porter  <dick@ximian.com>
12152         * threads-dummy-types.c:
12153         * threads-dummy-types.h:
12154         * threads-dummy.c:
12155         * threads-dummy.h:
12156         * threads-pthread-types.c:
12157         * threads-pthread-types.h:
12158         * threads-pthread.c:
12159         * threads-pthread.h:  Deleted obsolete files
12160
12161 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12162
12163         * class.c (mono_class_vtable): runtime init the class when we
12164         allocate static class data.
12165
12166         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12167
12168         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12169         and String - but we will need generic marshalling support in the
12170         future. 
12171         (mono_init): set the domain name in a ms compatible way
12172
12173         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12174         String[].
12175
12176 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12177
12178         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12179         for sizes
12180
12181         * appdomain.c (mono_domain_unload): impl.
12182
12183 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12184
12185         * appdomain.c, object.c: fix intern pool implementation.
12186         * class.c: fix alignment code.
12187
12188 2002-02-16  Radek Doulik  <rodo@ximian.com>
12189
12190         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12191         and s2 > s1, just copy lower bytes to be compatible with little
12192         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12193         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12194
12195         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12196         force big_endian to be 1 for big endian machines 
12197         (ves_icall_iconv_new_decoder): ditto
12198
12199 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12200
12201         * socket-io.c (convert_sockopt_level_and_name): If the system
12202         doesn't define SOL_IP or SOL_TCP, get them by hand using
12203         getprotobyname() and caching the values (because this could be a
12204         slow operation).
12205         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12206         Use the appropriate struct when the system does support it. Ie,
12207         not all systems have struct ip_mreqn so use struct ip_mreq when
12208         appropriate.
12209
12210 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12211
12212         * reflection.c: handle finally clauses.
12213
12214 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12215
12216         * socket-io.c: use g_snprintf() instead of snprintf.
12217
12218 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12219
12220         * reflection.c (mono_param_get_objects): Cast second argument to
12221         mono_method_get_param_names to a const char** to silence the
12222         compiler warning.
12223
12224         * appdomain.c (mono_domain_assembly_open): Put parens around the
12225         truth statement in the for-loop.
12226
12227         * unicode.c (iconv_convert): Got rid of a compiler warning about
12228         int i being unused when the system has a new iconv.
12229         (iconv_get_length): Same.
12230
12231         * image.c (load_class_names): Cast the second argument to
12232         g_hash_table_insert() to char* to hush compiler warnings about the
12233         arg being a const.
12234         (mono_image_open): Same here.
12235
12236         * socket-io.c: Don't conditionally include sys/filio.h or
12237         sys/sockio.h here anymore since we now get them from
12238         io-layer/io-layer.h
12239         (inet_pton): If the system doesn't support inet_aton, implement
12240         using inet_addr and also #define INADDR_NONE if it isn't defined
12241         by the system.
12242
12243 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12244
12245         * metadata.c, metadata.h: added function to get packing and size info
12246         of a typedef.
12247         * reflection.h, reflection.c: handle field RVA data. Save info about
12248         the table layout if needed. Assign typedef indexes to all the types
12249         before dumping the info about them to avoid forward reference problems.
12250
12251 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12252
12253         * socket-io.c (convert_sockopt_level_and_name): ifdef
12254         SO_ACCEPTCONN because it is not defined on my system (old debian)
12255
12256 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12257
12258         * opcode.c: use stddef.h to get NULL.
12259
12260 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12261
12262         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12263         for FIONBIO, FIONREAD and SIOCATMARK.
12264         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12265         define INADDR_NONE and besides, inet_addr() is deprecated and
12266         should not be used. Use inet_pton() instead - it also has the
12267         added bonus that it can easily handle IPv6 addresses as well.
12268         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12269
12270 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12271
12272         * decimal.c: remove _MSC_VER conditional.
12273
12274 2002-02-13  Dick Porter  <dick@ximian.com>
12275
12276         * socket-io.c: 
12277         * icall.c: Internal calls for Blocking, Select, Shutdown,
12278         GetSocketOption and SetSocketOption
12279
12280 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12281
12282         * assembly.cs: better resolver: use it instead of some kludgy
12283         code.
12284
12285 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12286
12287         * reflection.c: the best way to speed-up the compiler is to avoid
12288         infinite loops.
12289
12290 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12291
12292         * class.c (mono_class_vtable): changed the object layout
12293         (obj->vtable->class). 
12294         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12295
12296 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12297
12298         * assembly.c: look for assemblies in the assembly dir, too.
12299
12300 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12301
12302         * class.c: fix thinko in mono_class_from_type().
12303
12304 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12305
12306         * exception.h, exception.c: added TypeLoadException.
12307         * object.h, object.c: added mono_array_clone ().
12308         * icall.c: handle throwOnError in AssemblyGetType().
12309         Added Array.Clone().
12310         * opcode.h, opcode.c: use a single value for the opcode val.
12311         Compile fix for non-gcc compilers.
12312
12313 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12314
12315         * opcodes.c, opcodes.h: export interesting info about opcodes.
12316
12317 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12318
12319         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12320         icalls. 
12321
12322         * class.c (class_compute_field_layout): set element_class for enums
12323         (mono_class_create_from_typedef): set element_class for normal classes
12324
12325         * icall.c (ves_icall_System_Enum_get_value): impl.
12326
12327         * class.c (mono_class_create_from_typedef): do not set valuetype
12328         flag for System.ValueType and System.Enum
12329
12330 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12331
12332         * unicode.c (iconv_convert): fix big endian problem.
12333
12334 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12335
12336         * class.c: add asserts if we are ever going to scribble over memory.
12337         * socket-io.c: not all systems have AF_IRDA defined.
12338
12339 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12340
12341         * class.c (class_compute_field_layout): do not consider static
12342         fields to compute alignment
12343
12344 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12345
12346         * appdomain.c (mono_appdomain_get): impl.
12347         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12348
12349 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12350
12351         * icall.c: ignore "file://" prefix when loading an assembly.
12352
12353 2002-01-23  Dick Porter  <dick@ximian.com>
12354
12355         * socket-io.c:
12356         * icall.c:
12357         * Makefile.am: Added socket support
12358
12359 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12360
12361         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12362         code back.  This should return the assemblies that are loaded by
12363         the runtime on behalf of an application domain. 
12364
12365         The current implementation is still broken, it just returns every
12366         assembly loaded, but until we get real applications domain this
12367         will do.
12368
12369 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12370
12371         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12372         AppDomain object.
12373
12374 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12375
12376         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12377         the mono_class_from_name lookup.
12378         (ves_icall_get_parameter_info): ditto.
12379         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12380         method.
12381         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12382
12383 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12384
12385         * class.c: load also nested classes on class init.
12386         System.ValueType instance methods gets passed boxed
12387         values, unless methods in derived classed that get a pointer to the
12388         data.
12389         * icall.c: use better name parsing code in GetType().
12390         * image.c, image.h: add mono_image_loaded ().
12391         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12392         * reflection.c, reflection.h: added mono_reflection_parse_type().
12393
12394 2002-01-22  Veronica De Santis <veron78@interfree.it>
12395
12396         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12397         * threads.c : Added the implementation of internal calls for events
12398         * threads.h : Added prototypes of internal calls for events
12399         
12400 2002-01-21  Radek Doulik  <rodo@ximian.com>
12401
12402         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12403
12404 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12405
12406         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12407         (mono_class_value_size): use min_align
12408
12409 2002-01-20  Dick Porter  <dick@ximian.com>
12410
12411         * threads.h:
12412         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12413         so it compiles on w32.
12414
12415 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12416
12417         * metadata.c (mono_type_stack_size): impl.
12418
12419         * class.c (mono_class_get_field): impl. memberref token
12420
12421 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12422
12423         * icall.h : Added the internal calls mapping for CreateMutex_internal
12424                     and ReleaseMutex_internal.
12425         * threads.h : Added the prototype of mutexes internal calls.
12426         * threads.c : Added the implementations of mutexes internal calls.
12427
12428 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12429
12430         * metaparse.h: removed unused file.
12431         * reflection.c, reflection.h: added stream_data_align () function 
12432         to align data in streams and keep stream aligned. Add support for
12433         exception support in method headers.
12434
12435 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12436
12437         * unicode.c: make iconv_convert () return the number of bytess written
12438         in the output buffer.
12439
12440 2002-01-15  Dick Porter  <dick@ximian.com>
12441         * threads.c: Make the runtime's idea of infinite timeouts coincide
12442         with the class library's
12443
12444         Fix a particularly egregious bug in mono_thread_cleanup(). That
12445         code was so utterly bogus it must have been written on a Monday.
12446
12447 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12448
12449         * reflection.h: add subtypes field to TypeBuilder.
12450         * reflection.c: encode constants for literal fields.
12451         Handle subtypes. Fix user string token (and add a zero byte)
12452         at the end.
12453         
12454 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12455
12456         * class.c (mono_class_init): bug fix: assign slot numbers for
12457         abstract methods.
12458
12459 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12460
12461         * reflection.c: don't try to output a code RVA for abstract methods.
12462         Small fixes for method header format. Output parameter info to the
12463         ParamDef table. Save method overriding info to MethodImpl table.
12464         Fix property support. Allow typedef.extends to be a type in the
12465         building assembly.
12466         * verify.c: fix off-by-one error.
12467
12468 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12469
12470         * class.c: fix mono_class_from_mono_type () for szarray types.
12471         Remove unused cache check in mono_class_from_type_spec().
12472         * icall.c: *type_from_name () functions handle simple arrays and byref.
12473         * reflection.c: handle byref and szarray types. Handle methods without
12474         body (gets P/Invoke compilation working). Handle types and fields in
12475         get_token ().
12476         * reflection.h: add rank to MonoTypeInfo.
12477
12478 2002-01-10  Dick Porter  <dick@ximian.com>
12479
12480         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12481         internal calls
12482
12483 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12484
12485         * icall.c: initialize class in type_from_handle ().
12486         Loop also in parent classes for get_method ().
12487         * reflection.c: properly encode class and valuetype types.
12488         Start on encoding TypeBuilder types. Handle fieldrefs.
12489         Use correct length when registering a user string.
12490         Handle ConstructorBuilder and MonoMethod in get_token ().
12491         Make mono_type_get_object () aware of cached types.
12492         * object.c: back out change to mono_string_new ().
12493
12494 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12495         * object.c: mono_string_new should return a NULL when the string 
12496         passed in is NULL -- not try to deference it.
12497         
12498 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12499
12500         * icall.c: hack to make IsSubType work for TypeBuilders.
12501         * reflection.c: emit constructors before methods.
12502         Retrieve param names in mono_param_get_objects().
12503
12504 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12505
12506         * Makefile.am: fix list of headers and sources so automake 1.5
12507         doesn't complain. Removed \# at end of list.
12508
12509 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12510
12511         * reflection.c: get token for a method ref. Set return type of
12512         constructor to void.
12513         * loader.c: debug message.
12514         * class.c: typo fix.
12515
12516 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12517
12518         * icall.c: fix array init with rank > 1. FindMembers
12519         loops in parent class as well.
12520         * image.c: do not insert nested types in name cache.
12521         * reflection.c: warning fix.
12522         * reflection.h: add override method (for interface impl).
12523
12524 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12525
12526         * metadata.c: fix customattr decoding.
12527
12528 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12529
12530         * rawbuffer.cs: Added native Win32 implementation, avoids using
12531         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12532
12533 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12534
12535         * class.c: make the low-level routines handle the cache.
12536
12537 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12538
12539         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12540
12541 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12542
12543         * class.c: fix mono_array_element_size() for objects.
12544         * class.h, class.c: add properties to MonoClass and load them
12545         at init time.
12546         * icall.c: check with isinst() when assigning a value to an array
12547         instead of requiring the classes to match exactly.
12548         Implemented icall for System.Type::GetType().
12549         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12550         enums. Handle bindingflags when looking for methods and fields.
12551         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12552         and mono_metadata_methods_from_property().
12553         * reflection.h, reflection.c: added structures for propreties,
12554         parameters and enums. Implemented mono_property_get_object() and
12555         mono_param_get_objects().
12556
12557 2001-12-18  Dick Porter  <dick@ximian.com>
12558
12559         * file-io.c: Use mono_string_to_utf16() instead of
12560         mono_string_chars()
12561
12562         * object.c: Added mono_string_to_utf16(), which copies the non
12563         NULL-terminated MonoString into a new double-null-terminated
12564         buffer.
12565
12566 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12567
12568         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12569
12570 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12571
12572         * file-io.c: raise exceptions if handle is invalid.
12573
12574 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12575
12576         * assembly.c: yet another check for mscorlib.
12577         * class.c, class.h: load nesting info for classes.
12578         * icall.c: many new functions to support the Reflection classes.
12579         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12580         * reflection.h, reflection.c: mono_image_create_token(),
12581         mono_assembly_get_object(), mono_type_get_object(),
12582         mono_method_get_object(), mono_field_get_object(): methods to return
12583         objects that parallel the C representation of assemblies, types,
12584         methods, fields.
12585
12586 2001-12-11  Dick Porter  <dick@ximian.com>
12587
12588         * icall.c:
12589         * file-io.c: Internal calls for file IO.
12590
12591 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12592
12593         * tabledefs.h: missing FileAttributes.
12594         * verify.h, verify.c: use is_valid_string () to simplify and check for
12595         valid strings more correctly. Fix warnings and speeling.
12596         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12597         Check code: branches, maxstack, method calls.
12598
12599 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12600
12601         * object.c (mono_object_allocate): removed static, so that the jit
12602         can allocate value types.
12603
12604         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12605
12606 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12607
12608         * class.c: init enum types right away and register the
12609         token->MonoClass map in mono_class_create_from_typedef ().
12610         * verify.h, verify.c: first cut of the verifier.
12611         * pedump.c: add --verify switch to verify metadata tables.
12612         * tabledefs.h: add some missing enums.
12613
12614 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12615
12616         * class.c (mono_install_runtime_class_init): impl.
12617         (mono_class_init): renamed mono_class_metadata_init to
12618         mono_class_init, also removed the metadata_inited flag
12619
12620         * object.c (mono_object_isinst): use faster algorithm
12621
12622 2001-11-30  Radek Doulik  <rodo@ximian.com>
12623
12624         * mono-endian.h: reverted last change
12625         added function prototypes
12626
12627         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12628         add mono-endian.c back
12629
12630         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12631         for unaligned access, I've mistaked it with endianess. I am
12632         sorry.
12633         (mono_read16): fix reverted endianess
12634         (mono_read64): ditto
12635         (mono_read32): ditto
12636
12637 2001-11-30  Dick Porter  <dick@ximian.com>
12638
12639         * exception.c: Implement mono_exception_from_name()
12640
12641 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12642
12643         * metadata.h, metadata.c: remove params_size and locals_size and their
12644         calculation from the metadata code: they are only usefult to the
12645         interp.
12646
12647 2001-11-29  Radek Doulik  <rodo@ximian.com>
12648
12649         * object.c (mono_ldstr): swap bytes here, it's probably not the
12650         best place, but works for me now, I'll redo it once I know mono
12651         better, also note that I add PROT_WRITE and don't reset back, also
12652         note that it's only affects big endians, so x86 should be OK
12653
12654         * mono-endian.h (read16): use just glib macros for both endians
12655
12656         * mono-endian.c: removed as glib macros are used in in
12657         mono-endian.h so we don't need to care about endianess for read
12658         macros as glib does that for us already
12659
12660 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12661
12662         * class.h, class.h: take minimum alignment into consideration so
12663         that the fields of a class remain aligned also when in an array.
12664
12665 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12666
12667         * loader.h, loader.c: add mono_method_get_param_names().
12668         * class.c: 0-init class fields.
12669
12670 2001-11-26  Dick Porter  <dick@ximian.com>
12671
12672         * icall.c:
12673         * threads-types.h:
12674         * threads.c: New file that handles System.Threading on all platforms
12675
12676         * object.c: 
12677         * object.h: Remove the synchronisation struct from MonoObject,
12678         replace it with a pointer that gets initialised on demand
12679
12680         * Makefile.am: Replace all the system-specific threading code with
12681         a single file that uses the new wrapper library
12682
12683 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12684
12685         * class.c, class.h: add mono_install_trampoline() so that the runtime
12686         can register a function to create a trampoline: removes the ugly
12687         requirement that a runtime needed to export arch_create_jit_trampoline.
12688         * object.h, object.c: added mono_install_handler() so that the runtime
12689         can install an handler for exceptions generated in C code (with
12690         mono_raise_exception()). Added C struct for System.Delegate.
12691         * pedump.c: removed arch_create_jit_trampoline.
12692         * reflection.c: some cleanups to allow registering user strings and
12693         later getting a token for methodrefs and fieldrefs before the assembly
12694         is built.
12695         * row-indexes.h: updates and fixes from the new ECMA specs.
12696
12697 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12698
12699         * class.h, class.c: add enum_basetype field to MonoClass.
12700         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12701         to get index in the constant table reated to a field, param or
12702         property.
12703         * reflection.h, reflection.c: handle constructors. Set public-key and
12704         version number of the built assembly to 0.
12705         * row-indexes.h: update from new ECMA spec.
12706
12707 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12708
12709         * class.h, class.c: add a max_interface_id to MonoClass.
12710         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12711         since it's used to do that. Added mono_type_type_from_obj().
12712         Make GetType() return NULL instead of segfaulting if the type was not
12713         found. Handle simple arrays in assQualifiedName.
12714         * object.h: add a struct to represent an Exception.
12715         * reflection.c: output call convention in method signature.
12716         Add code to support P/Invoke methods and fixed offsets for fields.
12717
12718 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12719
12720         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12721         the value.
12722         * icall.c: use mono_array_addr instead of array->vector: fixes the
12723         reflection image writing.
12724         * reflection.c: init call convention byte to 0 in method signature.
12725         Encode the property signature. Don't output property-related methods
12726         twice. Really process the properties for a type (don't cast a field to
12727         a property, my mom always told me that).
12728         Fix 64 bit issues in pointer alignment in a different and more
12729         readable way.
12730
12731 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12732
12733         * loader.h: Removed type class from MonoDefaults, added monotype
12734
12735         * loader.c: Loaded MonoType, removed loading of Type
12736
12737         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12738         and fills in System.Type._impl with a RuntimeTypeHandle rather
12739         than the actual MonoClass *
12740
12741         (ves_icall_type_from_handle): change from type_class to
12742         monotype_class
12743
12744         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12745         implemented
12746
12747         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12748         implemented
12749
12750         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12751
12752         (ves_icall_System_Reflection_Assembly_GetType): implemented
12753
12754         (ves_icall_System_MonoType_assQualifiedName): implemented
12755
12756         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12757
12758 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12759
12760         * assembly.c (mono_assembly_open): Implement a cache for the
12761         assemblies. 
12762
12763         (mono_assembly_close): only destroy the assembly when the last
12764         reference is gone.
12765         
12766 2001-11-09  Dick Porter  <dick@ximian.com>
12767
12768         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12769
12770 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12771
12772         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12773
12774 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12775
12776         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12777         from Martin Weindel.
12778         * object.h: add mono_string_chars ().
12779
12780 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12781
12782         * reflection.c (build_compressed_metadata): Eliminates warnings
12783         and uses 64-bit clean code.
12784
12785         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12786         (mono_type_equal): Change signature to eliminate warnings.
12787
12788 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12789
12790         * icall.c, loader.c: remove the internalcall array constructors.
12791         Changes to match the new MonoArray structure.
12792         * object.h, object.c: an array object doesn't allocate an extra
12793         vector. Add mono_array_new_full () to create jagged arrays easily.
12794
12795 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12796
12797         * metadata.h, metadata.c: add mono_metadata_field_info () to
12798         retreive all the info about a field from vairous tables.
12799         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12800         * class.h, class.c: augment MonoClassField with more info.
12801         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12802         policy and load a field's RVA if needed.
12803
12804 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12805
12806         * class.c (mono_class_metadata_init): create a trampoline for all
12807         virtual functions instead of actually compiling them.
12808
12809 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12810
12811         * class.h, class.c: include name in MonoClassField.
12812         * class.c: fix fundamental type of System.Object and System.String.
12813         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12814         tokens in ldtoken.
12815         * icall.c: remove internalcalls for the Reflection stuff that is now
12816         done in C# code.
12817         * loader.c: mono_field_from_memberref () implementation.
12818         * mono-endian.c: thinko (s/struct/union/g).
12819         * object.c, object.h: make the mono_string_* prototypes actually use
12820         MonoString instead of MonoObject.
12821         * reflection.c, reflection.h: updates for changes in the reflection
12822         code in corlib: we use C structures that map to the actual C# classes.
12823         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12824         fat method header if needed and use the info from the ILGenerator for
12825         methods. Handle fields in types. Misc fixes.
12826
12827 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12828
12829         * class.c (mono_class_metadata_init): bug fix: always allocate
12830         space for static class data
12831
12832 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12833
12834         * class.c (mono_compute_relative_numbering): use relative
12835         numbering to support fast runtime type checks.
12836
12837 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12838
12839         * class.c (mono_class_create_from_typeref): added debugging output
12840         to print class name when MonoDummy is returned instead of real class
12841
12842 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12843
12844         * class.c (mono_class_metadata_init): interface offset table now
12845         contains pointers into the vtable - this is more efficient for the jit
12846
12847 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12848
12849         * class.c (mono_class_metadata_init): use a temporary vtable (the
12850         old algorithm only worked for the interpreter, but not for the jit)
12851
12852 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12853
12854         * loader.c (method_from_memberref): use mono_class_get to get the
12855         class of an array instead of using System.Array directly.
12856         (mono_get_method): also add MEMBERREF methods to the method cache
12857         which usefull for arrays.
12858
12859 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12860
12861         * pedump.c (arch_compile_method): added to compute vtable entry
12862
12863         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12864         number of interfaces.
12865         
12866         * class.h: merged MonoArrayClass into MonoClass
12867
12868         * class.c (mono_class_create_from_typedef): compute the vtable size and
12869         allocate space to include the vtable inside MonoClass
12870         (mono_class_metadata_init): initialize the vtable
12871
12872 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12873
12874         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12875         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12876         * image.c: endian fixes by Laurent Rioux.
12877         * object.h, object.c: rename MonoStringObject to MonoString and
12878         MonoArrayObject to MonoArray. Change some function names to conform to
12879         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12880         guint16* as first argument, so don't use char*.
12881         Provide macros to do the interesting things on arrays in a portable way.
12882         * threads-pthread.c: updates for the API changes and #include <sched.h>
12883         (required for sched_yield()).
12884         * icall.c: updates for the API changes above.
12885         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12886         platforms that need them.
12887
12888 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12889
12890         * class.c: set the correct type for all the fundamental
12891         type when loading the class.
12892
12893 2001-10-05  Dick Porter  <dick@ximian.com>
12894
12895         * threads-pthread.c (pthread_mutex_timedlock): Simple
12896         compatibility version for C libraries that lack this call.
12897
12898 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12899
12900         * class.c: MonoTypes stored in MonoClass are stored as
12901         fundamental MonoTypes when the class represents a
12902         fundamental type (System.Int32, ...).
12903         The TypeHandle return by ldtoken is a MonoType*.
12904         * icall.c: ves_icall_get_data_chunk () write out all the
12905         PE/COFF stuff. Implement ves_icall_define_method (),
12906         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12907         * image.c: properly skip unknown streams.
12908         * loader.h, loader.c: add type_class to mono_defaults.
12909         * metadata.c, metadata.h: export compute_size () as
12910         mono_metadata_compute_size () with a better interface.
12911         Typo and C&P fixes.
12912         * pedump.c: don't try to print the entry point RVA if there is no entry point.
12913         * reflection.c, reflection.h: many cleanups, fixes, output method
12914         signatures and headers, typedef and typeref info, compress the metadata
12915         tables, output all the heap streams, cli header etc.
12916         * row-indexes.h: typo fixes.
12917
12918 2001-10-04  Dick Porter  <dick@ximian.com>
12919
12920         * object.h: Add a synchronisation mutex struct to MonoObject
12921
12922         * object.c (mono_new_object): Initialise the object
12923         synchronisation mutexes
12924
12925         * icall.c: System.Threading.Monitor internal calls
12926         
12927         * threads-pthread.h:
12928         * threads-pthread.c: System.Threading.Monitor internal calls
12929
12930         * threads-types.h: New file, includes the system-specific thread
12931         structures
12932         
12933         * threads-pthread-types.h:
12934         * threads-pthread-types.c: New files, handle pthread-specific
12935         synchronisation types
12936
12937         * threads-dummy-types.h: 
12938         * threads-dummy-types.c: New files of dummy support for
12939         thread-specific types
12940
12941         * metadata.c:
12942         * image.c:
12943         * pedump.c: include mono-endian.h not endian.h
12944         
12945         * Makefile.am: More threads files.
12946         Name mono-endian.h not endian.h
12947
12948 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
12949
12950         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
12951         stuff and implement a few more bits.
12952         * icall.c: a field needs to be dereferenced twice. Do not use the same
12953         name for two variables in the same scope.
12954         * image.c, image.h: cleanups.
12955
12956 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
12957
12958         * class.c (mono_class_metadata_init): bug fix: compute the right size
12959
12960 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
12961
12962         * icall.c: implemented some of the Reflection internalcalls.
12963         * image.c, image.h: start writing out the PE/COFF image.
12964         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
12965         that does the reverse than decode_blob_size ().
12966         * object.c: use mono_metadata_encode_value (). Move here
12967         temporary implementation of mono_string_to_utf8 ().
12968         * rawbuffer.c: make malloc_map static.
12969
12970 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12971
12972         * metadata.c: fix type comparison for arrays.
12973         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
12974         Added a couple of new classes to monodefaults.
12975         * icall.c: added a couple of Reflection-related internalcalls.
12976         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
12977         Added a byval_arg MonoType to MonoClass.
12978
12979 2001-09-28  Dick Porter  <dick@ximian.com>
12980
12981         * icall.c:
12982         * threads-pthread.h: 
12983         * threads-pthread.c: Implemented internal calls for
12984         LocalDataStoreSlot operations.  Applied mutexes around all shared
12985         data.  Reworked the thread creation and Start() operations to
12986         avoid a race condition.
12987         
12988         * threads-dummy.h:
12989         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
12990
12991 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
12992
12993         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
12994
12995 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
12996
12997         * class.c, loader.c: warn and return NULL instead of erroring out.
12998         * icall.c: added System.AppDomain::getCurDomain().
12999         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
13000
13001 2001-09-25  Dick Porter  <dick@ximian.com>
13002
13003         * threads-pthread.h:
13004         * threads-pthread.c: Implemented timed thread joining and added
13005         System.Threading.Thread::Join_internal internal call
13006
13007         * icall.c: Added System.Threading.Thread::Join_internal internal call
13008
13009         * threads-dummy.h:
13010         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
13011
13012 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
13013
13014         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
13015         mono_string_intern () to implement the semantics of the ldstr opcode
13016         and the interning of System.Strings.
13017         * icall.c: provide hooks to make String::IsIntern and String::Intern
13018         internalcalls.
13019
13020 2001-09-23  Dick Porter  <dick@ximian.com>
13021
13022         * threads-dummy.c: 
13023         * threads-dummy.h: New files of dummy threading routines
13024
13025         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
13026         support code based on system specifics
13027
13028         Rename PTHREAD_LIBS to THREAD_LIBS
13029         
13030 2001-09-23  Dick Porter  <dick@ximian.com>
13031
13032         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
13033         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
13034         internal calls.
13035         (mono_thread_init): Set up a Thread object instance to return when
13036         the main thread calls Thread.CurrentThread
13037         (mono_thread_cleanup): Wait for all subthreads to exit
13038
13039         * icall.c: New internal calls for System.Threading.Thread::Sleep
13040         (including Schedule) and CurrentThread
13041
13042         * threads.h: New file, to insulate thread-specific stuff from the
13043         rest of the code
13044
13045 2001-09-21  Dick Porter  <dick@ximian.com>
13046
13047         * threads-pthread.h: 
13048         * threads-pthread.c: New file, for handling pthreads-style
13049         threading support.  Start() now starts a new thread and executes
13050         the ThreadStart delegate instance.
13051
13052         * icall.c: Added the internalcall for
13053         System.Threading.Thread::Start_internal
13054
13055         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
13056
13057 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
13058
13059         * loader.c: work around the different signatures for delegates
13060         constructors csc generates in compiled code vs the ones compiled in mscorlib.
13061
13062 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13063
13064         * class.h, class.c: add mono_class_get_field_from_name ().
13065         * *: Fix C comments and other ANSI C issues.
13066
13067 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
13068
13069         * endian.h, assembly.c: fix some endianness issues.
13070
13071 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
13072
13073         * loader.h, load.c: add delegate_class to mono_defaults.
13074         Handle runtime provided methods in mono_get_method ().
13075
13076 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
13077
13078         * loader.c (mono_get_method): use pinvoke for internal call
13079
13080         * icall.c: use pinvoke for internal call
13081
13082         * loader.c (method_from_memberref): set the method name
13083
13084 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
13085
13086         * metadata.c: help the compiler generate better code for
13087         mono_class_from_mono_type ().
13088
13089 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
13090
13091         * class.c (mono_class_metadata_init): delayed computing of the
13092         class size to mono_class_metadata_init ()
13093
13094 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
13095
13096         * class.c, class.h: add an interfaces member to MonoClass.
13097         * image.c, image.h: add assembly_name field to MonoImage
13098         from the assembly table.
13099         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
13100
13101 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13102
13103         * class.c: Handle Array in mono_class_from_mono_type ().
13104         * metadata.c, pedump.c: some endian fixes.
13105
13106 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13107
13108         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13109         * metadata.c: fix small problem introduced with the latest commit.
13110
13111 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13112
13113         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13114         We don't need a MonoMetadata pointer anymore to compare signatures in
13115         mono_metadata_signature_equal (), update callers.
13116         Reduced memory usage an number of allocations for MonoMethodHeader and
13117         MonoMethodSignature.
13118
13119 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13120
13121         * metadata.c: added compare for szarray.
13122
13123 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13124
13125         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13126         and add a couple more types to it and mono_defaults. Give an hint on
13127         classes that need implementing in our corlib and are referenced
13128         in mscorlib.
13129
13130 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13131
13132         * class.h, class.c: keep track if a class is also an Enum.
13133         * loader.c: Implement a couple more types for use in libffi
13134         marshalling. Gives better diagnostics when failing to dlopen
13135         a library. Set method->klass for P/Invoke methods, too.
13136
13137 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13138
13139         * class.c, class.h: add a MonoType this_arg to MonoClass that
13140         represents a pointer to an object of the class' type that
13141         can be used by the interpreter and later the type cache.
13142         Add best guess alignment info for valuetype objects.
13143
13144 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13145
13146         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13147         into MonoType: one less level of indirection and allocation and
13148         simplifies quite a bit of code. Added cache for MonoTypes that are
13149         used frequently, so that we don't need to allocate them all the time.
13150
13151 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13152
13153         * class.c (mono_class_create_from_typedef): System.Enum is also a
13154         value type, although it does not derive from System.ValueType
13155         (maybe a bug in the ms compiler?)
13156
13157         * metadata.c (mono_type_size): return the right size for value types
13158
13159         * loader.c (mono_get_method): only initialize method header if not abstract
13160
13161         * class.c (mono_class_from_mono_type): use mono_default values. 
13162
13163 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13164
13165         * *: use MonoClass pointers instead of <type_tokens>
13166         
13167         * class.h: new flag: metadata_inited.
13168
13169         * class.c (mono_class_metadata_init): impl.
13170         (mono_class_instance_size): impl.
13171         (mono_class_data_size): impl.
13172
13173 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13174
13175         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13176         MonoClass now has the name and name_space fields. 
13177         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13178         mono_get_method () takes and optional MonoClass as argument.
13179         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13180         instead that takes advantage of a map from class names to typedef
13181         tokens in MonoImage.
13182
13183 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13184
13185         * metadata.c: zero is not a valid alignment boundary.
13186         Merge MONO_TYPE_VOID in default decoding code.
13187
13188 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13189
13190         * image.h: merged MonoMetadata into MonoImage
13191
13192         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13193         identify the type of elements.
13194
13195 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13196
13197         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13198         * cil-coff.h: split MonoMSDOSHeader and add size info.
13199         * image.c: add some consistency checks.
13200         * metadata.c: fix row size computation: one programmer
13201         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13202         add explanation for the locator routine.
13203         Fix decoding of size in method header.
13204         
13205 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13206
13207         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13208         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13209         function from gnome-libs.  This uses the right path separator
13210         based on the OS, and also works around a bug in some systems where
13211         a double slash is not allowed. 
13212         (default_assembly_name_resolver): Use g_concat_dir_and_file
13213         (mono_assembly_open): ditto.
13214
13215 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13216
13217         * metadata.c (mono_metadata_signature_equal): impl.
13218
13219         * *: void is now a realy MonoType (instead of using NULL)
13220         
13221         * metadata.c (do_mono_metadata_parse_type): use
13222         mono_metadata_parse_type to parse void value.
13223
13224 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13225
13226         * metadata.c, metadata.h: in the signature and method header store
13227         only the space required for holding the loca vars and incoming arguments.
13228
13229 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13230
13231         * metadata.c (do_mono_metadata_parse_type): treat void like any
13232         other type (instead of assigning NULL);
13233
13234 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13235
13236         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13237
13238 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13239
13240         * image.c (do_mono_image_open): added a cache for arrays.
13241
13242 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13243
13244         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13245         decode a single column from a row in a metadata table and changes
13246         to take advantage of it in the typedef locator (gives a nice speed up).
13247         Store offset info for function params.
13248
13249 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13250
13251         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13252
13253 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13254
13255         * assembly.c: how could mono_assembly_close () had ever worked?
13256         * metadata.c, metadata.h: provide offset info for local vars.
13257         Implement mono_type_size () to take care of alignment as well
13258         as size (it was mono_field_type_size in cli/class.c before).
13259
13260 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13261
13262         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13263
13264         * assembly.h (CORLIB_NAME): set to corlib.dll
13265
13266         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13267
13268 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13269
13270         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13271         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13272         tokentype.h: massive namespace cleanup.
13273
13274 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13275
13276         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13277
13278 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13279
13280         * metadata.c (mono_metadata_free_type): added check for type !=
13281         NULL (void) before calling mono_metadata_free_type()
13282
13283 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13284
13285         * metadata.h, row_indexes.h: added header with enumerations to use
13286         to index in the columns from tables in metadata and to decode coded
13287         tokens: we should start using this instead of embedding magic numbers
13288         all over the code.
13289
13290 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13291
13292         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13293         Move metadata_t info from cli_image_info_t to MonoImage, where
13294         it's easily accessible. Changed all the uses accordingly.
13295         Added the method and class caches to MonoImage.
13296         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13297         and mono_metadata_decode_value () signature to be more consistent
13298         with the other parse functions (and simplify code). Taken advantage
13299         of zero-length array allocation with GCC. Removed reduntant (and
13300         wrong) MonoFieldType struct and use MonoParam instead. Changed
13301         mono_metadata_parse_field_type () to use common code for parsing.
13302         Added mono_metadata_typedef_from_field () and
13303         mono_metadata_typedef_from_method () to lookup a typedef index from a
13304         field or method token.
13305         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13306
13307 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13308
13309         * metadata.c (mono_metadata_parse_field_type): Implement. 
13310         (do_mono_metadata_parse_type): Split engine from
13311         mono_metadata_parse_type, so that we can create smaller structures
13312         for things that just have one pointer to the MonoType (look at
13313         the MonoFieldType)
13314
13315 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13316
13317         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13318         as Jan Gray found out, it is incorrect. 
13319
13320 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13321
13322         * assembly.c: Implement asssembly loading.  This loads an image
13323         and loads all the referenced assemblies.  Come to think of it, we
13324         could always do lazy loading of the assemblies. 
13325
13326         * image.c (mono_image_open): Keep loaded images in a hashtable.
13327
13328         * image.h (MonoImage): Add reference count.
13329
13330 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13331
13332         * assembly.c (mono_assembly_open): Keep track of the file name in
13333         case the assembly has no ASSEMBLY table.
13334
13335         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13336         from get.c here.
13337
13338 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13339
13340         * metadata.c, metadata.h: decode local vars in method header
13341         parse function. Change callers accordingly.
13342
13343 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13344
13345         * metadata.h, cil-coff.h: protect against multiple inclusion.
13346         Added some new structures to hold information decoded from metadata:
13347         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13348         and relevant decoding/free functions.
13349         * metadata.c: implement decoding functions. Add warning for out of bounds
13350         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13351         all the info about a method signature and invocation. Remove check on
13352         uninitialized local var in parse_mh() and fix memory leak.
13353
13354 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13355
13356         * metadata.h: More macros.
13357
13358         * tokentype.h: New file.
13359
13360 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13361
13362         * assembly.c: added a consistency check and initialize
13363         some structures with g_new0().
13364         * metadata.c: fixed a couple more bugs in table size computation
13365         and add other checks for out-of bound access to metadata.
13366
13367 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13368
13369         * metatada.c: fix bugs computing table sizes. Spew a
13370         warning when index in string heap is out of bounds.
13371
13372 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13373
13374         * metadata.h: Add a couple of macros to manipulate tokens. 
13375
13376 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13377
13378         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13379         cli_section_tables).
13380
13381 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13382
13383         * metadata.c (mono_metadata_user_string): New function, provides
13384         access to the UserString heap. 
13385
13386 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13387
13388         * metadata.c: Add inline documentation.
13389
13390 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13391
13392         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13393         files. 
13394
13395 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13396
13397         * typeattr.h: New file, TypeAttribute flags. 
13398
13399 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13400
13401         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13402         mono_assembly_ensure_section): Section loading code.
13403         (load_section_tables): Load the sections.
13404
13405         * mono/metadata/metadata.c (mono_metadata_locate_token,
13406         mono_metadata_locate): Functions to locate the information
13407         definition given a token or a table and an index.
13408         (mono_metadata_compute_table_bases): New.
13409         (compute_size): New function to compute the sizes of the various
13410         tables.
13411
13412         * mono/metadata/metadata.h: Finish listing the different index
13413         types. 
13414
13415         * mono/metadata/pedump.c: Improve to dump new information.
13416
13417 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13418
13419         * mono/metadata/metadata.c: Entered all the tables matching
13420         Beta2. 
13421
13422         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13423