Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
3
4         * object-internal.h, threads.c: implement stacksize and 
5         parameterized thread start functionality (requires
6         matching corlib). Marked broken code for later removal.
7
8 2005-01-12  Martin Baulig  <martin@ximian.com>
9
10         * class-internals.h (MonoGenericClass): Moved the `initialized'
11         flag to MonoDynamicGenericClass, removed `init_pending'.
12         (MonoGenericInst): Added `is_reference' flag.
13
14 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
15
16         * reflection.c (mono_image_create_pefile): Only set the pe_offset
17         inside the MSDOS header. Fixes #71201.
18
19         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
20         gc thread.
21         (mono_domain_finalize): Ditto.
22
23 2005-01-12  Martin Baulig  <martin@ximian.com>
24
25         * class.c (mono_get_shared_generic_class): Use the cache for
26         non-dynamic generic classes.
27
28         * class-internals.h (mono_class_create_generic_2): Removed
29         function prototype, this function is now static inside class.c.
30
31         * class.c (mono_class_create_generic_2): Made this static, only
32         call it from mono_class_init() and mono_class_setup_parent().
33         (collect_implemented_interfaces_aux): Call mono_class_init() on
34         the interfaces we collect.
35         (mono_class_setup_vtable): Call mono_class_init (class->parent).
36
37 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
38
39         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
40         it a real thread handle.
41
42         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
43         MonoJitExceptionInfo, since each catch clause needs its own variable.
44         
45 2005-01-11  Dick Porter  <dick@ximian.com>
46
47         * image.c (mono_pe_file_open): New variant on mono_image_open()
48         that does not set up the CLI metadata; used for FileVersionInfo so
49         it can get the data for windows binaries too.
50         
51         * process.c (process_read_string_block): Don't read off the end of
52         the StringTable block.
53
54         These both fix bug 70766.
55
56 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
57
58         * gc.c: set some fields to NULL at GC cleanup time.
59         * threads.c: if we quit the main thread, call exit ().
60
61 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
62
63         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
64
65 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
66
67         * threads.h, threads.c, object.c: added accessor and settor for
68         main_thread. Handle it specially when exiting from it: wait
69         for other foreground threads to exit.
70
71 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
72
73         * process.c, verify.c: remove some bloat.
74
75 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
76
77         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
78         the calling convention to cdecl under win32.
79
80 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
81
82         * object.c (mono_object_get_size): New function to get the size of
83         an object instance.
84
85         * profiler.c (simple_allocation): Use above.
86
87 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
88
89         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
90         ves_icall_System_AppDomain_getRootDomain (as it's not required to
91         get an appdomain by it's id and we can't assume the root's id is 0).
92         * domain-internals.h: Change the function prototype to match.
93         * icall.c: Change the icall table for AppDomain.
94
95 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
96
97         * locales.c (string_invariant_compare_char): Only compute
98         GUnicodeTypes in the case where we need them.  Test for ordinality
99         first and return if so.
100
101         From the commit:
102
103                 /*
104                  * FIXME: here we must use the information from c1type and c2type
105                  * to find out the proper collation, even on the InvariantCulture, the
106                  * sorting is not done by computing the unicode values, but their
107                  * actual sort order.
108                  */
109
110 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
111
112         * loader.c: for P/Invoke methods, allow the "Internal" shared
113         library name to refer to the calling process symbol namespace.
114
115 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
116
117         * Makefile.am: Add the security manager to the build.
118         * security-manager.c|h: New. Initialization of the security manager.
119
120 2005-01-07  Dick Porter  <dick@ximian.com>
121
122         * threads.c: 
123         * monitor.c: Update thread state during Monitor and WaitHandle
124         waits.  Fixes bug 71031.
125
126 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
127
128         * reflection.c (property_encode_signature): Correctly handle when the
129         property has no methods.
130
131 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
132
133         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
134         
135         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
136         fields from mb, not rmb. Fixes #71017.
137
138         * marshal.c (emit_ptr_to_str_conv): Add support for 
139         ByValTStr -> string conversion. Fixes #71015.
140
141         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
142
143         * mempool.c (mono_mempool_contains_addr): New helper function.
144
145 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
146
147         * metadata.c (mono_metadata_compute_size): Fix size calculation of
148         HasSematics encoded fields.
149         
150         * metadata.c (mono_type_to_unmanaged): Improve error message for 
151         invalid string marshalling.
152
153         * metadata.c: Fix warnings.
154         
155 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
156
157         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
158         profiler support.
159
160 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
161
162         * domain.c object.c domain-internals.h: Revert part of r38077 since the
163         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
164         tests.
165
166 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
167
168         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
169         so methods containing these can be AOTed.
170
171 2005-01-03  Martin Baulig  <martin@ximian.com>
172
173         * loader.c (find_method): Removed the hack for generic instances.
174         (method_from_memberref): If our parent is a generic instance, pass
175         its generic type definition to find_method() and then inflate the
176         method.
177         (mono_get_method_constrained): Pass the generic type definition to
178         find_method() and inflate the method later.
179
180         * class-internals.h (MonoStats): Added `generic_class_count'.
181
182         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
183         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
184
185         * reflection.c (mono_custom_attrs_from_params): Don't ignore
186         generic type definitions.
187
188 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
189
190         * loader.c icall.c: Fix warnings.
191
192 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
193
194         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
195         blittable types. Fixes #70864.
196
197 2004-12-29  Martin Baulig  <martin@ximian.com>
198
199         * icall.c
200         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
201
202         * reflection.c (mono_method_get_object): Create a
203         "System.Reflection.MonoGenericMethod" for inflated methods; don't
204         call mono_get_inflated_method().
205
206         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
207
208 2004-12-27  Martin Baulig  <martin@ximian.com>
209
210         * class-internals.h (MonoMethod): Added `is_inflated' flag.
211         (MonoMethodInflated): Added `inflated' field.
212
213         * class.c (mono_class_inflate_generic_method): Don't really
214         inflate the method here; just set the `is_inflated' flag in the
215         MonoMethod.
216         (mono_class_get_inflated_method): Actually inflate the method here
217         if it's not already inflated; we use the MonoMethodInflated's new
218         `inflated' field as a cache.
219
220 2004-12-26  Martin Baulig  <martin@ximian.com>
221
222         * class.c
223         (inflate_generic_class): Moved some code out of inflate_generic_type().
224         (mono_class_inflate_generic_method): If we're already inflated,
225         inflate the context and use the declaring method; ie. make sure
226         the declaring method of an inflated method is always the generic
227         method definition.
228         (mono_class_create_from_typedef): Create
229         `class->generic_container->context->gclass'.
230
231 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
232
233         * metadata-internals.h, marshal.c, reflection.c: More
234         MonoGHashTable->GHashTable.
235
236         * domain-internals.h, class.c: Change MonoGHashTable's into
237         GHashTables for some cases where no gc stuff is used
238
239         All users: update apis
240
241 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
242
243         * metadata.c (builtin_types): Make this `const'. Makes this get
244         put into the shareable section.
245         (mono_metadata_init): Casts to make gcc happy.
246
247 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
248
249         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
250
251 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
252
253         * icall.c: Added an internal call to retrieve the position and length
254         of assembly-level declarative security attributes (RequestMinimum, 
255         RequestOptional and RequestRefuse). This is used by the Assembly class
256         to re-create the corresponding permission sets.
257
258 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
259
260         * marshal.c: fix the stelemref wrapper to be type correct
261         (and faster).
262
263 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
264
265         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
266         to do key & 0x7fffffff. Hashtable already does this. It just
267         results in longer code.
268
269 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
270
271         * appdomain.c: Bump corlib version.
272         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
273         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
274         * reflection.c|h: Add functions to get declarative security infos
275         (blob position and length) for assemblies, classes and methods.
276
277 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
278
279         * reflection.c: sort the constant table (bug #70693).
280
281 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
282
283         * object-internals.h, threads.c, domain.c: add accessors for
284         the MonoThread and MonoDomain tls keys.
285
286 2004-12-18  Martin Baulig  <martin@ximian.com>
287
288         * class.c (inflate_generic_type): If we're inflating a generic
289         instance, set `ngclass->context->container = context->container';
290         ie. the container we inflated into.
291
292         * metadata.c (mono_metadata_parse_generic_param): Reflect above
293         inflate_generic_type() changes.
294
295 2004-12-17  Martin Baulig  <martin@ximian.com>
296
297         * class-internals.h
298         (MonoGenericClass): Replaced `MonoType *generic_type' with
299         `MonoClass *generic_class'.  Removed `dynamic_info'; if
300         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
301         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
302
303 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
304
305         * exception.c (mono_exception_from_token): New helper function.
306
307 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
308
309         * assembly.c (mono_assembly_load_with_partial_name): Call 
310         mono_assembly_loaded before invoking the preload hooks. Fixes
311         #70564.
312
313         * object-internals.h (MonoThread): Change culture_info and 
314         ui_culture_info into an array.
315
316         * threads.c: Cache culture info objects from more than one appdomain.
317
318         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
319         current UI culture.
320
321 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
322
323         * threads.h threads.c appdomain.c: Clear the culture_info field of
324         all threads during unloading if they point to an object in the dying
325         appdomain.
326
327 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
328
329         * culture-info.h (TextInfoEntry): New struct
330         * object-internals.h: sync with managed
331         * locales.c: fill the `text_info_data' field
332         * culture-info-tables.h: update
333
334 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
335
336         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
337         collector.
338
339 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
340
341         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
342         (ves_icall_ModuleBuilder_getMethodToken): Ditto
343
344 2004-12-12  Martin Baulig  <martin@ximian.com>
345
346         * mono-debug-debugger.c (write_type): If we're an enum and the
347         builtin types have already been initialized, call mono_class_init().
348
349 2004-12-11  Martin Baulig  <martin@ximian.com>
350
351         * metadata.c (mono_metadata_load_generic_params): Added
352         `MonoGenericContainer *parent_container' argument; automatically
353         compute `container->is_method'; pass the correct owner to
354         get_constraints().      
355
356         * reflection.c (compare_genericparam): Sort the GenericParam table
357         according to increasing owners. 
358
359 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
360
361         * profiler.c: allow disabling the default profiler.
362
363 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
364
365         * decimal.c, icall.c: allow disabling System.Decimal support.
366
367 2004-12-09  Marek Safar <marek.safar@seznam.cz>
368
369         * reflection.c: Add support for null attribute arguments.
370
371 2004-12-09  Martin Baulig  <martin@ximian.com>
372
373         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
374         names to get rid of compiler warnings.
375
376 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
377
378         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
379         mono_marshal_load_type_info (). Fixes #69625.
380         (mono_marshal_get_ptr_to_struct): Likewise.
381
382 2004-12-08  Martin Baulig  <martin@ximian.com>
383
384         * mono-debug.h: Bumped version number to 47.
385
386         * mono-debug-debugger.c
387         (mono_debugger_event_handler, mono_debugger_event): Take two
388         guint64 arguments insteed of a gpointer and a guint32.  
389
390 2004-12-08  Martin Baulig  <martin@ximian.com>
391
392         * debug-mono-symfile.h
393         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
394         `address' to `native_offset'.
395
396 2004-12-08  Martin Baulig  <martin@ximian.com>
397
398         * class.c (mono_class_create_from_typespec): Only inflate if we
399         either have `context->gclass' or `context->gmethod'.
400
401 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
402
403         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
404
405         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
406
407         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
408
409         * reflection.c (mono_assembly_get_object): Remove the workaround put
410         in for the release.
411         
412         * appdomain.c: Use the corlib_internal field from MonoAssembly.
413
414         * appdomain.c: Bump corlib version.
415
416         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
417         be visible in other appdomains.
418
419 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
420
421         * threads.c: Interlocked inc and dec for longs were messed up,
422         use a KISS based impl for this. Fixes 70234
423
424 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
425
426         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
427
428 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
429
430         * icall.c: fix to follow policy not to allow struct
431         arguments in icalls.
432
433 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
434
435         * process.c: make the patch that handles spaces in file paths work
436         on mono/windows too.
437
438 2004-12-06  Martin Baulig  <martin@ximian.com>
439
440         * class.c (mono_class_create_generic): Call
441         mono_class_setup_supertypes() if we're dynamic.
442         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
443
444 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
445
446         * object-internals.h: Add new fields to MonoThread.
447
448         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
449
450         * icall.c threads-types.h threads.c: Add new icalls.
451
452         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
453
454         * object-internals.h (MonoReflectionAssembly): Sync object layout with
455         managed side.
456
457         * appdomain.c: Bump corlib version.
458
459         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
460         internal assemblies. Fixes #69181.
461
462 2004-12-05  Martin Baulig  <martin@ximian.com>
463
464         * class.c (mono_class_inflate_generic_signature): Make this a
465         no-op if `context' is NULL or we don't have any type parameters;
466         also copy `sentinelpos'.        
467
468 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
469
470         * image.c: Add unbox_wrapper_cache.
471
472         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
473
474         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
475         function generator.
476         
477         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
478         Fixes #70173.
479
480         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
481         
482 2004-12-04  Martin Baulig  <martin@ximian.com>
483
484         * loader.c (mono_method_get_signature_full): New public function;
485         like mono_method_get_signature(), but with an additional
486         `MonoGenericContext *' argument.
487
488         * class.c (mono_class_inflate_generic_signature): Formerly known
489         as inflate_generic_signature(); make this public.
490
491 2004-12-04  Martin Baulig  <martin@ximian.com>
492
493         * metadata.c
494         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
495         instead of a `MonoGenericContainer *'.  
496         (mono_metadata_parse_array_full): Likewise.
497         (mono_metadata_parse_signature_full): Likewise.
498         (mono_metadata_parse_method_signature_full): Likewise.
499         (mono_metadata_parse_generic_inst): Likewise.
500         (mono_metadata_parse_generic_param): Likewise.
501         (mono_metadata_parse_mh_full): Likewise.
502         (mono_type_create_from_typespec_full): Likewise.
503
504 2004-12-03  Martin Baulig  <martin@ximian.com>
505
506         * class-internals.h (MonoGenericContainer): Replaced the
507         `MonoGenericContext * pointer with a `MonoGenericContext'
508         structure and made it the first element.
509
510 2004-12-03  Martin Baulig  <martin@ximian.com>
511
512         * class.c
513         (inflate_generic_type): Set the `context->container' when creating
514         a new MonoGenericContext.
515         (mono_class_inflate_generic_method): Likewise.
516         (mono_class_create_from_typespec): Just use `context->container'
517         to get the container.
518
519         * loader.c (method_from_methodspec): Set `context->parent' from
520         `context->container' - and if that's a method container, use its
521         parent.  Also set the `context->container' when creating a new
522         MonoGenericContext.
523         (mono_get_method_from_token): Use just `context->container' to get
524         the container.
525
526         * metadata.c (do_mono_metadata_parse_generic_class): Also set
527         `gclass->context->container'.
528
529         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
530         the `context->container' when creating a new MonoGenericContext.
531
532 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
533
534         * reflection.c (compare_genericparam): Sort params with identical
535         owner by their number. Fixes gen-111 on sparc.
536
537 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
538
539         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
540         around the domain changes.
541
542         * appdomain.c (mono_domain_unload): Handle the case when the thread
543         calling Unload is itself being aborted during unloading. Fixes #70022.
544
545         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
546
547         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
548         checkpoint_func as an icall so it gets a wrapper.
549         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
550         in the cross-appdomain wrappers too.
551
552         * threads.c (mono_thread_has_appdomain_ref): Make this public.
553
554         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
555
556         * reflection.c: Fix some memory leaks.
557         
558 2004-12-02  Martin Baulig  <martin@ximian.com>
559
560         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
561
562         * metadata.c (generic_class_cache): New static hashtable.
563         (mono_metadata_lookup_generic_class): New public method.
564
565 2004-12-02  Martin Baulig  <martin@ximian.com>
566
567         * class.c (mono_class_create_from_typedef): Call
568         mono_class_setup_parent() and mono_class_create_mono_type() before
569         parsing the interfaces.
570
571 2004-12-02  Martin Baulig  <martin@ximian.com>
572
573         * metadata.c (generic_inst_cache): New static hashtable.
574         (mono_metadata_lookup_generic_inst): New public function.
575         (mono_metadata_inflate_generic_inst): New public function.
576         (mono_metadata_parse_generic_inst): New public function.
577         (do_mono_metadata_parse_generic_class): Use the new
578         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
579         since this'll also use the cache.
580
581         * reflection.c (mono_reflection_bind_generic_method_parameters):
582         Use mono_metadata_lookup_generic_inst() to use the new cache.
583
584         * class.c (inflate_mono_type): Use
585         mono_metadata_inflate_generic_inst() to inflate a generic
586         instance; this'll also use the new cache.
587
588         * loader.c (method_from_methodspec): Use
589         mono_metadata_parse_generic_inst() and
590         mono_metadata_inflate_generic_inst() rather than parsing it
591         manually, so we can use the new cache.
592
593 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
594
595         * threads.c (wait_for_tids): Do not incorrectly free threads when 
596         the wait times out.
597
598 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
599
600         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
601         iter->args based on whether parameters are passed in registers (i.e.
602         MONO_ARCH_REGPARMS is defined)
603
604 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
605
606         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
607         the exception message. Fixes #70070.
608         (method_from_methodspec): Fix warnings.
609
610 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
611
612         * process.c: (complete_path) return the path quoted
613
614 2004-12-01  Martin Baulig  <martin@ximian.com>
615
616         * class-internals.h (MonoGenericInst): New structure.
617         (MonoGenericClass): Replaced `type_argc', `type_argv' and
618         `is_open' with `MonoGenericInst *inst'.
619         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
620         `is_open' with `MonoGenericInst *inst'.
621
622 2004-11-30  Martin Baulig  <martin@ximian.com>
623
624         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
625
626         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
627         to `generic_class_cache'.
628
629         * metadata.c
630         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
631         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
632         (mono_generic_inst_is_valuetype): Renamed to
633         mono_generic_class_is_valuetype().
634
635         * class-internals.h
636         (MonoGenericInst): Renamed to MonoGenericClass.
637         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
638         (MonoClass): Renamed `generic_inst' to `generic_class'.
639         (MonoGenericContext): Renamed `ginst' to `gclass'.
640
641         * object-internals.h
642         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
643
644         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
645         mono_reflection_generic_class_initialize().
646
647         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
648         now known as "System.Reflection.MonoGenericClass".
649         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
650
651 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
652
653         * class-internals.h: Added a flag field to MonoClass to cache the
654         declarative security attributes actions associated with the class.
655         * domain-internals.h: Added booleans to MonoJitInfo to cache the
656         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
657         applicable to the JITted method.
658         * reflection.c|h: Added functions to extract (as flags) which security
659         actions are available (declaratively) for a method, class or assembly.
660         * metadata.c|h: Added functions to search the declarative security
661         table in the metadata.
662         
663 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
664
665         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
666         EXPORTEDTYPES are already in the class name cache, so there is no
667         need to add extra code here to look at them. Just removes a bit of
668         cruft.
669
670         (ves_icall_System_Environment_get_TickCount): No need for #if
671         WINDOWS. We already have the code in io-layer.
672
673 2004-11-28  Martin Baulig  <martin@ximian.com>
674
675         * loader.c
676         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
677         Fixes gen-112.cs.
678
679 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
680
681         * assembly.c (do_mono_assembly_open): Instead of having a
682         conditional WITH_BUNDLE, incorporate support for bundles here, by
683         having a global `bundles' variable holding a pointer to the actual
684         bundles. 
685
686         (mono_register_bundled_assemblies): New API call used by the
687         bundle code. 
688
689         See mkbundle.1 for details.
690         
691 2004-11-27  Martin Baulig  <martin@ximian.com>
692
693         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
694         the vtable for generic methods.
695
696 2004-11-26  Martin Baulig  <martin@ximian.com>
697
698         * metadata.c
699         (mono_metadata_generic_method_hash): New public function.
700         (mono_metadata_generic_method_equal): Likewise.
701
702         * class-internals.h
703         (MonoGenericContainer): Added `GHashTable *method_hash'.
704
705         * reflection.c (ReflectionMethodBuilder): Added
706         `MonoGenericContainer *generic_container'.
707         (reflection_methodbuilder_to_mono_method): Don't create a new
708         MonoGenericContainer each time we're called.
709         (mono_reflection_bind_generic_method_parameters): Use
710         `container->method_hash' to cache the results so we don't create a
711         different method if we're called several times with the same
712         arguments.
713
714         * loader.c (method_from_methodspec): Use the new
715         `container->method_hash' here, too.
716
717 2004-11-26  Martin Baulig  <martin@ximian.com>
718
719         * class.c (inflate_generic_signature): Correctly compute
720         `res->has_type_parameters'.
721         (mono_class_vtable): Use the `has_type_parameters' flag to
722         determine whether we're a generic method.
723
724         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
725
726 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
727
728         * object.c (mono_runtime_run_main): Fix a small memory leak.
729
730 2004-11-25  Martin Baulig  <martin@ximian.com>
731
732         * class.c (set_generic_param_owner): Fixed the loop.
733
734 2004-11-25  Martin Baulig  <martin@ximian.com>
735
736         * object.c (mono_class_vtable): Don't create any JIT wrappers for
737         generic methods.
738
739 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
740
741         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
742         names. Fixes #69787.
743
744 2004-11-24  Martin Baulig  <martin@ximian.com>
745
746         * class.c (mono_class_create_generic_2): If we don't have a
747         `ginst->parent', inflate `gklass->parent' to get our parent.
748
749 2004-11-24  Martin Baulig  <martin@ximian.com>
750
751         * reflection.c (compare_genericparam): Correctly sort the
752         GenericParam table; fixes #69779.
753
754 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
755
756         * reflection.c: When writing a PE file, don't create a huge
757         buffer in memory. Just write the arrays we have to the file.
758         This reduces memory usage.
759
760         * metadata-internals.h: MonoDynamicStream pefile is no longer used
761         globally.
762
763 2004-11-17  Martin Baulig  <martin@ximian.com>
764
765         * class.c (mono_class_init): Don't setup `class->parent' for
766         dynamic instances; moved this to mono_class_generic_2().
767         (mono_class_create_generic): Also set `klass->inited' for dynamic
768         generic instances.
769         (mono_class_create_generic_2): Don't do anything for dynamic
770         generic instances.  Set `klass->parent' here and also call
771         mono_class_setup_parent() here. 
772
773         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
774         `MonoType *parent' argument; set `ginst->parent' before calling
775         mono_class_create_generic_2(), so we set the correct parent.
776
777 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
778
779         * reflection.c: allow getting attributes from ModuleBuilder
780         (used by ikvm).
781
782 2004-11-17  Martin Baulig  <martin@ximian.com>
783
784         * class.c (mono_class_create_from_typedef): If a type parameter is
785         inherited from an outer class, set its owner to that class.
786
787 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
788
789         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
790           for (int*) written size. This fixes bug #69592.
791
792 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
793
794         * icall.c: Added IsAuthenticodePresnet internal call.
795         * image.c|h: New function that check a MonoImage for an Authenticode
796         signature in the certificate PE data directory.
797         * security.c|h: New internal call to ask the runtime if an 
798         Authenticode signature seems referenced in the PE header.
799
800 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
801
802         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
803
804         * reflection.c (mono_image_create_pefile): Free the assembly streams
805         after writing out the assembly file.
806
807         * object.c (mono_runtime_run_main): Fix small memory leak.
808
809         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
810         property access modifiers. Fixes #69389.
811
812 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
813
814         * domain.c, object.c, object-internals.h, domain-internals.h,
815         object.h, marshal.c: keep dynamic code info per domain.
816
817 2004-11-15  Martin Baulig  <martin@ximian.com>
818
819         * class.c (mono_type_get_name_recurse): Put type arguments in
820         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
821         see bug #68387.
822
823 2004-11-15  Martin Baulig  <martin@ximian.com>
824
825         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
826         (mono_class_setup_vtable): When computing `the_cname' for a
827         generic instance, don't include the namespace since we'd otherwise
828         add it twice.
829
830 2004-11-15  Martin Baulig  <martin@ximian.com>
831
832         * class.c (mono_class_create_generic): Changed return type to void.
833         (mono_class_create_generic_2): New public function; setup
834         `class->method', `class->field' and `class->interfaces' here
835         instead of in mono_class_init().
836
837         * class.h (mono_class_create_generic): Moved to class-internals.h.
838
839 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
840
841         * reflection.c (mono_image_create_pefile): take a file HANDLE.
842         rather than writing to memory, write to this file. Right now,
843         we are just writting into a buffer, and copying that. However
844         we can avoid the buffer later.
845
846         (mono_dynamic_stream_reset): new function
847
848         * icall.c, object-internals.h: update for the above.
849
850 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
851
852         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
853         have been using gc'd memory. First it is slower, unlikely
854         the comment in the source code said, secondly, it increases
855         our footprint to do it in the gc.
856
857         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
858         the method so that it does not have to copy to managed code.
859
860 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
861
862         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
863
864 2004-11-12  Martin Baulig  <martin@localhost>
865
866         * reflection.c (mono_image_create_token): Allow generic method
867         definitions here, since they may appear in an `.override'; see
868         gen-98/gen-99 for an example.
869
870 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
871
872         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
873         #69365.
874
875         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
876         descriptive.
877
878 2004-11-11  Martin Baulig  <martin@ximian.com>
879
880         * class.c (mono_class_setup_vtable): In an explicit interface
881         implementation, the method name now includes the arity.
882
883 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
884
885         * object.c (mono_array_full_copy): Fix warning.
886
887 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
888
889         * appdomain.c: Removed look_for_method_by_name(). Use the new method
890         mono_class_get_method_from_name() instead.
891         
892         * class-internals.h: Added two new types of wrappers. 
893         Added MonoRemotingTarget enum. Added new trampoline function type, which
894         takes an additional MonoRemotingTarget value as parameter, so it is
895         possible to request a trampoline for a specific target.
896         
897         * class.c: Added new mono_class_get_method_from_name() method.
898         
899         * class.h: In MonoRemoteClass, we can have now to vtables, one for
900         general remoting sinks and one specific for cross domain calls.
901         
902         * debug-helpers.c: Added new wrapper names.
903         
904         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
905         of a remote class.
906         
907         * image.c: Porperly delete value objects form the remoting invoke hashtable.
908         
909         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
910         with several other methods (mono_marshal_get_xappdomain_dispatch,
911         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
912         and others) can generate a fast remoting wrapper for cross domain calls.
913         More information can be found in docs/remoting.
914         Other changes: Removed mono_find_method_by_name, and used
915         mono_class_get_method_from_name instead.
916         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
917         is stored in the remoting invoke hashtable.
918         
919         * marshal.h: published the new method for getting the xdomain wrapper,
920         and also added a method for getting the adequate wrapper for a given
921         method and target.
922         
923         * object-internals.h, object.c: Added a couple of methods for capying and
924         cloning arrays.
925         Modified mono_install_remoting_trampoline, which takes the new remoting
926         trampoline that has a remoting target as parameter.
927         mono_class_proxy_vtable now also takes a remoting target as parameter, and
928         will return the most suitable vtable for the target.
929         Added mono_remote_class_vtable, which returns the vtable of a remote class
930         (which can be the normal remoting vtable or the xdomain vtable).
931         
932         * threads.c: the xdomain invoke and dispatch wrappers must also be
933         protected against interruptions.
934
935 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
936
937         * icall.c: use memmove in BlockCopyInternal when the source and
938         destination arrays are the same.
939
940 2004-11-09  Martin Baulig  <martin@ximian.com>
941
942         * class-internals.h (MonoGenericContainer): Removed `method' and
943         `signature', replaced them with `is_method' and `is_signature'
944         flags.  Added `context'.
945
946         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
947         instead of a `MonoGenericContainer *'.
948
949         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
950         for dynamic type parameters.
951         (mono_metadata_load_generic_params): Setup `container->context'.
952
953         * reflection.c (mono_reflection_setup_generic_class): Setup
954         `tb->generic_container->context'.
955         (do_mono_reflection_bind_generic_parameters): Use
956         mono_class_inflate_generic_type() to correctly inflate types,
957         rather than using our own hack just for MONO_TYPE_VAR.
958
959 2004-11-09  Martin Baulig  <martin@ximian.com>
960
961         * class.c (mono_class_inflate_generic_method): Small fix; don't
962         crash here.
963
964         * icall.c
965         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
966         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
967         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
968         (ves_icall_Type_BindGenericParameters): Likewise.
969         (ves_icall_Type_get_IsGenericInstance): Likewise.
970         (ves_icall_Type_GetGenericParameterPosition): Likewise.
971         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
972         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
973         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
974
975 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
976
977         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
978         assembly versions and public key tokens. Fixes #69113.
979
980 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
981
982         * metadata.c: fix bug introduced with the type cache changes
983         on 2004-11-06.
984
985 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
986
987         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
988         the MonoClass pointer instead of the token in exception clauses.
989         * reflection.c: updates for the above and make the code not depend
990         on the structure of MonoExceptionClause.
991
992 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
993
994         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
995         Add support for dynamic assemblies. Fixes #69114.
996
997         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
998
999 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
1000
1001         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
1002         since most only those methods use it. the code member of
1003         MonoMethodPInvoke was dead, so that can be removed too. Also,
1004         remove inline_count (again, not used), and move slot so that it
1005         can share bits with some other flags. This saves 8 bytes in the
1006         structure and gives us about 50 kb back for mcs helloworld.cs
1007
1008         * *.[ch]: Do naming changes for the above.
1009
1010         * loader.c (mono_method_get_header): Lazily init the header
1011         on first access.
1012         (mono_get_method_from_token): don't init the header here
1013         (mono_free_method): the header may never be allocated
1014
1015         Overall, this saves 150 kb of unmanaged allocations
1016         for mcs helloworld.cs. That accounts for 10% of the unmanaged
1017         memory at runtime.
1018         
1019         * loader.c, loader.h (mono_method_get_header): new accessor.
1020
1021         * *.[ch]: use the above method. Prepares us to lazily load
1022         the header.
1023
1024         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
1025         three warnings, which are actual bugs (see 69206).
1026
1027         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
1028         unused. Saves a cool 4 bytes / method.
1029
1030 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
1031
1032         * metadata.c (builtin_types): Add types for System.Object here.
1033         (mono_metadata_parse_type_full): Cache MonoType*'s that are
1034         for a class or valuetype from klass->this_arg or klass->byval_arg.
1035
1036         On mcs for a hello world, this gets us down from 21836 MonoType's
1037         to 14560.
1038
1039         (mono_metadata_free_type): Account for the above change.
1040
1041 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
1042
1043         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
1044         exception instead of asserting if name is null.
1045         (ves_icall_System_AppDomain_GetData): Ditto.
1046
1047 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
1048
1049         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
1050         EnumBuilder.
1051
1052         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
1053         Return NULL when the domain does not have entry_assembly set.
1054
1055         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
1056         Add a 'resource_modules' argument.
1057         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
1058
1059         * reflection.c (mono_reflection_create_runtime_class): Move setting
1060         of wastypebuilder here, so mono_get_type_object () returns a MonoType
1061         for enums too.
1062
1063         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
1064         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
1065         Throw an ArgumentNullException if 'ptr' is null.
1066
1067         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
1068         assemblies here. Fixes #69020.
1069
1070 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
1071
1072         * reflection.c (build_compressed_metadata): Fix the previous patch for
1073         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
1074         the stack.
1075
1076 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
1077
1078         * assembly.c (mono_assembly_names_equal): Allow a match if one of
1079         the cultures is false. Fixes #69090.
1080
1081         * reflection.c (build_compressed_metadata): Fix invalid memory read 
1082         detected by valgrind.
1083         
1084         * reflection.c (mono_reflection_get_type): Avoid triggering a 
1085         TypeResolve multiple times for the same type. Fixes #65577.
1086
1087 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
1088
1089         * marshal.c: Avoid using ldftn to call managed functions. It is
1090         much slower than just a call.
1091
1092         * reflection.c (mono_module_get_object): free the basename we
1093         allocate here from glib.
1094         
1095         * reflection.c (ensure_runtime_vtable): make sure to free
1096         overrides.  Also, we were allocating an array of MonoMethod not an
1097         array of MonoMethod*.
1098
1099         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
1100
1101         * image.c (mono_image_close): free image->guid here.
1102
1103 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
1104
1105         * reflection.c: Fix some spec conformance issues with the PE file
1106         structures so mcs compiled apps run on the Net 2.0 beta.
1107
1108 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
1109
1110         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
1111         Implement this. Fixes #67264.
1112
1113         * debug-helpers.h debug-helpers.c marshal.c: Move 
1114         mono_find_method_by_name to debug-helpers.c.
1115
1116 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
1117
1118         * object.c (mono_release_type_locks): type_initialization_hash is
1119         a GHashTable.
1120
1121         * reflection.c object.c object-internals.h: Fix warnings.
1122
1123         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
1124         without accessors. Fixes #61561.
1125
1126         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
1127         application base from the root domain if not set. Fixes #65641.
1128         (mono_runtime_init): Fix warning.
1129
1130 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1131
1132         * appdomain.c: call mono_thread_pool_init.
1133         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1134         of worker threads based on the number of CPUs and the environment
1135         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1136         for non-windows (windows) systems.
1137
1138 2004-10-27  Chris Toshok  <toshok@ximian.com>
1139
1140         * mono-debug-debugger.c (write_class): don't call mono_class_init
1141         here, as even with the check for (!klass->init_pending), we get
1142         into a situation where we're hitting cycles in class
1143         initialization.  Fixes #68816.
1144
1145 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1146
1147         * image.c: Avoid overwriting values in the loaded_images_hash when an
1148         assembly is loaded multiple times. Fixes #61152.
1149
1150         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1151         so multiple satellite assemblies for the same name can be loaded.
1152         Fixes #68259.
1153
1154         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1155         not NULL.
1156
1157         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1158         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1159
1160         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1161         pending finalizers are not invoked after the appdomain has been 
1162         unloaded. Fixes #67862.
1163
1164 2004-10-22  Martin Baulig  <martin@ximian.com>
1165
1166         * mono-debug-debugger.c
1167         (mono_debugger_runtime_invoke): Don't box valuetypes.
1168
1169 2004-10-22  Chris Toshok  <toshok@ximian.com>
1170
1171         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1172         don't hide private methods.
1173
1174 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1175
1176         * icall.c: Allows the runtime to "share" (when known) the public key
1177         token of an assembly. This avoid the need to recalculate the token 
1178         (from the public key) in managed code.
1179
1180 2004-10-21  Chris Toshok  <toshok@ximian.com>
1181
1182         * debug-helpers.c (append_class_name): argh, revert last patch.
1183         
1184 2004-10-21  Chris Toshok  <toshok@ximian.com>
1185
1186         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1187         not '/', so that it matches what the debugger uses to look up
1188         methods.
1189
1190 2004-10-21  Martin Baulig  <martin@ximian.com>
1191
1192         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1193         public method; this is called each time an exception is thrown and
1194         allows the debugger to use exception catch points.
1195
1196 2004-10-21  Martin Baulig  <martin@ximian.com>
1197
1198         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1199         the stack pointer and the exception object in some struct and pass
1200         that to the debugger.
1201
1202 2004-10-21  Chris Toshok  <toshok@ximian.com>
1203
1204         * mono-debug-debugger.c (do_write_class): add instance/static
1205         event support.  We don't expose "raise" or "other" yet.
1206         (event_is_static): new method.
1207
1208 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1209
1210         * mono-debug-debugger.c
1211         (mono_debugger_handle_exception): Remove
1212         bogus return value for fussy compilers.
1213
1214 2004-10-20  Martin Baulig  <martin@ximian.com>
1215
1216         * mono-debug-debugger.c
1217         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1218         (mono_debugger_handled_exception): Likewise.
1219
1220 2004-10-20  Martin Baulig  <martin@ximian.com>
1221
1222         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1223         MONO_DEBUGGER_EVENT_EXCEPTION.
1224
1225         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1226         public function to send the debugger a notification for an
1227         exception and inform it about a catch/finally clause.
1228
1229 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1230
1231         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1232         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1233         fix 2.95 build. 
1234
1235         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1236
1237 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1238
1239         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1240         marshalled as [In,Out]. Fixes #58325.
1241
1242 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1243
1244         * reflection.c (mono_method_body_get_object): Implement some fields.
1245
1246 2004-10-12  Martin Baulig  <martin@ximian.com>
1247
1248         * reflection.c (mono_reflection_bind_generic_parameters): Small
1249         fix, correctly retrieve our parent from a generic instance.
1250
1251 2004-10-12  Martin Baulig  <martin@ximian.com>
1252
1253         * metadata.c (mono_metadata_generic_param_equal): We always have
1254         an owner.
1255
1256         * class.c
1257         (mono_class_from_generic_parameter): We need to have an owner.
1258         (my_mono_class_from_generic_parameter): Likewise.
1259
1260         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1261         mono_reflection_create_generic_class() and added a new
1262         mono_reflection_setup_generic_class().  
1263         (mono_reflection_initialize_generic_param): If we're a nested
1264         generic type and inherited from the containing class, set our
1265         owner to the outer class.
1266
1267 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1268
1269         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1270
1271         * reflection.c (mono_method_body_get_object): New function to create
1272         a MethodBody object.
1273
1274         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1275
1276 2004-10-11  Martin Baulig  <martin@ximian.com>
1277
1278         * metadata.c (_mono_metadata_type_equal): Renamed to
1279         do_mono_metadata_type_equal() and made static.
1280
1281 2004-10-11  Martin Baulig  <martin@ximian.com>
1282
1283         * appdomain.c: Bump corlib version number to 28.
1284
1285 2004-10-10  Martin Baulig  <martin@ximian.com>
1286
1287         * class-internals.h
1288         (MonoGenericInst): Added `MonoGenericContainer *container'.
1289         (MonoGenericMethod): Likewise.
1290         (MonoGenericContext): Likewise.
1291         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1292
1293         * metadata.c
1294         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1295         (do_mono_metadata_parse_generic_inst): Likewise.
1296         (mono_metadata_parse_type_full): New public method.  This is the actual
1297         mono_metadata_parse_type() implementation - with an additional
1298         `MonoGenericContainer *' argument.
1299         (mono_metadata_parse_array_full): Likewise.
1300         (mono_metadata_parse_signature_full): Likewise.
1301         (mono_metadata_parse_method_signature_full): Likewise.
1302         (mono_metadata_parse_mh_full): Likewise.
1303         (mono_type_create_from_typespec): Likewise.
1304         (mono_metadata_interfaces_from_typedef_full): New public method;
1305         this is similar to the other _full() methods, but we take a
1306         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1307         (mono_metadata_parse_generic_param): Take an additional
1308         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1309         from that container.
1310         (mono_metadata_generic_param_equal): New static method to compare
1311         two type parameters.
1312         (_mono_metadata_type_equal): New static method; takes an
1313         additional `gboolean signature_only' argument - if true, we don't
1314         compare the owners of generic parameters.
1315         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1316         with a TRUE argument - do a signature-only comparision.
1317
1318         * loader.c: Use the new _full() methods and pass the
1319         MonoGenericContainer to them.
1320
1321         * object-internals.h (MonoReflectionTypeBuilder): Added
1322         `MonoGenericContainer *generic_container' field.
1323         (MonoReflectionMethodBuilder): Likewise.
1324
1325 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1326
1327         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1328         case initial images of dynamic assemblies.
1329
1330         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1331
1332         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1333
1334         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1335         length of event->other array.
1336         (typebuilder_setup_events): Ditto.
1337
1338         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1339         'assembly_by_name' and add an 'assemblies' list.
1340
1341         * assembly.h assembly.c: Add a new search hook for determining whenever
1342         an assembly is already loaded. Use this instead of searching in the
1343         loaded_assemblies list.
1344
1345         * domain.c appdomain.c: Implement the new search hook so loaded 
1346         assemblies are now scoped by appdomain. Fixes #67727.
1347
1348 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1349
1350         * threads.c (mono_thread_attach): Initialize synch_lock field so
1351         mono_thread_detach works again.
1352
1353         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1354         'lib' too. Fixes #63130.
1355
1356 2004-10-06  Jackson Harper  <jackson@ximian.com>
1357
1358         * culture-info-tables.h: regenerated.
1359
1360 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1361
1362         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1363         implemented by other interfaces in the result. Fixes #65764.
1364         
1365         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1366         Handle unloadable modules without crashing.
1367
1368         * image.c (load_modules): Revert the previous patch since modules must
1369         have a fixed index inside the array.
1370         
1371         * image.c (load_modules): Don't include native modules in the modules
1372         array.
1373
1374 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1375
1376         * reflection.h: Add param_defaults field.
1377
1378         * reflection.c: Add support for parameter defaults in dynamic methods.
1379         Fixes #64595.
1380
1381         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1382         an empty string when a type has no namespace. Fixes #64230.
1383
1384 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1385
1386         * tabledefs.h: Added "internal" security actions to support non-CAS
1387         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1388         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1389
1390 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1391
1392         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1393         constructor of abstract class. Fixes #61689.
1394
1395 2004-10-04  Martin Baulig  <martin@ximian.com>
1396
1397         * class-internals.h (MonoGenericContainer): New type.
1398         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1399         `MonoGenericContainer *generic_container'.
1400         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1401         `MonoGenericContainer *generic_container'.
1402
1403         * metadata.c (mono_metadata_load_generic_params): Return a
1404         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1405         removed the `num' argument.
1406
1407 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1408
1409         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1410         for dynamic images.
1411
1412         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1413         machine fields.
1414
1415         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1416
1417         * reflection.c: Save pe_kind and machine values into the generated
1418         image file.
1419
1420         * appdomain.c: Bump corlib version number.
1421
1422         * object-internals.h: Reorganize layout of LocalBuilder.
1423
1424         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1425         New helper function.
1426
1427         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1428         created MonoType for dynamic types. Fixes #66180.
1429
1430 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1431
1432         * threadpool.c: the ares hashtable needs a critical section around it.
1433         this prevents some nasty segfaults
1434
1435 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1436
1437         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1438         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1439         bug 67324).
1440         
1441 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1442
1443         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1444         
1445 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1446
1447         * image.c: Always canonicalize image file names, to avoid loading
1448         the same assembly twice when referenced using a relative path.
1449
1450 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1451
1452         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1453
1454         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1455
1456         * marshal.c: Fix warnings.
1457
1458 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1459
1460         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1461         attempting to marshal the delegate_trampoline as the method_addr.
1462         This patch has a static hashtable of marshalled delegates so that 
1463         we can map delegate_trampoline addresses back to delegates.  This
1464         allows a delegate passed to managed code to be passed back into native
1465         code.  Fixes #67039
1466
1467 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1468
1469         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1470
1471         * reflection.c (method_encode_code): Align method headers properly.
1472         Fixes #66025.
1473
1474 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1475
1476         * marshal.c: In the runtime invoke wrapper, reset the abort
1477         exception if it is cached. This avoids the automatic rethrowal of 
1478         the exception after the catch of the wrapper. Also check for pending
1479         interruptions before calling the managed method. This is done using
1480         the new method emit_thread_force_interrupt_checkpoint, since the
1481         normal checkpoint method is ignored when running the invoke wrapper.
1482         * object.c: If the abort exception is rethrown, set the abort_exc
1483         field of the thread, so it will be rethrown aftere every catch.
1484         * threadpool.c: Only run an interruption checkpoint if what has been
1485         requested is a stop of the thread (aborts will be ignored).
1486         * threads.c: By default, a thread will now never be interrumped while
1487         running the runtime invoke wrapper (this ensures that runtime_invoke
1488         will always return to the caller if an exception pointer is provided).
1489         There is a new special method mono_thread_force_interruption_checkpoint()
1490         to force an interruption checkpoint even if running a protected
1491         wrapper, which is used by the same runtime invoke wrapper to do a check
1492         at a safe point.
1493
1494 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1495
1496         * object.c, object-internals.h: Implemented mono_release_type_locks,
1497         which releases the cctor locks held by a thread.
1498         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1499         by a thread. Added mono_thread_exit() method to be used to safely stop
1500         a thread.
1501
1502 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1503
1504         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1505         Move null check before dereference.  Avoid indexing beyond the end
1506         of the 'modules' array.
1507
1508 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1509
1510         * metadata-internals.h (MonoImage): Add module_count field.
1511         * image.c (load_modules): Set image->module_count.
1512         (mono_image_load_file_for_image): Use image->module_count.
1513         * reflection.c (mono_image_load_module): Append to image->modules array 
1514         of dynamic assembly.
1515         (mono_module_get_object): Fix loop to actually increment index.
1516         Use image->module_count.
1517         * assembly.c (mono_assembly_load_references): Use image->module_count.
1518         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1519         Likewise.
1520
1521 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1522
1523         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1524         Avoid assert on generic types.
1525
1526 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1527
1528         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1529
1530         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1531
1532         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1533         function to convert a MarshalSpec structure to its managed counterpart.
1534
1535         * reflection.c: Fix warnings.
1536         
1537         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1538         field.
1539
1540         * icall.c (mono_create_icall_signature): Fix build.
1541
1542 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1543
1544         * icall.c: Add MakePointType icall.
1545
1546         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1547         warnings.
1548
1549 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1550
1551         * threadpool.c: reuse allocated slots in the queue.
1552
1553 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1554
1555         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1556
1557         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1558
1559         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1560         previous change.
1561
1562         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1563         ThrowOnUnmappableChar.
1564
1565         * icall.c (ves_icall_Type_GetPacking): New icall.
1566
1567 2004-09-24  Martin Baulig  <martin@ximian.com>
1568
1569         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1570
1571 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1572
1573         * appdomain.c:
1574         (mono_domain_set): allow setting a domain that is being unloaded.
1575         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1576         being unloaded.
1577
1578 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1579
1580         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1581         the GetCustomAttributes icall.
1582
1583 2004-09-23  Martin Baulig  <martin@ximian.com>
1584
1585         * object-internals.h (MonoReflectionGenericParam): Replaced
1586         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1587         with `guint32 attrs'.
1588
1589 2004-09-23  Martin Baulig  <martin@ximian.com>
1590
1591         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1592
1593 2004-09-23  Martin Baulig  <martin@ximian.com>
1594
1595         * object-internals.h (GenericParameterAttributes): New enum.
1596
1597 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1598
1599         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1600         
1601         * class.c (init_events): Fill out event->other field.
1602
1603         * class.c: Fix warnings.
1604
1605         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1606
1607 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1608
1609         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1610         walk which doesn't supply the IL offset.
1611
1612 2004-09-22  Martin Baulig  <martin@ximian.com>
1613
1614         * reflection.c (mono_reflection_setup_internal_class): If we're
1615         System.ValueType, System.Object or System.Enum, set
1616         `klass->instance_size' and create the vtable.
1617         (mono_reflection_create_internal_class): If we're an enum type,
1618         get the base class from our current corlib.
1619
1620 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1621
1622         * reflection.h (MonoResolveTokenError): New type.
1623
1624         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1625         icall.
1626
1627         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1628
1629 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1630
1631         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1632         Support also calling constructors, but only for already allocated objects.
1633
1634 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1635
1636         * reflection.c (type_get_qualified_name): If the klass is null
1637         return the typename to avoid a NullRefEx.
1638         (encode_cattr_value): Get the qualified name of the boxed type,
1639         not the underlying enumtype.  Fixes #62984.
1640
1641 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1642
1643         * marshal.c: Fix problems with previous checkin.
1644
1645 2004-09-21    <vargaz@freemail.hu>
1646
1647         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1648         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1649
1650         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1651
1652 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1653
1654         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1655         should only return a type for pointers, arrays, and passbyref types.
1656         Fixes bug #63841.
1657
1658 2004-09-21  Martin Baulig  <martin@ximian.com>
1659
1660         * domain.c (mono_debugger_check_runtime_version): New public
1661         function.
1662
1663         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1664
1665 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1666
1667         * reflection.c: Added missing sort to the declarative security 
1668         attributes table. MS implementation stops seeing the attributes if the
1669         token number regress in the table (as shown by ildasm and permview).
1670
1671 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1672
1673         * object-internals.h (MonoReflectionModule): Add 'token' field.
1674         
1675         * reflection.c (mono_reflection_get_token): Add support for Module
1676         and Assembly.
1677         (mono_module_get_object): Set 'token' field.
1678         (mono_module_file_get_object): Set 'token' field.
1679
1680         * icall.c: Add new Assembly and Module icalls.
1681
1682         * appdomain.c: Bump corlib version.
1683
1684 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1685
1686         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1687         tokens of metadata objects.
1688
1689         * reflection.h reflection.c (mono_reflection_get_token): New function
1690         to obtain the token of a metadata object.
1691
1692         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1693
1694 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1695
1696         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1697         
1698         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1699
1700 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1701
1702         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1703         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1704         AssemblyBuilder to access the permissions set in the class lib.
1705         * reflection.c: Added security attributes encoding step in 
1706         mono_image_build_metadata.
1707         * tabledefs.h: Added new security actions defined in 2.0:
1708         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1709
1710 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1711
1712         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1713         macro parameter.
1714
1715 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1716  
1717         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1718           finalized. There where random SIGSEVs at program termination, when
1719           an object being finalized was trying to do a string comparison and
1720           the current culture was already finalized.
1721  
1722 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1723
1724         * threads.c: call thread_cleanup before finishing the thread if we get
1725         there.
1726
1727 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1728
1729         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1730         assemblies from the parent. Fixes #65665.
1731
1732 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1733
1734         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1735         modifiers.
1736
1737 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1738
1739         * reflection.h: add prototype for mono_get_dbnull_object
1740         * reflection.c: add prototypes for get_default_param_value_blobs 
1741         and mono_get_object_from_blob for fussier compilers
1742
1743 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1744  
1745         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1746         false deadlock checks in class initialization.
1747  
1748 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1749
1750         * image.c (mono_image_addref): Fix comment.
1751
1752         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1753         possible.
1754
1755 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1756
1757         * reflection.c (mono_param_get_objects): Modified to return
1758         ParameterInfo.DefaultValue object.
1759
1760         (get_default_param_value_blobs):
1761         (mono_get_object_from_blob):
1762         (mono_get_dbnull_object): New helper routines. 
1763
1764         * object.c (mono_get_constant_value_from_blob): New helper routine
1765         carved out from get_default_field_value ()
1766
1767         * object-internals.h (mono_get_constant_value_from_blob): Added
1768         function declaration.
1769
1770 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1771
1772         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1773         referenced assemblies. Fixes #62135.
1774
1775         * exception.h exception.c (mono_get_exception_file_not_found2): New
1776         helper function.
1777
1778 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1779
1780         * class.h class.c: Add mono_type_get_underlying_type ().
1781
1782 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1783
1784         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1785         Fix GetTypes() to support dynamically created assemblies.
1786
1787 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1788
1789         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1790         
1791         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1792         previous patch.
1793
1794         * reflection.h reflection.c loader.c: Allow dynamic construction of
1795         pinvoke methods. Fixes #65571.
1796         
1797         * reflection.c (mono_reflection_get_type): Revert previous change since
1798         it causes regressions.
1799
1800 2004-09-08  Martin Baulig  <martin@ximian.com>
1801
1802         * class.c (class_compute_field_layout): Don't call
1803         mono_class_layout_fields() for open generic instances.
1804
1805 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1806         * threads.c appdomain.c: fix typo in GC macro
1807
1808 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1809
1810         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1811         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1812
1813 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1814
1815         * image.c (mono_image_close): Applied patch from 
1816         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1817         assembly is loaded multiple times from data.
1818         
1819         * image.c (mono_image_open): Fix warning.
1820
1821 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1822
1823         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1824         once. Fixes #58334.
1825         
1826         * reflection.c (mono_reflection_create_runtime_class): Initialize
1827         klass->nested_classes. Fixes #61224.
1828
1829 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1830
1831         * threads.c: sched_yield() on exit, to allow threads to quit.
1832
1833 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1834
1835         * object.c (mono_unhandled_exception): Remove leftover debug code.
1836
1837 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1838
1839         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1840
1841 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1842
1843         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1844         
1845         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1846
1847 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1848
1849         * marshal.c (emit_marshal_array): Null terminate string arrays.
1850         
1851         * marshal.c (raise_auto_layout_exception): Fix warning.
1852
1853         * reflection.c (mono_param_get_objects): Initialize the default value
1854         with DBNull.Value, not null. Fixes #62123.
1855
1856 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1857
1858         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1859         throw an exception with a cute explanation.
1860
1861 2004-09-06  Dick Porter  <dick@ximian.com>
1862
1863         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1864         Close the new process's thread handle, as we don't use it.  The
1865         handle stays around forever otherwise.
1866
1867 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1868
1869         * object.c (arith_overflow): Fix warning.
1870
1871         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1872         calling conventions in method refs. Fixes #65352.
1873
1874         * reflection.c: Fix warnings.
1875
1876 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1877
1878         * icall.c: Add a new icall for Array.Clear
1879
1880 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1881
1882         * object.c: When allocating an array, we have to throw
1883         an overflow exception if any of the lengths are < 0.
1884
1885 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1886
1887         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1888         properly. Also move implementation of string array marshalling to 
1889         managed code. Fixes #42316.
1890
1891 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1892
1893         * assembly.c: provide more information when loading an assembly fails.
1894
1895 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1896
1897         * filewatcher.c: don't expect the development fam package to be
1898         installed.
1899
1900 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1901
1902         * marshal.c: Make a copy of the signature cookie since it will be
1903         freed by the caller.
1904         
1905         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1906
1907         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1908
1909         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1910         marshal specs.
1911
1912         * marshal.c: More refactoring.
1913         
1914         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1915         smaller functions.
1916
1917 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1918
1919         * object.c: In mono_message_invoke, fill the output parameter array after
1920           calling the managed method (it was done before the call). This fixes
1921           bug #59299.
1922
1923 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1924
1925         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1926         as well.
1927
1928 2004-09-02  Martin Baulig  <martin@ximian.com>
1929
1930         * class.c (mono_class_instance_size): Don't allow generic type
1931         definitions or open generic instances.
1932         (mono_class_array_element_size): If we're a value type, call
1933         mono_class_instance_size() on the original class.
1934
1935         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1936         handle generic instances.
1937
1938         * mono-debug-debugger.c (write_type): Handle generic instances
1939         like classes.
1940
1941 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1942
1943         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
1944         the allocation request fails. Fixes #65089.
1945
1946         * object.c (mono_runtime_free_method): Do not call mono_free_method.
1947         
1948         * object.c (mono_runtime_free_method): New function to free a dynamic
1949         method.
1950
1951         * marshal.c (mono_delegate_free_ftnptr): New function to free the
1952         delegate trampoline.
1953
1954         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
1955         with hasthis as dynamic,
1956
1957         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
1958
1959         * domain.c (mono_jit_info_table_remove): New function to remove an
1960         entry from the jit info table.
1961
1962         * class-internals.h (MonoMethod): Add 'dynamic' field.
1963
1964         * loader.c: Fix warnings.
1965
1966 2004-09-01  Martin Baulig  <martin@ximian.com>
1967
1968         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
1969         instead of mono_debugger_lock() because the latter one is a no-op
1970         unless running in the debugger.
1971
1972 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1973
1974         * class.c (class_compute_field_layout): Classes with auto-layout or
1975         reference fields are not blittable.
1976         
1977 2004-09-01  Dick Porter  <dick@ximian.com>
1978
1979         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
1980         mono_image_get_filename() to get the assembly location.
1981
1982         * icall.c:
1983         * metadata.h: Fix compile warnings
1984
1985 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1986
1987         * class.c (class_compute_field_layout): System.Object is blittable.
1988
1989         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
1990         as in/out. Fixes #59909.
1991
1992 2004-09-01  Martin Baulig  <martin@ximian.com>
1993
1994         * metadata.h (MONO_TYPE_ISREFERENCE): Call
1995         mono_metadata_generic_inst_is_valuetype() if we're a generic
1996         instance to check whether our underlying type is a reference type.
1997
1998 2004-09-01  Martin Baulig  <martin@ximian.com>
1999
2000         * metadata.c (mono_type_size): If we're a generic instance, call
2001         mono_class_value_size() for value types.
2002
2003 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
2004
2005         * marshal.c: Implement more custom marshalling functionality. Fixes
2006         #64915.
2007
2008 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2009
2010         * mono-debug.c, debug-mono-symfile.c: add some locking love.
2011
2012 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
2013
2014         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
2015
2016         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
2017
2018         * icall.c: Fix some warnings.
2019
2020         * threads.c (abort_appdomain_thread): Fix unref errors.
2021         (mono_thread_current): Fix THREAD_DEBUG define.
2022
2023 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
2024
2025         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
2026
2027         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
2028
2029 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
2030
2031         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
2032         string arrays.
2033
2034 2004-08-28  Martin Baulig  <martin@ximian.com>
2035
2036         * metadata.c
2037         (mono_metadata_generic_inst_is_valuetype): New public function.
2038
2039         * metadata.h (MONO_TYPE_ISSTRUCT): Call
2040         mono_metadata_generic_inst_is_valuetype() if we're a generic
2041         instance to check whether our underlying type is a valuetype.
2042
2043 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
2044
2045         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
2046         #63768.
2047
2048 2004-08-25  Martin Baulig  <martin@ximian.com>
2049
2050         * loader.c (mono_get_method_from_token): Abstract methods can also
2051         be generic and thus have type parameters.
2052
2053         * metadata-internals.h
2054         (MonoDynamicImage): Added `GPtrArray *gen_params'.
2055
2056         * reflection.c (mono_image_get_generic_param_info): Don't create a
2057         metadata row, just add an entry to the `gen_params' array.
2058         (build_compressed_metadata): Sort the `gen_params' array and then
2059         actually create the metadata.
2060
2061 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2062
2063         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
2064
2065 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
2066
2067         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
2068
2069 2004-08-24  Martin Baulig  <martin@ximian.com>
2070
2071         * class.cs (mono_class_is_subclass_of): Like an interface, a
2072         generic instance also derives from System.Object.
2073
2074 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
2075
2076         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
2077         custom modifiers to be in any order. Fixes #61990.
2078
2079 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
2080
2081         * object.c: Register mono_object_new_fast icall.
2082         
2083         * object.c (mono_class_get_allocation_ftn): Return to calling
2084         mono_object_new_fast, since it seems faster to compute the object 
2085         size in unmanaged code than passing it as a parameter.
2086
2087         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
2088
2089         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
2090         this function with Boehm as the oom handler, so we don't have to check
2091         the result of GC_malloc.
2092
2093         * object.c: Remove checks for oom.
2094
2095         * object.h object.c (mono_class_get_allocation_ftn): New function to
2096         return the icall which can be used to allocate an instance of a given
2097         class. 
2098
2099         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
2100
2101         * class-internals.h: Add 'enabled' field.
2102
2103 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
2104
2105         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
2106
2107 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
2108         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
2109         value 0x0010.
2110
2111 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
2112
2113         * appdomain.c: use the Tls function for appdomain too,
2114         at Zoltan's request. Actually return in mono_context_get
2115
2116         * appdomain.c, profiler.c, threads.c: use __thread
2117
2118 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
2119
2120         * appdomain.c threads.c: Call GC_CreateThread on windows.
2121
2122         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
2123         multiple libraries since this don't work on windows.
2124
2125 2004-08-18  Martin Baulig  <martin@ximian.com>
2126
2127         * class-internals.h
2128         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
2129         MonoMethodHeader.
2130
2131         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2132         MonoMethodNormal since we also need it for abstract and interface
2133         methods.
2134
2135         * reflection.c
2136         (build_compressed_metadata): Sort the GenericParam table.
2137         (mono_image_create_token): Added `gboolean create_methodspec'
2138         argument; this is false when generating a MethodImpl token.
2139         (reflection_methodbuilder_to_mono_method): Abstract and interface
2140         methods may also have generic parameters.
2141
2142 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2143
2144         * appdomain.c: thread local alloc
2145
2146 2004-08-17  Martin Baulig  <martin@ximian.com>
2147
2148         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2149
2150         * icall.c
2151         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2152         argument.
2153
2154         * class.c (mono_type_get_full_name): New public function.
2155         (mono_type_get_name): Don't include the type arguments.
2156
2157 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2158
2159         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2160         for inclusion into the mono executable.
2161
2162 2004-08-16  Martin Baulig  <martin@ximian.com>
2163
2164         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2165         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2166
2167 2004-08-14  Martin Baulig  <martin@ximian.com>
2168
2169         * class.c (dup_type): Also copy the `byref' field.
2170
2171 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2172
2173         * reflection.c (create_dynamic_mono_image): Revert the last change 
2174         since it breaks bootstrap.
2175
2176 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2177
2178         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2179
2180         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2181         not free them with g_free.
2182
2183 2004-08-11  Martin Baulig  <martin@ximian.com>
2184
2185         * reflection.c (mono_reflection_setup_internal_class): Also call
2186         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2187
2188 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2189
2190         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2191         called during default (first) AppDomain creation. Keep track of
2192         Evidence when loading assemblies.
2193
2194 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2195
2196         * opcodes.c, opcodes.h: reduce runtime relocations.
2197
2198 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2199
2200         * culture-info.h, locales.c: fixes and chages to sue the new
2201         optimized format of the locale data.
2202         * culture-info-tables.h: regenerated.
2203
2204 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2205         
2206         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2207
2208 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2209
2210         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2211         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2212         * domain-internals.h: icall declaration.
2213         * icall.c: icall registration.
2214         * object-internals.h: New fields in MonoAssembly for CAS.
2215
2216 2004-08-05  Duncan Mak  <duncan@ximian.com>
2217
2218         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2219         CEE_LDELEM_ANY.
2220
2221 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2222
2223         * reflection.c: fix to deal with object[] arrays in custom ctors
2224         (bug #62550).
2225
2226 2004-08-05  Martin Baulig  <martin@ximian.com>
2227
2228         * class.c (mono_class_array_element_size): Added support for
2229         generic instances and correctly handle "recursive" types.
2230
2231 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2232
2233         * assembly.c: Fix warnings.
2234
2235 2004-08-04  Martin Baulig  <martin@ximian.com>
2236
2237         * class.c
2238         (mono_type_get_name_recurse): Added `gboolean include_arity'
2239         argument specifying whether or not we should include the generic
2240         arity in the type name.
2241         (_mono_type_get_name): New static function.
2242         (mono_class_setup_vtable): If we're a generic instance, don't
2243         include the generic arity in the names of explicit method
2244         implementations.        
2245
2246 2004-08-03  Martin Baulig  <martin@ximian.com>
2247
2248         * class.c (mono_type_get_name_recurse): Enclose the generic type
2249         arguments in `<', '>'.
2250
2251 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2252
2253         * gc.c: make GC warning messages use the trace API, they are just
2254         noise to most of the users.
2255
2256 2004-08-03  Martin Baulig  <martin@ximian.com>
2257
2258         * debug-mono-symfile.c (read_string): Correctly read the string.
2259
2260 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2261
2262         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2263         
2264         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2265         icalls.
2266         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2267
2268 2004-07-30  Martin Baulig  <martin@ximian.com>
2269
2270         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2271         Reflect latest symbol writer changes.   
2272
2273 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2274
2275         * object.c: always create an object if null is passed
2276         to Invoke() where a valuetype is expected.
2277
2278 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2279
2280         * marshal.c (mono_marshal_init): make managed
2281         signatures match native ones better for 64bits.
2282
2283 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2284
2285         * appdomain.c: hack to build correctly the private bin path on windows.
2286         Fixes bug #61991.
2287
2288 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2289
2290         * assembly.c: Load mscorlib from the correct framework directory
2291           (mono/<version>/mscorlib.dll).
2292         * appdomain.h: Added prototypes for new functions.
2293         * internals.h: Added some prototypes.
2294         * domain.c: When initializing the runtime, get from the executable and
2295           the configuration files the runtime version that the app supports.
2296           Added support methods for reading app.exe.config. Added list of versions
2297           supported by the JIT. Added two new methods: mono_init_from_assembly,
2298           which initializes the runtime and determines the required version from
2299           the provided exe file, and mono_init_version, which initializes
2300           the runtime using the provided version.
2301         * icall.c: Get machine.config from version-specific directory.
2302         * reflection.c: When generating an image, embed the version number
2303           of the current runtime.
2304
2305 2004-07-28  Dick Porter  <dick@ximian.com>
2306
2307         * socket-io.c
2308         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2309         returned sockaddr size before creating the remote address object.
2310         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2311         61608.
2312
2313 2004-07-28  Dick Porter  <dick@ximian.com>
2314
2315         * locales.c (string_invariant_compare_char): Fix invariant char
2316         compares between upper and lower cases.  Fixes bug 61458.
2317
2318 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2319         
2320         * marshal.c: actually cache stelem.ref wrappers.
2321         
2322 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2323
2324         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2325         sections and remove the mono_cli_rva_map () function.
2326
2327 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2328
2329         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2330         by Geoff Norton (<gnorton@customerdna.com>).
2331
2332 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2333
2334         * class.c: fix class loads for pointer types (typeof(int) !=
2335         typeof(int*)).
2336
2337 2004-07-27  Martin Baulig  <martin@ximian.com>
2338
2339         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2340         reading the debugging information from an external ".mdb" file.
2341
2342 2004-07-24  Martin Baulig  <martin@ximian.com>
2343
2344         * reflection.c (mono_image_get_type_info): Only write a class
2345         layout entry if we actually have a size or a packing size.
2346
2347 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2348
2349         * reflection.c (type_get_fully_qualified_name): 
2350         insert cast to get type checking of ?: with non-gcc compilers
2351
2352 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2353
2354         * rand.c: use g_getenv for both lookups of
2355         MONO_EGD_SOCKET
2356
2357 2004-07-17  Martin Baulig  <martin@ximian.com>
2358
2359         * reflection.c (mono_reflection_bind_generic_method_parameters):
2360         Set `gmethod->reflection_info'.
2361
2362 2004-07-17  Martin Baulig  <martin@ximian.com>
2363
2364         * class.c (mono_class_create_from_typedef): Insert the newly
2365         created class into the hash table before computing the interfaces
2366         since we could be called recursively.
2367
2368 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2369
2370         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2371         function to implement stelem.ref in managed code
2372         * class-internals.h, debug-helpers.c: a new wrapper type
2373         for the above.
2374
2375 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2376
2377         * gc.c: allow GC handles to work even when no GC is compiled in.
2378         Fix part of bug #61134 (GetAddrOfPinnedObject).
2379
2380 2004-07-13  Peter Williams  <peter@newton.cx>
2381  
2382         * process.c (complete_path): Make sure we don't attempt to execute
2383         directories.
2384  
2385 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2386
2387         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2388           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2389           and will add/subtract the hour if needed
2390
2391 2004-07-12  Martin Baulig  <martin@ximian.com>
2392
2393         * reflection.c (mono_field_get_object): If we have
2394         `field->generic_info', take the attributes from
2395         `field->generic_info->generic_type'.    
2396
2397 2004-07-12  Martin Baulig  <martin@ximian.com>
2398
2399         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2400         This function must be called before initializing the runtime.
2401         (mono_debug_init_1): New function; call this after initializing
2402         the runtime, but before loading the assembly.  It tells the
2403         debugger to load corlib and the builtin types.
2404
2405         * mono-debug-debugger.c: Did some larger changes in the debugging
2406         code; support recursive class declarations, make sure we actually
2407         add all classes.
2408
2409 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2410
2411         * debug-helpers.c: undo my previous patch and fixed the real issue in
2412         ../mini/exceptions-x86.c
2413
2414 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2415
2416         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2417         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2418         called from other .cctors.
2419
2420 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2421
2422         * loader.c: Removed the mono_loader_wine_init hack now that we are
2423         doing a managed version of Windows.Forms.
2424
2425 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2426
2427         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2428         threadpool.c, threads.c: remove static data from rootset.
2429
2430 2004-07-09  Dick Porter  <dick@ximian.com>
2431
2432         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2433         Don't do any more processing if the matched length was 0.  It was
2434         increasing the size of the string before.  Fixes bug 61167.
2435
2436 2004-07-09  Dick Porter  <dick@ximian.com>
2437
2438         * socket-io.h:
2439         * socket-io.c
2440         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2441         Add support for SO_PEERCRED if its available.
2442
2443 2004-07-09  Peter Bartok <pbartok@novell.com>
2444         * loader.c: winelib.exe.so error message is now only displayed if
2445         MONO_DEBUG is set. To help us avoid questions when people are trying
2446         out the new Managed.Windows.Forms.
2447
2448 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2449
2450         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2451         for isinst and castclass wrappers.
2452
2453         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2454         to libmetadata from the JIT, so they could be used by the marshalling
2455         code and the interpreter.
2456
2457         * marshal.c: Register marshalling related JIT icalls here instead of
2458         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2459         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2460
2461         * metadata.h: Remove unneeded marshalling conversions.
2462
2463         * opcodes.c: Update for new opcodes.
2464         
2465 2004-07-08  Martin Baulig  <martin@ximian.com>
2466
2467         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2468         (mono_debug_get_domain_data): Make this function static.
2469
2470 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2471
2472         * gc.c, object.h: add nice GC handle API for embedders.
2473
2474 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2475
2476         * reflection.c: more changes for the new api
2477
2478         * object.c: When we reflect on a field w/ a constant value, it
2479         will not have a memory location, so we must access metadata. Also,
2480         allow easier reading of strings so that we can read them from
2481         the constant data.
2482
2483         * class.c (mono_class_layout_fields): no need for literal fields here.
2484
2485         * class-internals.h: api changes for const fields
2486
2487         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2488
2489 2004-07-06  Martin Baulig  <martin@ximian.com>
2490
2491         * mono-debug.h: Increment version number to 44.
2492
2493         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2494         now a gpointer, rewrote this whole method.
2495
2496         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2497         function.  Add information about the wrapper in a new "misc table".
2498
2499         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2500         for the new misc table.
2501
2502 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2503
2504         * metadata-internals.h image.c: Add a cache for helper signatures.
2505
2506         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2507
2508 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2509
2510         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2511         delegates from a delegate. Fixes #61033.
2512         
2513         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2514         marshalling of stringbuilder arrays. Fixes #59900.
2515
2516 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2517
2518         * icall.c: Add EnumBuilder:setup_enum_type icall.
2519
2520 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2521
2522         * icall.c: Added a new icall for the property version of
2523         OffsetOfStringData.
2524
2525 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2526
2527         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2528         it has a constant size across platforms.
2529
2530         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2531         stack trace.
2532
2533 2004-06-29  Martin Baulig  <martin@ximian.com>
2534
2535         * mono-debug.c (mono_debug_add_method): Protect the whole function
2536         in mono_debugger_lock(), not just parts of it.
2537
2538 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2539
2540         * reflection.c: make sure padding bytes in heaps are zeroed.
2541
2542 2004-06-24  David Waite  <mass@akuma.org>
2543
2544         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2545         image.c, loader.c, locales.c, marshal.c, metadata.c,
2546         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2547         string-icalls.c, threads.c: change to C90-style comments from C99 /
2548         C++ -style
2549
2550 2004-06-24  Dick Porter  <dick@ximian.com>
2551
2552         * threads.c
2553         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2554         return createdNew.  Fixes bug 60412.
2555
2556         * threads-types.h: 
2557         * icall.c: Add createdNew parameter to CreateMutex icall
2558
2559 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2560
2561         * reflection.c, object-internals.h: save default value in params.
2562
2563 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2564
2565         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2566         no need to build a new path combining that with the application base.
2567         Fixes bug #60442.
2568
2569 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2570
2571         * reflection.c: fixed minor standard compliance issues.
2572
2573 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2574
2575         * reflection.c: fixed issue with encoding some custom attributes
2576         (arrays in properties and fields, bug #60411).
2577
2578 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2579
2580         * reflection.c: fix start address when copying the public key token.
2581
2582 2004-06-23  Martin Baulig  <martin@ximian.com>
2583
2584         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2585         the `exc' object in a static object to put it into the GC's root set.
2586
2587 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2588
2589         * reflection.c: make mono_reflection_setup_internal_class ()
2590         callable a second time to setup a new parent class.
2591
2592 2004-06-23  Dick Porter  <dick@ximian.com>
2593
2594         * threads.c: Check for WAIT_IO_COMPLETION return values.
2595
2596 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2597
2598         * appdomain.c: Removed the g_free on the public key token. Now copy 
2599         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2600         * assembly.c: Added public key token string value when loading 
2601         assemblies. Fix bug #60439.
2602         * icall.c: Added missing informations (like public key) in 
2603         GetReferencedAssemblies. Fix #60519.
2604         * image.h: Changed definition for public key token from const char*
2605         public_tok_value to guchar public_key_token [17];
2606         * reflection.c: Updated for changes to public key token.
2607
2608 2004-06-22  Lluis Sanchez Gual
2609
2610         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2611         for the field in base classes.
2612
2613 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2614
2615         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2616         mark headers as not supported, they are installed only for use by the
2617         debugger.
2618
2619 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2620
2621         * *.c, *.h: avoid namespace pollution in public headers.
2622
2623 2004-06-21  Martin Baulig  <martin@ximian.com>
2624
2625         * exception.c (mono_get_exception_security): It's in
2626         "System.Security", not in "System".
2627
2628         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2629         the exception classes.
2630
2631 2004-06-21  Martin Baulig  <martin@ximian.com>
2632
2633         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2634         Protect the exception object from being finalized.
2635
2636 2004-06-21  Martin Baulig  <martin@ximian.com>
2637
2638         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2639         public function.
2640
2641 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2642
2643         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2644         if it was not loaded before. Fix parts of #60439.
2645
2646 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2647
2648         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2649         code that was broken since Ben's change: wrappers are now
2650         dependent on the method signature only again.
2651
2652 2004-06-21  Martin Baulig  <martin@ximian.com>
2653
2654         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2655         added interface support.
2656
2657 2004-06-21  Martin Baulig  <martin@ximian.com>
2658
2659         * class.c (mono_vtable_get_static_field_data): New public method.
2660
2661 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2662
2663         * filewatcher.c : Windows build fix to be compliant with API changes.
2664
2665 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2666
2667         * class.h, class.c: more accessors.
2668         * metadata.h, metadata.c: prepare for hiding MonoType and
2669         MonoMethodSignature: people should use the accessors from now on
2670         outside of the tree.
2671
2672 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2673
2674         * *.c, *.h: more API cleanups.
2675
2676 2004-06-18  Jackson Harper  <jackson@ximian.com>
2677
2678         * assembly.c: Trace loading assemblies.
2679         * loader.c: Trace loading native libraries.
2680         * mono-config.c: Trace loading config files.
2681         
2682 2004-06-18  Dick Porter  <dick@ximian.com>
2683
2684         * locales.c: Tell ICU the lengths of strings, it can cope with
2685         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2686
2687 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2688
2689         * image.c: swapped name/filename;
2690
2691 2004-06-18  Martin Baulig  <martin@ximian.com>
2692
2693         * mono-debug-debugger.c (write_class): Write the parent class at
2694         the end of the header.
2695
2696 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2697
2698         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2699
2700 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2701
2702         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2703         (bundle_obj): New conditional define.
2704         (BUILT_SOURCES): Remove.
2705         ($(bundle_srcs)): Make parallel-make safe.
2706         (libmonoruntime_la_LIBADD): Make unconditional.
2707         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2708         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2709
2710 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2711
2712         * culture-info-tables.h: It was inconsistent with the latest
2713           supp info files.
2714
2715 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2716
2717         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2718         be loaded.
2719
2720         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2721         with gcc 2.95.
2722
2723 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2724
2725         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2726         cleaned up public header threads.h.
2727
2728 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2729
2730         * Makefile.am, *.c, *.h: more API cleanups.
2731
2732 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2733
2734         * Makefile.am: removed monosn from compilation.
2735         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2736         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2737         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2738         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2739         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2740         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2741
2742 2004-06-15  Jackson Harper  <jackson@ximian.com>
2743
2744         * assembly.c: Make locales lower case when searching the GAC for
2745         assemblies. gacutil will always make locales lowercase when
2746         installing so this effectively makes them case insensitive.
2747         
2748 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2749
2750         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2751         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2752           parameter which allows to choose whether the wait can be interrupted or 
2753           not. Also added the method mono_monitor_enter(), which locks the monitor
2754           using an infinite wait and without allowing interruption.
2755           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2756           interrupted.
2757         * object.h: Added new fields in MonoThread. suspend_event holds the event
2758           used to susped/resume the thread. synch_lock is the lock object to use for
2759           modifying the thread state.
2760         * threads.c: Use the new synch_lock object for locking, instead of "this",
2761           which can generate deadlocks.
2762           Moved thread state change in Thread.Sleep and Thread.Join from managed
2763           to unmanaged code. This avoids a deadlock when the thread was suspended
2764           just after acquiring the thread lock.
2765           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2766           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2767           which is not fully implemented in the io-layer.
2768         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2769
2770 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2771
2772         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2773         threads-types.h: more API cleanups.
2774
2775 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2776
2777         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2778         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2779         threadpool.c, threads.c: first pass at the exported API cleanup.
2780
2781 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2782
2783         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2784
2785 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2786
2787         * icall.c: added internalGetHome.
2788
2789 2004-06-14  Dick Porter  <dick@ximian.com>
2790
2791         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2792         possible to return successfully when '.' or '..' were the only
2793         entries in a directory, but were skipped.  The MonoIOStat was not
2794         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2795         Fixes bug 59574.
2796
2797 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2798
2799         * reflection.c: make binaries run on .Net 1.1 by default.
2800
2801 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2802
2803         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2804
2805 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2806
2807         * marshal.c: keep track of struct size with explicit layout
2808         (bug #59979).
2809
2810 2004-06-12  Martin Baulig  <martin@ximian.com>
2811
2812         * mono-debug-debugger.c: Comment out a debugging g_message().
2813
2814 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2815
2816         * reflection.c, reflection.h: do not free custom attrs that are cached.
2817         * icall.c: use braces to make code clearer.
2818
2819 2004-06-11  Martin Baulig  <martin@ximian.com>
2820
2821         * class.h (MonoInflatedField): New type.
2822         (MonoClassField): Replaced `MonoType *generic_type' with
2823         `MonoInflatedField *generic_info'.
2824
2825         * icall.c
2826         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2827
2828 2004-06-11  Martin Baulig  <martin@ximian.com>
2829
2830         * reflection.c (mono_image_create_method_token): Correctly encode
2831         varargs methods.
2832
2833 2004-06-11  Martin Baulig  <martin@ximian.com>
2834
2835         * metadata.c (mono_metadata_parse_method_signature): When parsing
2836         a MethodDef which has VarArgs, also set sentinelpos if we don't
2837         have any parameters.
2838
2839 2004-06-11  Martin Baulig  <martin@ximian.com>
2840
2841         * verify.c (mono_method_verify): In CEE_CALL, use
2842         mono_method_get_signature() to get the method's signature, unless
2843         we're a PInvoke method.
2844
2845 2004-06-10  Jackson Harper  <jackson@ximian.com>
2846
2847         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2848         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2849         logical name as the supplied path is just a prefix to the gac not
2850         the direct path to it.
2851         
2852 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2853
2854         * reflection.c: make the token for a created method match
2855         the token of the MethodBuilder it was created from
2856         (IKVM requires this behaviour now).
2857
2858 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2859
2860         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2861         reflection.c, socket-io.c: leak fixes.
2862
2863 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2864
2865         * icall.c: handle sentinel pos in vararg methods in position different
2866         from 0.
2867
2868 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2869
2870         * culture-info-tables.h: freshly generated.
2871
2872 2004-06-09  Martin Baulig  <martin@ximian.com>
2873
2874         * loader.c (mono_get_method_constrained): Call `mono_class_init
2875         (constrained_class)'.   
2876
2877 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2878
2879         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2880         any methods. Fixes #59629.
2881
2882 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2883
2884         * culture-info-tables.h: reflecting locale-builder updates.
2885
2886 2004-06-08  Dick Porter  <dick@ximian.com>
2887
2888         * object.h:
2889         * locales.c: Fixed compile warnings, including a real bug in
2890         CompareInfo_internal_compare.
2891         
2892 2004-06-08  Dick Porter  <dick@ximian.com>
2893
2894         * locales.c
2895         (ves_icall_System_Globalization_CompareInfo_internal_index):
2896         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2897         Double-check the resuls of usearches, because ICU currently
2898         ignores most of the collator settings here.  Fixes bug 59720.
2899         
2900 2004-06-08  Dick Porter  <dick@ximian.com>
2901
2902         * locales.c
2903         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2904         Fix memory leak and segfault-causing typo.  No idea how this one
2905         lasted so long without being noticed.
2906
2907 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2908
2909         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2910         any methods. Fixes #59629.
2911
2912 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2913
2914         * assembly.c:
2915         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2916         own the critical section before). Removed dead code (that's done
2917         in the preload hook).
2918
2919         (mono_assembly_load_with_partial_name): call the preload hook.
2920
2921 2004-06-08  Martin Baulig  <martin@ximian.com>
2922
2923         * metadata.c (mono_metadata_signature_alloc): Default
2924         `sentinelpos' to -1.
2925
2926         * reflection.c (mono_image_get_array_token): Likewise.
2927
2928 2004-06-08  Martin Baulig  <martin@ximian.com>
2929
2930         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2931
2932         * metadata.c (mono_metadata_parse_method_signature): When parsing
2933         a MethodDef which has VarArgs, set sentinelpos.
2934
2935         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2936         `gint16' since we're using -1 for non-varargs methods.
2937
2938         * reflection.c
2939         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
2940         (method_encode_signature): Added varargs support.
2941         (method_builder_encode_signature): Likewise.
2942         (mono_image_get_varargs_method_token): New static method.
2943         (mono_image_create_method_token): New public method; this is
2944         called via an icall instead of mono_image_create_token() when
2945         calling a varargs method.       
2946
2947 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
2948
2949         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
2950
2951 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2952
2953         * culture-info-tables.h : Reflecting the latest locale-builder that
2954           fixed empty array representation ({} to {0}).
2955
2956 2004-06-07  Jackson Harper  <jackson@ximian.com>
2957
2958         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
2959         looking up extra gac paths. This allows MONO_GAC_PATH to act
2960         exactly like a prefix.
2961         
2962 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2963
2964         * reflection.c (mono_reflection_type_from_name): Make a copy of the
2965         type name before modifying it. Fixes #59405.
2966
2967 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2968
2969         * culture-info.h: added fields for "all datetime patterns".
2970         * locales.c: (  ves_icall_System_Globalization_CultureInfo
2971           _construct_datetime_format ()): fill xxx_patterns fields.
2972         * object.h: added fields for "all datetime patterns" to
2973           MonoDateTimeFormatInfo.
2974         * culture-info-tables.h: reflecting locale-builder updates.
2975
2976 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2977
2978         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
2979         the event has no add and remove methods. Fixes #59629.
2980
2981 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
2982
2983         * object.c: Fixed possible integer overflow when allocating large
2984         strings.
2985
2986 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2987
2988         * culture-info-tables.h: reflecting locale-builder updates.
2989
2990 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2991
2992         * culture-info-tables.h: reflecting locale-builder updates.
2993
2994 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
2995
2996         * culture-info-tables.h: reflecting locale-builder updates.
2997
2998 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
2999
3000         * threads.c: Made Thread.Sleep abortable.
3001
3002 2004-06-02  Martin Baulig  <martin@ximian.com>
3003
3004         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
3005
3006         * debug-mono-symfile.h: Bumped symbol file version number to 37.
3007
3008 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
3009
3010         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
3011
3012 2004-05-30  Jackson Harper  <jackson@ximian.com>
3013
3014         * reflection.c: Do not hardcode assembly versions or public key
3015         tokens anymore. All of this except the corlib section was dead
3016         code anyways.
3017         
3018 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
3019
3020         * object.c (mono_runtime_invoke_array): Automatically create boxed
3021         objects for byref valuetypes if needed. Fixes #59300.
3022         
3023         * object.c (mono_method_return_message_restore): Handle 
3024         MONO_TYPE_OBJECT as well.
3025
3026 2004-05-28  Jackson Harper  <jackson@ximian.com>
3027
3028         * reflection.c: The modified type encoding was causing build
3029         problems. Reverted for now.
3030         
3031 2004-05-28  Jackson Harper  <jackson@ximian.com>
3032
3033         * reflection.c/h: Take an assembly ref so that we dont create
3034         fully qualified names when encoding types in the same assembly as
3035         the custom attribute being emitted.
3036         * appdomain.c: Increment version number.
3037         
3038 2004-05-26  Duncan Mak  <duncan@ximian.com>
3039
3040         * icall.c
3041         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
3042         Set the full version number (major, minor, build, revision).
3043
3044 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
3045
3046         * marshal.c (emit_struct_conv): increment src/dst after blit
3047         (mono_marshal_get_managed_wrapper,
3048         mono_marshal_get_native_wrapper): make sure we have marshalling
3049         info before marshalling params (info computation affects
3050         blittable)
3051
3052         * class.c (class_compute_field_layout): correctly deal with
3053         blittable
3054         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
3055         value types (as per what windows dows by default)
3056         (mono_class_setup_mono_type): System.ValueType is blittable
3057         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
3058         blittable
3059
3060         * marshal.c (mono_marshal_load_type_info): flag types  as
3061         non-blittable if the native layout doesn't match the managed
3062         layout
3063
3064 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3065
3066         * appdomain.c: don't add stuff in the private search path that is
3067         above the application base. If application base is not set, there's
3068         no private search path.
3069
3070 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
3071
3072         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
3073         byref struct arguments in native->managed marshalling.
3074
3075 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
3076
3077         * marshal.c (mono_marshal_get_runtime_invoke): correctly
3078         cache methods using signature (special case for methods
3079         that are value type or string class)
3080         
3081         * image.c (mono_image_close): clean up allocated GSList's
3082         in runtime_invoke_cache.
3083
3084 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3085
3086         * mono-config.c: set the correct path for mono_cfg_dir on windows when
3087         there's no MONO_CFG_DIR environment variable defined.
3088
3089 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3090
3091         * threads.c: windows version must be >= 0x0500 to include OpenThread.
3092
3093 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
3094
3095         * threadpool.c: Really wait for 500ms after the async call, even if the wait
3096           is interrumped.
3097         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
3098           before waiting for it, and call CloseHandle after the wait to unref it.
3099           This will make sure that handles are not disposed too early.
3100
3101 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3102
3103         * appdomain.c:
3104         * appdomain.h:
3105         * icall.c: removed
3106         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
3107         needed now.
3108
3109         * object.c: se the application_base only for the domain that runs
3110         Main. Fixes bug #59216,
3111
3112 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3113
3114         * appdomain.c:
3115         * object.c: only the domain in which Main is run have
3116         SetupInformation.ConfigurationFile set, so moved a few lines from
3117         appdomain.c to object.c.
3118
3119 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3120
3121         * appdomain.c: we tried to load [name].(dll|exe), but according
3122         to bug #57710, we must also try [culture]/[name].(dll|exe) and
3123         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
3124         There's a test case attached to bug #58922.
3125
3126 2004-05-27  Dick Porter  <dick@ximian.com>
3127
3128         * icall.c:
3129         * file-io.c: Implemented icalls for locking and unlocking regions
3130         in a file.
3131         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3132         FALSE on error (fixes both compiler warning and real bug.)
3133
3134 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
3135
3136         * culture-info-tables.h: reflecting locale-builder updates.
3137
3138           (Added missing ChangeLog entry for 05/26)
3139
3140 2004-05-27  Jackson Harper  <jackson@ximian.com>
3141
3142         * locales.c: Fix some cut and paste errors.
3143         
3144 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3145
3146         * mono-config.c: set the correct path for config. directory on windows.
3147
3148 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3149
3150         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3151           on win32.
3152
3153 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3154
3155         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3156         from pinvoke functions.
3157         
3158         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3159
3160 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3161
3162         * culture-info-tables.h: reflecting locale-builder updates.
3163
3164 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3165
3166         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3167         #59086.
3168
3169 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3170
3171         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3172         * icall.c: Modified icalls for RNG.
3173         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3174         Windows (CryptoAPI).
3175
3176 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3177
3178         * locales.c: Fix build.
3179
3180 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3181
3182         * culture-info-tables.h: reflecting locale-builder updates.
3183
3184 2004-05-25  Jackson Harper  <jackson@ximian.com>
3185
3186         * locales.c: When creating the current culture use the $LANGs
3187         specific culture. So DateTimeFormat and NumberFormat entries are created.
3188         
3189 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3190
3191         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3192         a char array as parameter.
3193
3194 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3195
3196         * image.c: In mono_image_open(), always use an absolute path name to
3197           look for already loaded images.
3198
3199 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3200
3201         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3202         missing in the windows build (like older cygwin include files).
3203
3204 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3205
3206         * icall.c: Fixed check for possible integer overflow in Buffer_
3207         BlockCopy icall. Replaced comments style // by /* */.
3208
3209 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3210
3211         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3212         
3213         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3214         check after MONO_VTADDR. Fixes pinvoke2.exe.
3215
3216         * marshal.h marshal.c metadata.h: Add beginnings of support for
3217         ftnptr -> delegate marshalling.
3218
3219 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3220
3221         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3222         * threads.c: Fix warnings.
3223
3224 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3225
3226         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3227         * icall.c: Registered icalls for Suspend and Resume.
3228         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3229           Thread.Abort.
3230         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3231         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3232         * process.c: Use WaitForSingleObjectEx.
3233         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3234           checkpoints.
3235         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3236           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3237           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3238           background threads. Added basic support for Abort in Windows.
3239           Start new threads using a managed delegate invoke wrapper. This wrapper
3240           has an interruption checkpoint that is needed since an interruption
3241           can be requested before the thread leaves the unmanaged code that starts 
3242           the thread.
3243         * marshal.c: Added interruption checkpoint after every native call, and
3244           also before managed calls for wrappers called from unmanaged code to
3245           go into managed code.
3246         * object.h: Added new field in MonoThread to keep track of interruption
3247           requests.
3248
3249 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3250
3251         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3252         calls.
3253
3254 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3255
3256         * appdomain.c:
3257         * assembly.c:
3258         * gc.c:
3259         * locales.c:
3260         * mono-config.c:
3261         * rand.c: getenv -> g_getenv (windows!)
3262
3263         * process.c: complete_path is also used on non-windows platforms.
3264
3265 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3266
3267         * icall.c: new signature for Process_Start.
3268
3269         * process.[ch]: new signature for Process_Start. If we're on windows
3270         and UseShellExecute is false, we have to search for the program by
3271         ourselves if we don't get a full path.
3272
3273 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3274
3275         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3276         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3277
3278 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3279
3280         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3281         Fixes bug #58373.
3282
3283 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3284
3285         * process.c: use double quotes to quote program name and arguments on
3286         windows. Fixes bug #58575.
3287
3288 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3289
3290         * file-io.c: don't return "." and ".." when using windows Find*File.
3291
3292 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3293
3294         * marshal.c: Don't pass wrappers to message init because method 
3295         addressed used to lookup metadata. part of remoting[2|3] fix.
3296
3297 2004-05-15  Jackson Harper  <jackson@ximian.com>
3298
3299         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3300         path is essentially the same as MONO_PATH except that it points to
3301         GACs instead of lib directories.
3302         * loader.h: The user gac is gone so we dont need function to
3303         enable/disable it.
3304         * mono-config.c: user gac option is now gone.
3305         
3306 2004-05-15  Jackson Harper  <jackson@ximian.com>
3307
3308         * culture-info.h: Make defines more consistent, add calendar data
3309         to the culture info table.
3310         * culture-info-tables.h: Add basic calendar data. Basically
3311         everyone gets default gregorian until all the data is
3312         updated.
3313         * locales.c: Use the new consistent defines. Set calendar data for
3314         culture info objects.
3315         * object.h: add a field for calendar data to CultureInfo
3316         
3317 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3318
3319         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3320         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3321         a signature.
3322         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3323         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3324         an extra param that is the pointer of the method to invoke. The IL for
3325         the invoke method is no longer specific to the method, but to the
3326         signature of the method. Thus, we can share the same code for multiple
3327         methods. This reduces the number of methods that have to be compiled.
3328
3329 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3330
3331         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3332
3333         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3334
3335         * icall.c: Optimize Buffer.BlockCopy.
3336
3337 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3338
3339         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3340         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3341         quote). Changed them to "MMMM yyyy".
3342
3343 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3344
3345         * rand.c
3346         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3347
3348 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3349
3350         * reflection.h: Updated after changes to managed structures.
3351
3352         * appdomain.c: Bump corlib version.
3353
3354 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3355
3356         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3357         windows.
3358
3359 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3360
3361         * Makefile.am: link to ../os/libmonoos.la on windows.
3362
3363         * assembly.c:
3364                 -If MONO_DEBUG, warn about non-existing directories in
3365                 MONO_PATH.
3366                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3367                 compile time variable.
3368                 -Removed init_default_path and call mono_set_rootdir from
3369                 libmonoos.a instead (windows only).
3370
3371         * assembly.h: declare mono_assembly_getrootdir().
3372
3373         * domain.c:
3374         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3375
3376         * loader.c: s/getenv/g_getenv/
3377
3378 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3379
3380         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3381
3382         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3383
3384         * metadata.h: Add new marshalling conversions.
3385
3386         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3387         function.
3388
3389         * reflection.c (mono_reflection_get_type): Lookup the type in all
3390         modules of a multi-module assembly. Fixes #58291.
3391
3392 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3393
3394         * threads.c: Before aborting a background, set the StopRequested
3395         state.  This avoids throwing the Abort exception.
3396         In mono_thread_manage, don't continue with the shutdown until all
3397         aborted threads have actually stopped.
3398
3399 2004-05-10  Jackson Harper  <jackson@ximian.com>
3400
3401         * locales.c: Remove the modifier from culture names.
3402         
3403 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3404
3405         * Makefile.am: monosn is not installed any more. It has been deprecated
3406         in favor of sn.
3407
3408 2004-05-07  Jackson Harper  <jackson@ximian.com>
3409
3410         * locales.c
3411         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3412         Fix array construction, add bailout if the length is 0.
3413
3414 2004-05-07  Dick Porter  <dick@ximian.com>
3415
3416         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3417         machine doesn't have a DNS entry.  Patch by Urs Muff
3418         (umuff@quark.com), fixes bug 57928.
3419
3420 2004-05-06  Jackson Harper  <jackson@ximian.com>
3421
3422         * reflection.c: Handle null PublicTokens properly. alloc mem for
3423         assembly names culture so we dont crash when freeing it.
3424         
3425 2004-05-06  Jackson Harper  <jackson@ximian.com>
3426
3427         * assembly.c: Check the usergac when loading with partial names.
3428         
3429 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3430
3431         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3432         does nothing for now (not required for Linux/Windows) but the class
3433         library can call it (and a newer or modified runtime could need it).
3434         * icall.c: Registred icall.
3435
3436 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3437
3438         * loader.c: prints a message on module loading error we set MONO_DEBUG
3439         environment variable.
3440
3441 2004-05-05  Jackson Harper  <jackson@ximian.com>
3442
3443         * appdomain.c: Handle PublicKeyToken=null properly.
3444         
3445 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3446
3447         * environment.c|h: Added icall ves_icall_System_Environment_
3448         GetOSVersionString to get the current OS version as a string.
3449         * icall.c: Registred icall.
3450
3451 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3452
3453         * object.c: in mono_object_get_virtual_method(), take into account that
3454         non-virtual methods don't have a slot in the vtable. Check needed when
3455         the object is a proxy.
3456
3457 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3458
3459         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3460         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3461
3462         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3463
3464         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3465         passed when a valuetype is expected.
3466
3467         * object.c (mono_unhandled_exception): Only set the exit code if the
3468         exception happens in the main thread. Fixes thread5.exe.
3469
3470         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3471         invalid names. Fixes #58047.
3472
3473 2004-05-03  Jackson Harper  <jackson@ximian.com>
3474
3475         * assembly.c: This line was committed accidently and is unneeded.
3476         
3477 2004-05-03  Jackson Harper  <jackson@ximian.com>
3478
3479         * icall.c: Add new icall for Assembly::LoadWithPartialName
3480         * assembly.c/.h: new function that probes the GAC to load partial
3481         assembly names by Paolo Molaro.
3482         
3483 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3484
3485         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3486         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3487         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3488         full type name.
3489
3490 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3491
3492         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3493         * reflection.c: fix bug when parsing a full type name and Version is not
3494         the last thing in the string.
3495
3496 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3497
3498         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3499         crashes when it is freed.
3500
3501 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3502
3503         * assembly.c: print the compat warning to stderr.
3504
3505 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3506
3507         * assembly.c (mono_assembly_load_references): Add a compatibility
3508         hack to run old applications that might be still referencing the
3509         3300-based assemblies, only do this for System.xxx.
3510
3511 2004-05-01  Jackson Harper  <jackson@ximian.com>
3512
3513         * appdomain.c: If the culture is neutral we set it to "".
3514         
3515 2004-04-29  Jackson Harper  <jackson@ximian.com>
3516
3517         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3518
3519 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3520  
3521         * string-icalls.c: added low overhead function for copying chars
3522         * icall.c: added needed icall for the above function
3523  
3524 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3525
3526         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3527         Environment.GetLogicalDrives.
3528
3529 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3530
3531         * rand.c: try and talk to egd or prngd
3532         for random bytes if opening devices fail.
3533
3534 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3535
3536         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3537         alignment for the type using the native alignment of its members 
3538         instead of using klass->min_align.
3539
3540         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3541
3542 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3543
3544         * file-io.c:
3545         * socket-io.c: added check for sys/aio.h.
3546
3547 2004-04-28  Dick Porter  <dick@ximian.com>
3548
3549         * threads.c: Don't abort a thread thats already aborting, when
3550         terminating everything.
3551
3552 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3553
3554         * icall.c: added 2 new async calls for Socket.
3555
3556         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3557         IO on *nix systems.
3558
3559         * threadpool.c: removed unused variable.
3560
3561 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3562
3563         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3564
3565 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3566
3567         * locales.c: put back string_invariant_tolower () and
3568         string_invariant_toupper ().
3569
3570 2004-04-26 David Waite <mass@akuma.org>
3571
3572         * file-io.h:
3573         * socket-io.h:
3574         * threads.h:
3575         * unicode.h: remove comma from end of enumeration declarations
3576
3577 2004-04-26 David Waite <mass@akuma.org>
3578
3579         * debug-mono-symfile.h:
3580         * decimal.c:
3581         * mono_debug.h:
3582         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3583
3584
3585 2004-04-26  Jackson Harper  <jackson@ximian.com>
3586
3587         * appdomain.c: Increment version number.
3588         
3589 2004-04-26  Jackson Harper  <jackson@ximian.com>
3590
3591         * appdomain.c: Set assembly references public token value when
3592         PublicKeyToken is specified, not the hash_value. Free public token
3593         values when free assembly name data. Previously the public key
3594         token was hex decoded, however we are using hex encoded public key
3595         tokens, so this is not neccasary.
3596         * assembly.c: Lookup assemblies in the gac if their public token
3597         value is set. Add function to allow enabling user gac
3598         lookups. Specify whether or not the assembly was loaded from the
3599         GAC. Compare full assembly names when checking the cache for
3600         assemblies (Temporarily disabled see comment in code). Remove
3601         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3602         specifies trace-loader they get extra info to stdout on the
3603         loading of assemblies.
3604         * image.h: Add a field for an assembly references public token
3605         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3606         whether an assembly has been loaded from the GAC.
3607         * image.c: Remove a corlib -> mscorlib name mapping.
3608         * loader.h: Add function to enable/disable the user gac.
3609         * mono-config.c: Check if the usergac is enabled in the config
3610         file.
3611         * icall.c: New icall to determine whether or not an assembly has
3612         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3613         * tabldefs.h: Add constant for assemblyref flag that specifies a
3614         full public key is used instead of a public token.
3615         * reflection.c: Remove mscorlib -> corlib mappings. Set
3616         PublicTokenValue instead of hash value. This value is a hex
3617         string so it does not need to be expanded.
3618
3619 2004-04-26  Martin Baulig  <martin@ximian.com>
3620
3621         * mono-debug-debugger.c (mono_debugger_initialize): Set
3622         `mono_debugger_initialized' before calling mono_debug_lock().
3623
3624 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3625
3626         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3627           InternalToUpper/InternalToLower.
3628         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3629           removed invariant culture shortcut.  This is now done in managed code.
3630         * locales.c: (string_invariant_toupper/tolower) removed.
3631
3632 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3633
3634         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3635         Added Poll internal call.
3636
3637         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3638         call for Poll. Select was too heavy for polling a single socket.
3639
3640         * threadpool.[ch]: added mono_threadpool_cleanup.
3641         * threads.c: use it. Don't use Thread_Abort on windows.
3642
3643 2004-04-23  Martin Baulig  <martin@ximian.com>
3644
3645         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3646
3647 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3648
3649         * icall.c: Registred new icalls for key pair protection and added an
3650         icall for Environment.GetFolderPath on Windows.
3651         * security.c|h: Added new icalls for key pair protection.
3652
3653 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3654
3655         * socket-io.c: don't display the non-supported family warning for known
3656         families. Now this is not displayed on windows when checking support
3657         for IPv4/IPv6.
3658
3659 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3660
3661         * class.c: don't display the layout warning for static fields.
3662
3663 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3664
3665         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3666         * locales.c, locales.h: Added new icalls for culture-specific
3667         Char.ToLower and Char.ToUpper.
3668
3669 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3670
3671         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3672         by David Waite.
3673
3674 2004-04-20  Martin Baulig  <martin@ximian.com>
3675
3676         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3677         of the type name before passing it to mono_reflection_type_from_name().
3678
3679 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3680
3681         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3682         encodings here. Fixes #56965.
3683
3684 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3685
3686         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3687         fix test on strstr result not that I can see anything that
3688         relies on the result.
3689
3690 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3691
3692         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3693         Fixes #57081.
3694
3695         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3696
3697         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3698         function to determine which marshalling to use for strings. Fixes
3699         #56965.
3700
3701         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3702
3703         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3704
3705 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3706
3707         * icall.c: #include mono-config.h
3708
3709 2004-04-15  Jackson Harper  <jackson@ximian.com>
3710
3711         * culture-info-tables.h: Fix date formats for en-US culture.
3712         
3713 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3714
3715         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3716         ThreadPool.SetMinThreads.
3717         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3718         ThreadPool.SetMinThreads.
3719
3720 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3721
3722         * mono-config.c: also load the .config file in the directory
3723         where the assembly was found.
3724
3725 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3726
3727         * assembly.c: load per-assembly config files.
3728         * icall.c: decrapified code to get the config dir and moved to
3729         mono-config.c.
3730         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3731         per-assembly config files. When doing a dll map lookup give precedence
3732         to the per-assembly data.
3733
3734 2004-04-14  Martin Baulig  <martin@ximian.com>
3735
3736         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3737         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3738         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3739
3740         * mono-debugger-debugger.c: While the debugger is locked, remember
3741         whether the symbol tables have changes and send one single
3742         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3743
3744 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3745
3746         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3747
3748         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3749         function.
3750
3751         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3752         account when marshalling string arrays. Fixes #56965.
3753
3754 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3755
3756         * icall.c: Add new icalls mapping for security.
3757         * security.c|h: Add internal calls for WindowsIdentity,
3758         WindowsImpersonationContext and WindowsPrincipal.
3759
3760 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3761
3762         * class.c: Added comment to ensure the System.MonoDummy class
3763         is removed when no longer necessary
3764
3765 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3766
3767         * appdomain.c: Pass arguments to the bootstraping exceptions to
3768         minimize JITed methods at boot
3769
3770         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3771         second string to be null.
3772
3773         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3774         Change the protocol to minimize the JIT methods at startup.  Now
3775         it Returns the internal codepage, if the value of "int_code_page"
3776         is 1 at entry, and we can not compute a suitable code page
3777         number, returns the code page as a string.
3778
3779 2004-04-13  Jackson Harper  <jackson@ximian.com>
3780
3781         * culture-info-tables.h: Fix number of decimal digits for all
3782         english locales.
3783
3784 2004-04-13  Jackson Harper  <jackson@ximian.com>
3785
3786         * icall.c: Clairfy out of sync error message. It is not always
3787         your corlib that is out of sync.
3788
3789 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3790
3791         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3792         properties when only the set accessor is overriden. Fixes #55874.
3793
3794 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3795
3796         * assembly.c (mono_assembly_load_references): Make this thread safe.
3797         Fixes #56327.
3798
3799 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3800
3801         * monosn.c: Add missing initialization calls.
3802
3803 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3804
3805         * locales.c:
3806         ves_icall_System_Globalization_CultureInfo_construct_number_format
3807         Fix g_assert so it compiles on fussier compilers re int/ptr
3808         mismatch
3809
3810 2004-04-08  Dick Porter  <dick@ximian.com>
3811
3812         * socket-io.h:
3813         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3814         53992.  Also rearrange the code so that the internal calls return
3815         an error value and exceptions are thrown from managed code.
3816
3817         * icall.c: Add type info to the socket icalls.
3818
3819 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3820
3821         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3822         owes me a beer.
3823
3824 2004-04-07  Martin Baulig  <martin@ximian.com>
3825
3826         * class.c (mono_class_from_generic_parameter): Don't default
3827         `klass->parent' to `mono_defaults.object_type'.
3828
3829 2004-04-07  Martin Baulig  <martin@ximian.com>
3830
3831         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3832         `param->pklass->reflection_info'.       
3833
3834 2004-04-07  Jackson Harper  <jackson@ximian.com>
3835
3836         * culture-info-tables.h: Fix date separator symbol.
3837         
3838 2004-04-07  Martin Baulig  <martin@ximian.com>
3839
3840         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3841         from System.Type to System.MonoType.
3842
3843 2004-04-07  Martin Baulig  <martin@ximian.com>
3844
3845         * reflection.h
3846         (MonoReflectionGenericParam): Added `has_reference_type' and
3847         `has_value_type' fields.
3848
3849         * reflection.c (mono_image_get_generic_param_info): Encode the
3850         correct flags if we have the `class' or `struct' constraint.
3851
3852 2004-04-07  Martin Baulig  <martin@ximian.com>
3853
3854         * reflection.h
3855         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3856
3857 2004-04-07  Jackson Harper  <jackson@ximian.com>
3858
3859         * appdomain.c: Revert extra patches, just wanted to bump the
3860         version number.
3861         
3862 2004-04-07  Jackson Harper  <jackson@ximian.com>
3863
3864         * Makefile.am: Add culture-info private headers.
3865         * icall.c: Add new icalls for contructing locales.
3866         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3867         * locales.h: Declare new culture info construction methods.
3868         * object.h: Add new fields used to avoid the CultureMap to
3869         MonoCultureInfo.
3870         * culture-info.h: Definition of structs used in the culture info
3871         tables.
3872         * culture-info-tables.h: Autogenerated tables that contain culture
3873         info data. This file was generated with the locale-builder tool.
3874         * appdomain.c: Incement corlib version number.
3875         
3876 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3877
3878         * appdomain.c: (mono_runtime_init) move mono_thread_init
3879         to before mono_object_new calls so critical sections
3880         are initialized before use.
3881
3882 2004-04-07  Martin Baulig  <martin@ximian.com>
3883
3884         * icall.c
3885         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3886         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3887         (ves_icall_MonoGenericParam_initialize): Removed.
3888         (monogenericparam_icalls): Removed.
3889         (generictypeparambuilder_icalls): Added new table for
3890         System.Reflection.Emit.GenericTypeParameterBuilder.
3891
3892         * reflection.c
3893         (mono_reflection_define_generic_parameter): Removed.
3894         (mono_reflection_initialize_generic_parameter): This is now called
3895         from GenericTypeParameterBuilder's .ctor.
3896
3897 2004-04-06  Martin Baulig  <martin@ximian.com>
3898
3899         * class.c (mono_class_init): Don't inflate nested classes in a
3900         generic instance.
3901         (mono_type_get_name_recurse): Include the generic arguments for
3902         generic instances and generic type declarations.
3903         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3904         (_mono_class_get_instantiation_name): Removed.
3905         (mono_class_create_generic): Always use `gklass->name' as our name.
3906
3907         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3908
3909         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3910         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3911         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3912         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3913         closed generic methods here.
3914
3915         * reflection.c
3916         (mono_reflection_generic_inst_get_nested_types): Removed.
3917         (inflate_mono_method): Copy the generic parameters from the
3918         MonoMethodHeader into out MonoGenericMethod.
3919
3920 2004-04-06  Martin Baulig  <martin@ximian.com>
3921
3922         * row-indexes.h
3923         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3924
3925         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3926
3927         * reflection.c (build_compressed_metadata): If we have any entries
3928         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3929         set the header version to 1.1.
3930
3931 2004-04-06  Martin Baulig  <martin@ximian.com>
3932
3933         * class.c (mono_class_init): If we're a generic instance,
3934         initialize our nested classes, too.
3935         (_mono_class_get_instantiation_name): Deal with the new `!%d'
3936         suffix. 
3937
3938 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3939
3940         * process.c: quote the argument passed to the shell on windows.
3941
3942 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
3943
3944         * threads.c (mono_alloc_special_static_data): Allow this to be
3945         called during startup.
3946
3947 2004-04-02  Martin Baulig  <martin@ximian.com>
3948
3949         * icall.c
3950         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
3951
3952 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
3953
3954         * icall.c: Fix build.
3955
3956 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
3957
3958         * Makefile.am: Added security.c|h.
3959         * icall.c: Added icall for get_UserName;
3960         * security.c: New file for security related icalls. Added function
3961         get_UserName for System.Environment (fix #56144).
3962         * security.h: New. Header file for security.c
3963
3964 2004-04-02  Dick Porter  <dick@ximian.com>
3965
3966         * icall.c: Deleted the icalls that were obsoleted some time ago
3967         by the ICU string code, and which were mixed into the icall
3968         rearranging.  Fixes bug 55969.
3969
3970         * string-icalls.h: 
3971         * string-icalls.c: Deleted the code that those icalls reference.
3972
3973 2004-04-01  Martin Baulig  <martin@ximian.com>
3974
3975         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
3976
3977         * class.c (mono_class_from_generic_parameter): Don't set 
3978         TYPE_ATTRIBUTE_INTERFACE.
3979         (my_mono_class_from_generic_parameter): Likewise.
3980
3981 2004-04-01  Martin Baulig  <martin@ximian.com>
3982
3983         * loader.c (find_method): Added an optional `MonoClass *ic'
3984         argument to search in a specific interface.
3985         (mono_get_method_constrained): New public function.
3986
3987 2004-04-01  Martin Baulig  <martin@ximian.com>
3988
3989         * reflection.c (mono_image_get_generic_field_token): Use the
3990         `handleref' cache here.
3991
3992 2004-04-01  Martin Baulig  <martin@ximian.com>
3993
3994         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
3995
3996         * reflection.c (create_generic_typespec): Use the `typespec' hash
3997         here, not the `typeref' one.    
3998
3999 2004-04-01  Martin Baulig  <martin@ximian.com>
4000
4001         * class.c (mono_class_inflate_generic_type): Moved the
4002         functionality into a new static inflate_generic_type() which
4003         returns NULL if it didn't do anything.  Only increment the
4004         `mono_stats.inflated_type_count' if we actually inflated
4005         something.
4006         (mono_class_get_full): Check the classes type to see whether we
4007         need to inflate it; also inflate MONO_TYPE_(M)VAR.
4008
4009 2004-04-01  Jackson Harper  <jackson@ximian.com>
4010
4011         * reflection.c: Set culture for assembly references.
4012         
4013 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
4014
4015         * reflection.[ch], icall.[ch], Fix support for pinning variables.
4016
4017 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4018
4019         * assembly.c:
4020         (do_mono_assembly_open): the critical section also covers
4021         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
4022
4023 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4024
4025         * threads.c:
4026         (mono_manage_threads): abort the background threads when finishing.
4027         Fixes bug #47232.
4028
4029 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4030
4031         * gc.c: only close the done_event handle if there was no timeout.
4032         C-ified comments.
4033
4034 2004-03-30  Martin Baulig  <martin@ximian.com>
4035
4036         * icall.c (icall_entries): It's called "System.Activator", not
4037         "System.Activation".    
4038
4039 2004-03-30  Martin Baulig  <martin@ximian.com>
4040
4041         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
4042         (mono_class_create_from_typespec): Likewise.
4043
4044 2004-03-30  Martin Baulig  <martin@ximian.com>
4045
4046         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
4047         `has_ctor_constraint' and `initialized'.
4048
4049 2004-03-30  Martin Baulig  <martin@ximian.com>
4050
4051         * reflection.c (encode_new_constraint): New static function to add
4052         the constructor constraint attribute to a type parameter.
4053         (encode_constraints): Call encode_new_constraint() if necessary.
4054
4055         * reflection.h
4056         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
4057
4058         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
4059         
4060 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
4061
4062         * reflection.c, icall.c: add support for pinning variables. 
4063
4064 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
4065
4066         * marshal.c (mono_marshal_get_managed_wrapper):
4067         init bool local with zero rather than null.
4068
4069 2004-03-29  Martin Baulig  <martin@ximian.com>
4070
4071         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
4072         the "official" behavior here.
4073         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
4074
4075 2004-03-29  Martin Baulig  <martin@ximian.com>
4076
4077         * icall.c: Reflect latest API changes.
4078
4079 2004-03-29  Martin Baulig  <martin@ximian.com>
4080
4081         * loader.c (mono_get_method_from_token): Also call
4082         mono_metadata_load_generic_params () for abstract and interface
4083         methods; replace the type arguments in the method signature with
4084         the ones which are loaded from the metadata.
4085
4086 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
4087
4088         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
4089         of the lock is not the current thread. MS.NET don't do it, in spite of
4090         what the documentation says. See bug #56157.
4091
4092 2004-03-28  Martin Baulig  <martin@ximian.com>
4093
4094         * class.c (mono_class_init): Don't call init_properties() and
4095         init_events() for generic instances; set `prop->parent' when
4096         inflating properties.
4097
4098         * reflection.c (mono_generic_inst_get_object): Call
4099         `mono_class_init (ginst->klass)'.
4100         (mono_type_get_object): Only create a MonoGenericInst if your
4101         generic type is a TypeBuilder.
4102         (do_mono_reflection_bind_generic_parameters): Only set
4103         `ginst->is_dynamic' if our generic type is a TypeBuilder.
4104
4105 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
4106
4107         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
4108         Fixes #56091.
4109
4110 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4111
4112         * icall.c: added Kill_internal icall.
4113         * process.[ch]: added Kill_internal icall.
4114
4115 2004-03-25  Martin Baulig  <martin@ximian.com>
4116
4117         * class.h (MonoStats): Added `generic_instance_count',
4118         `inflated_method_count', `inflated_type_count' and
4119         `generics_metadata_size'.       
4120
4121 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4122
4123         * reflection.c: no warnings now.
4124
4125 2004-03-25  Martin Baulig  <martin@ximian.com>
4126
4127         * class.c (mono_class_get_full): New public function; does a
4128         mono_class_get(), but also takes a `MonoGenericContext *'.
4129
4130         * loader.c (mono_field_from_memberref): Renamed to
4131         `field_from_memberref', made static and added `MonoGenericContext *'
4132         argument.
4133         (mono_field_from_token): Added `MonoGenericInst *' argument.
4134         (method_from_memberef): Likewise.
4135         (mono_get_method_from_token): Likewise.
4136         (mono_get_method_full): New public function; does a
4137         mono_get_method(), but also takes a `MonoGenericContext *'.
4138
4139         * verify.c (mono_method_verify): Get the method's generic context
4140         and pass it to mono_field_from_token(), mono_get_method_full() and
4141         mono_class_get_full().
4142
4143 2004-03-25  Martin Baulig  <martin@ximian.com>
4144
4145         * class.c (mono_class_inflate_generic_type): Take a
4146         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4147         `MonoGenericMethod *'.
4148
4149 2004-03-25  Martin Baulig  <martin@ximian.com>
4150
4151         * loader.h (MonoMethodInflated): Store the MonoGenericContext
4152         instead of the MonoGenericMethod here.
4153
4154 2004-03-25  Martin Baulig  <martin@ximian.com>
4155
4156         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4157         each time we create a new MonoGenericInst, we also create a new
4158         context which points back to us.
4159
4160         * class.c (inflate_method): Use `ginst->context' instead of
4161         creating a new context.
4162
4163         * loader.c (method_from_memberref): Use
4164         `klass->generic_inst->context' instead of creating a new context.
4165
4166 2004-03-25  Martin Baulig  <martin@ximian.com>
4167
4168         * class.h (MonoGenericContext): New struct.
4169         (MonoGenericMethod): Removed `generic_inst'.
4170
4171         * class.c (mono_class_inflate_generic_method): Take a
4172         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4173
4174 2004-03-25  Martin Baulig  <martin@ximian.com>
4175
4176         * loader.h (MonoMethodInflated): New typedef.
4177
4178         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4179         `generic_param_count' consume just 30 bits, added `is_inflated'
4180         and `has_type_parameters' flags (one bit each).
4181
4182         * class.c (mono_class_inflate_generic_method): Create a
4183         MonoMethodInflated instead of a MonoMethodNormal and set
4184         `is_inflated' in the method signature.
4185
4186         * class.h (MonoGenericMethod): Removed `generic_method'.
4187
4188 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4189
4190         * image.c: Make sure the name of a MonoImage is always an absolute path.
4191           This fixes bug #54415.
4192
4193 2004-03-24  Martin Baulig  <martin@ximian.com>
4194
4195         * class.c (mono_class_setup_vtable): If we're a generic instance,
4196         use our generic type's vtable size.
4197
4198 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4199
4200         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4201         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4202         problems.
4203
4204 2004-03-23  Martin Baulig  <martin@ximian.com>
4205
4206         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4207         `MonoEvent *events'.
4208
4209         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4210         (typebuilder_icalls): Added "get_event_info"; calls
4211         mono_reflection_event_builder_get_event_info(). 
4212
4213         * reflection.c (mono_reflection_generic_inst_initialize): Added
4214         `MonoArray *events'.
4215         (mono_reflection_event_builder_get_event_info): New function.
4216
4217 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4218
4219         * object.h: add mono_type_initialization_init
4220
4221         * object.c (mono_runtime_class_init): 
4222         implement class constructor synchronization rules
4223         to cope with threading issues.  
4224         add mono_type_initialization_init
4225
4226         * appdomain.c (mono_runtime_init): call 
4227         mono_type_initialization_init
4228
4229         * class.h: removing initializing field from MonoVTable
4230
4231 2004-03-23  Martin Baulig  <martin@ximian.com>
4232
4233         * class.c (my_mono_class_from_generic_parameter): Use
4234         `param->name' if it's not NULL. 
4235
4236 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4237
4238         * class.c: do not insert non-virtual methods in the vtable.
4239         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4240         that means the method is non-virtual. This never would have
4241         happened before.
4242
4243 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4244
4245         * profiler.c: Added lock for accessing coverage_hash.
4246
4247 2004-03-22  Martin Baulig  <martin@ximian.com>
4248
4249         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4250         `method->method->signature->generic_param_count != 0' to make it
4251         work for interface methods.
4252
4253 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4254
4255         * process.c: quote the string passed to the shell using g_shell_quote.
4256
4257 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4258
4259         * threads.c:
4260         (mono_threads_manage): don't remove the finalizer thread and self
4261         from the threads hash table so that mono_thread_manage can be called
4262         more than once.
4263
4264 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4265
4266         * process.c: quote the arguments when UseShellExecute is true. Fixes
4267         bug #55790.
4268
4269 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4270
4271         * threads.c: set mono_thread_detach as a cleanup routine for every
4272         thread. This way it's always executed upon thread termination, either
4273         aborted or finished normally. No more xsp hangs!
4274
4275 2004-03-17  Martin Baulig  <martin@ximian.com>
4276
4277         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4278         `int count_nested' and a `MonoType **nested'.
4279
4280         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4281         most of the functionality into a new static
4282         do_mono_reflection_bind_generic_parameters() and don't take a
4283         `MonoType *nested_in' argument any more.  Don't compute nested
4284         types here.
4285         (mono_reflection_generic_inst_get_nested_types): New public method
4286         to get nested types.
4287
4288         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4289         we're a nested class.
4290
4291         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4292         mono_reflection_generic_inst_get_nested_types() to compute the
4293         nested types.
4294
4295 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4296
4297         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4298         descriptive error message under windows.
4299         
4300 2004-03-17  Martin Baulig  <martin@ximian.com>
4301
4302         * class.c (dup_type): Added `const MonoType *original' argument;
4303         copy the attrs from the original type.
4304
4305 2004-03-17  Martin Baulig  <martin@ximian.com>
4306
4307         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4308         `m->generic_inst_cache' here.
4309
4310 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4311
4312         * exception.h exception.c: Add stack_overflow_exception.
4313
4314 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4315
4316         * threadpool.c:
4317         (overlapped_callback): call SetEvent *after* invoking the callback.
4318         No need to call CloseHandle.
4319
4320 2004-03-16  Martin Baulig  <martin@ximian.com>
4321
4322         * reflection.c (mono_image_get_fieldref_token): Take a
4323         `MonoReflectionField *' instead of a `MonoClassField *' and a
4324         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4325
4326 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4327
4328         * appdomain.c: don't add the culture to the filename we're looking for
4329         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4330
4331 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4332
4333         * locales.c: don't ignore symbols when doing case insensitive compares.
4334         Thanks Dick! Fixes bug #54046.
4335
4336         * threads.c: surround 'threads' usage with enter/leave in
4337         mono_thread_manage.
4338
4339 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4340
4341         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4342         implicitly marshalled as [Out]. Fixes #55450.
4343
4344         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4345         an exception.
4346
4347 2004-03-16  Martin Baulig  <martin@ximian.com>
4348
4349         * class.c (mono_class_from_generic_parameter): Use the actual
4350         parameter name. 
4351
4352 2004-03-16  Martin Baulig  <martin@ximian.com>
4353
4354         * reflection.c (type_get_signature_size): New static function.
4355         Compues the size of the type in a method signature.
4356         (method_get_signature_size): New static function; calls
4357         type_get_signature_size() to compute the actual size of the
4358         method's signature.
4359         (method_encode_signature): Use method_get_signature_size() to get
4360         the signature's size rather than using `nparams * 10'.
4361
4362 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4363
4364         * file-io.h: define here WapiOverlapped on windows. I don't want the
4365         regular OVERLAPPED one.
4366
4367         * file-io.c:
4368         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4369         Disabling AIO on windows.
4370
4371 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4372
4373         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4374         bug #55385.
4375
4376 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4377
4378         * appdomain.c: upgraded corlib version.
4379
4380         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4381         and BeginWrite. Allow opening files for asynchrnous operations.
4382
4383         * file-io.h: new struct that maps FileStreamAsyncResult.
4384         * icall.c: added new icalls.
4385         * process.[ch]: support setting child process environment variables
4386         and use the SHELL or COMSPEC when UseShellExecute is true.
4387
4388         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4389         callback for async. IO is here and also BindHandle.
4390
4391         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4392         from here.
4393
4394 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4395
4396         * reflection.c (create_custom_attr): Allow len == 0.
4397
4398         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4399         computation on big-endian machines.
4400
4401 2004-03-13  Martin Baulig  <martin@ximian.com>
4402
4403         * class.h (MonoGenericInst): Added `int count_ifaces'.
4404
4405         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4406         `ginst->count_ifaces' instead `klass->interface_count' since we
4407         may get called before the vtable is created.
4408
4409         * loader.c (mono_method_get_param_names): If we're a generic
4410         instance, return and don't initialize the class.
4411
4412         * reflection.c (mono_reflection_setup_generic_class): Don't call
4413         ensure_runtime_vtable().
4414         (mono_reflection_bind_generic_parameters): Set
4415         `ginst->count_ifaces'.
4416
4417 2004-03-11  Jackson Harper <jackson@ximian.com>
4418
4419         * icall.c:
4420         * unicode.c:
4421         * unicode.h: Remove unused System.Char icalls.
4422         
4423 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4424
4425         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4426         code when we P/Invoke the first library in Windows.Forms, instead
4427         of when we first open the assembly.
4428
4429         * assembly.c: Drop the lookup from here.
4430
4431 2004-03-10  Martin Baulig  <martin@ximian.com>
4432
4433         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4434         class for properties, fields and events.  Finally fixes #54945.
4435
4436 2004-03-10  Martin Baulig  <martin@ximian.com>
4437
4438         * metadata.c (mono_metadata_class_equal): New static function;
4439         checks whether two generic instances or two generic parameters are
4440         equal.
4441         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4442         compare classes.        
4443
4444 2004-03-10  Martin Baulig  <martin@ximian.com>
4445
4446         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4447
4448         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4449         argument and write it into the `reflection_info' field.
4450
4451         * icall.c
4452         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4453         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4454
4455 2004-03-09  Jackson Harper  <jackson@ximian.com>
4456
4457         * char-conversions.h: use 8 bits for numeric data its all we need
4458         * icall.c: numeric data is only 8 bits now.
4459
4460 2004-03-09  Martin Baulig  <martin@ximian.com>
4461
4462         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4463
4464         * class.c (init_properties, init_events): Initialize the new
4465         `parent' field.
4466
4467         * reflection.c (typebuilder_setup_properties): Likewise.
4468         (typebuilder_setup_events): Likewise.
4469
4470         * reflection.h (MonoEventInfo): Replaced `parent with
4471         `declaring_type' and `reflected_type'.
4472
4473         * icall.c (ves_icall_get_property_info): Distinguish between
4474         declaring and reflected type.
4475         (ves_icall_get_event_info): Likewise.
4476
4477 2004-03-09  Martin Baulig  <martin@ximian.com>
4478
4479         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4480         (ves_icall_Type_GetField): Correctly set field->klass.
4481
4482 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4483
4484         * loader.h: Fix warning.
4485
4486 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4487
4488         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4489         library routine if present.  Notice that it will still continue
4490         executing even if its missing, for those working on the Gtk#
4491         edition of Windows.Forms.
4492
4493         * assembly.c (do_mono_assembly_open): If loading the
4494         System.Windows.Forms call mono_loader_wini_init.
4495
4496 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4497
4498         * class.h: Added MonoRemoteClass struct.
4499         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4500         function for MonoStrings.
4501         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4502         Added internal call for getting the proxy type.
4503         * marshal.c: Get the type of transparent proxies from its remote_class.
4504         Added methods that generate the IL for type checks and casts:
4505         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4506         mono_marshal_get_proxy_cancast.
4507         * marshal.h: Declaration of the previous new methods.
4508         * object.c: Added new moethods for creating and updating MonoRemoteClass
4509         instances: mono_remote_class, mono_upgrade_remote_class, 
4510         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4511         * verify.c: FIx transparent_proxy_fields layout.
4512         * appdomain.c: Bump corlib version.
4513
4514 2004-03-04  Jackson Harper  <jackson@ximian.com>
4515
4516         * icall.c: Add icall to access char conversion tables.
4517         * char-conversions.h: Character conversion tables.
4518         * Makefile.am: Add char-conversions.h private header file.
4519         
4520 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4521
4522         * appdomain.c (unload_thread_main): Increase unloading timeout to
4523         10 sec as a temporary workaround for Nant problems.
4524
4525 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4526
4527         * gc.c: Add checks for GC_enable and GC_disable.
4528
4529         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4530         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4531         (bug #54988).
4532         
4533 2004-02-27  Martin Baulig  <martin@ximian.com>
4534
4535         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4536         `MonoReflectionType *' instead of a `MonoType *'.
4537
4538 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4539
4540         * gc.c (run_finalize): Avoid finalizing the object representing the
4541         finalizer thread.
4542         (finalizer_thread): Fix warning.
4543
4544 2004-02-25  Martin Baulig  <martin@ximian.com>
4545
4546         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4547         argument for nested types.
4548         (mono_class_create_generic): Added support for nested generictypes.
4549
4550         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4551         `GList *nested'.
4552
4553         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4554
4555         * reflection.c (method_encode_signature): Increase the minimum
4556         value of `size' from 10 to 11.
4557         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4558         and `MonoType **types' arguments instead of the `MonoArray
4559         *types'; added `MonoType *nested_in'.  Recursively instantiate
4560         nested classes. 
4561
4562 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4563
4564         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4565         stack_overflow_ex members which are used by exception handling.
4566
4567         * appdomain.c (mono_runtime_init): Initialize the new members.
4568
4569         * gc.c (mono_gc_enable): New helper function.
4570         * gc.c (mono_gc_disable): New helper function.
4571
4572 2004-02-23  Martin Baulig  <martin@ximian.com>
4573
4574         * icall.c: I must have been really stupid - make it actually work
4575         this time ;-)
4576
4577 2004-02-23  Martin Baulig  <martin@ximian.com>
4578
4579         * loader.c (method_from_memberref): Only inflate the method if
4580         it's in another klass.
4581
4582 2004-02-23  Martin Baulig  <martin@ximian.com>
4583
4584         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4585         (mono_class_init): If we're a generic instance and an interface,
4586         compute `class->interface_id'; also create `class->interfaces'
4587         here and inflate them.
4588
4589         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4590         `ginst->is_open'.
4591         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4592
4593         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4594
4595 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4596
4597         * reflection.c (method_encode_code): Improved the error message
4598         generated by the exception.
4599
4600 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4601
4602         * icall.c: Martin did not do what he said in the ChangeLog for
4603         2004-02-18, but put back the changes for properties and events.
4604         Commenting those changes out again and adding comment to bug #54518.
4605         
4606         * process.c: removed warning.
4607
4608 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4609
4610         * marshal.c (emit_struct_conv): Print an error message instead of
4611         asserting when a type does not have the StructLayout attribute.
4612
4613 2004-02-20  Martin Baulig  <martin@ximian.com>
4614
4615         * reflection.c (mono_type_get_object): Also use the cache for
4616         generic instances.
4617         (mono_reflection_bind_generic_parameters): Always compute
4618         `ginst->ifaces'.        
4619
4620 2004-02-20  Martin Baulig  <martin@ximian.com>
4621
4622         * class.h (MonoGenericMethod): Removed `klass'.
4623
4624         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4625         *klass' argument.
4626
4627 2004-02-20  Martin Baulig  <martin@ximian.com>
4628
4629         * reflection.c (method_encode_methodspec): Actually use the
4630         uninflated signature for the memberref.
4631
4632 2004-02-20  Martin Baulig  <martin@ximian.com>
4633
4634         * class.h (MonoGenericMethod): Removed `declaring'.
4635
4636         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4637         is NULL, compute it here.
4638
4639 2004-02-20  Martin Baulig  <martin@ximian.com>
4640
4641         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4642
4643         * metadata.c (mono_metadata_generic_inst_hash): New method.
4644         (mono_metadata_generic_inst_equal): New method.
4645
4646         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4647         `klass->image->generic_inst_cache' cache to avoid creating
4648         duplicate MonoGenericInst's.
4649
4650         * class.c (mono_class_inflate_generic_type): Use the cache.
4651
4652 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4653
4654         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4655
4656 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4657
4658         * icall.c: added Socket.WSAIoctl icall.
4659
4660         * socket-io.[ch]: implemented
4661         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4662
4663 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4664
4665         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4666
4667 2004-02-18  Urs C Muff  <umuff@quark.com>
4668
4669         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4670         this work on PPC and other big-endian architectures.
4671
4672         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4673         fields with an underscore to make sure they're only accessed by
4674         the read32() macro.
4675
4676 2004-02-18  Martin Baulig  <martin@ximian.com>
4677
4678         * icall.c: Put the klass->refclass changes back for methods and
4679         fields, but not for properties and events.  We're currently not
4680         distinguishing between DeclaringType and ReflectedType for
4681         properties and events, that's what caused the regressions.
4682
4683 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4684
4685         * object.c:
4686         (mono_async_result_new): the handle can be NULL.
4687
4688         * threadpool.c: Use an event instead of a semaphore, don't initialize
4689         it until needed. This saves quite a few semaphores from being created
4690         when using the threadpool.
4691
4692 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4693
4694         * object.c (mono_string_is_interned_lookup): Fix interning of long
4695         strings. Fixes #54473.
4696
4697         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4698
4699         * icall.c: Revert the klass->refclass changes since they introduce
4700         regressions (bug #54518).
4701
4702 2004-02-18  Martin Baulig  <martin@ximian.com>
4703
4704         * class.c (mono_class_init): If we're a generic instance and don't
4705         come from a TypeBuilder, inflate our members here.
4706         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4707         (mono_class_create_generic): New public method.
4708         (mono_class_initialize_generic): Removed.
4709         (get_instantiation_name): Renamed to
4710         _mono_class_get_instantiation_name() and made it public.
4711
4712 2004-02-18  Martin Baulig  <martin@ximian.com>
4713
4714         * class.c (mono_class_inflate_generic_type): Clear the new
4715         instance's `nginst->klass' when inflating a generic instance.
4716         (mono_class_is_subclass_of): Added (basic) support for generic
4717         instances.
4718
4719 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4720
4721         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4722         MonoMempool to hold compiled native code.
4723
4724 2004-02-17  Martin Baulig  <martin@ximian.com>
4725
4726         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4727         `properties'.
4728
4729         * reflection.c (mono_reflection_generic_inst_initialize): Added
4730         `MonoArray *properties' argument.
4731
4732         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4733
4734 2004-02-17  Martin Baulig  <martin@ximian.com>
4735
4736         * icall.c (ves_icall_Type_GetFields): Renamed to
4737         ves_icall_Type_GetFields_internal() and added a
4738         `MonoReflectionType *rtype' argument; pass it to
4739         mono_field_get_object() to set the field's "reflected" type.
4740         (ves_icall_Type_GetConstructors): Likewise.
4741         (ves_icall_Type_GetEvents): Likewise.
4742         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4743         argument; pass it to mono_method_get_object() to set the method's
4744         "reflected" type.       
4745
4746 2004-02-17  Martin Baulig  <martin@ximian.com>
4747
4748         * class.h (MonoDynamicGenericInst): New type.
4749         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4750
4751         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4752         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4753         (ves_icall_MonoGenericInst_GetFields): New interncall.
4754
4755         * class.c (mono_class_from_generic): Don't call
4756         mono_class_initialize_generic() if this is a dynamic instance;
4757         ie. it's being created from a TypeBuilder.
4758         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4759         `class->byval_arg.type'.
4760
4761         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4762         to `inflate_method' and made static.
4763         (mono_reflection_inflate_field): Removed.
4764         (mono_reflection_generic_inst_initialize): New public method.
4765
4766         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4767         `ctors' and `fields'; added `initialized'.
4768
4769 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4770
4771         * debug-helpers.c (mono_method_full_name): Fix output for empty
4772         namespaces.
4773
4774 2004-02-12  Martin Baulig  <martin@ximian.com>
4775
4776         * class.h (MonoClassField): Added `MonoType *generic_type'.
4777
4778         * reflection.c (mono_image_get_fieldref_token): Added support for
4779         instantiated generic types.
4780         (field_encode_inflated_field): Removed.
4781         (mono_image_get_inflated_field_token): Removed.
4782         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4783
4784         * reflection.h (MonoReflectionInflatedField): Removed.
4785
4786 2004-02-12  Martin Baulig  <martin@ximian.com>
4787
4788         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4789         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4790
4791         * reflection.c (mono_image_get_methodspec_token): Take a
4792         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4793         (mono_image_create_token): Check whether we have a
4794         `method->signature->gen_method' and call
4795         mono_image_get_methodspec_token() if appropriate.
4796         (inflated_method_get_object): Removed.
4797         (mono_reflection_bind_generic_method_parameters): Return a
4798         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4799         (mono_reflection_inflate_method_or_ctor): Likewise.
4800
4801         * reflection.h (MonoReflectionInflatedMethod): Removed.
4802
4803 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4804
4805         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4806         for custom valuetype marshalling.
4807
4808         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4809
4810 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4811
4812         * icall.c: fixed WSAGetLastError_internal name.
4813
4814 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4815
4816         * threads.c (mono_thread_attach): Allow this to be called multiple
4817         times for a thread.
4818         
4819         * threads.c (build_wait_tids): Do not wait for ourselves.
4820
4821         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4822         appdomain list is empty.
4823
4824         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4825         memory returned by mono_string_builder_to_utf16, since it points into
4826         managed memory. Thanks to Bernie Solomon for noticing this.
4827
4828         * icall.c: Add AppDomainSetup icalls.
4829
4830         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4831
4832         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4833         types.
4834
4835         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4836         custom attributes to the method_aux struct. Also fix array indexes etc.
4837
4838         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4839         
4840 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4841
4842         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4843         (both static and runtime) and reduce startup time.
4844
4845 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4846
4847         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4848         AsAny marshalling conversion instead of crashing.
4849
4850         * marshal.c: Fix warnings.
4851
4852 2004-02-09  Martin Baulig  <martin@ximian.com>
4853
4854         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4855
4856         * reflection.h (MonoReflectionInflatedMethod): Removed the
4857         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4858
4859         * reflection.c (method_encode_methodspec): Removed the `method'
4860         argument; we get it from `gmethod->declaring'.
4861         (inflated_method_get_object): Removed the `declaring' argument.
4862
4863 2004-02-09  Martin Baulig  <martin@ximian.com>
4864
4865         * class.h (MonoGenericMethod): New type.
4866         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4867         `generic_method'.
4868
4869         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4870         a `MonoGenericMethod *gen_method' one.
4871
4872         * class.c (mono_class_inflate_generic_type): Take an additional
4873         `MonoGenericMethod * argument.  This is only non-NULL if we're
4874         inflating types for a generic method.   
4875         (mono_class_inflate_generic_signature): Renamed to
4876         inflate_generic_signature() and made static; take a
4877         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4878         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4879         instead of a `MonoGenericInst *' one.
4880         (mono_class_inflate_generic_method): Likewise.
4881
4882         * reflection.c (encode_generic_method_sig): Take a
4883         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4884         (method_encode_methodspec): Likewise.
4885         (inflated_method_get_object): Likewise. 
4886
4887         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4888         field with a `MonoGenericMethod *gmethod' one.  
4889
4890 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4891
4892         * class.h (mono_class_has_parent): add parens to expansion
4893         so you can ! this.
4894
4895 2004-02-08  Martin Baulig  <martin@ximian.com>
4896
4897         * image.h (MonoImage): Removed `generics_cache'.
4898
4899         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4900         instead of a `MonoType *' argument; removed the `inflate_methods'
4901         argument.  Don't inflate methods here.
4902
4903         * loader.c (find_method): If it's a generic instance, call
4904         mono_class_init() on the `sclass->generic_inst->generic_type'.
4905
4906         * metadata.c (mono_type_size): Make this work on uninitialized
4907         generic instances; call it on the `ginst->generic_type's class.
4908
4909         * reflection.c (mono_reflection_bind_generic_parameters): Call
4910         mono_class_from_generic() to create the `ginst->klass'.
4911
4912 2004-02-08  Martin Baulig  <martin@ximian.com>
4913
4914         * class.h (MonoClass): Changed type of `generic_inst' from
4915         `MonoType *' to `MonoGenericInst *'.
4916
4917 2004-02-08  Martin Baulig  <martin@ximian.com>
4918
4919         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4920         mono_type_get_object(), this is now creating a `MonoGenericInst'
4921         for MONO_TYPE_GENERICINST.
4922         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4923         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4924
4925         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4926         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4927         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4928         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4929         and reflected type.
4930
4931         * reflection.h (MonoReflectionInflatedMethod): Removed
4932         `declaring_type' and `reflected_type'.
4933
4934 2004-02-08  Martin Baulig  <martin@ximian.com>
4935
4936         * class.h (MonoGenericInst): Added `MonoType *parent' and
4937         `MonoType **ifaces'.
4938
4939         * reflection.h (MonoReflectionGenericInst): Removed `klass',
4940         `parent' and `interfaces'.
4941
4942         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4943         `MonoType *' argument and return a `MonoType *'.
4944
4945         * icall.c
4946         (ves_icall_MonoGenericInst_GetParentType): New interncall.
4947         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
4948
4949 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4950
4951         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
4952         valuetype marshalling.
4953
4954 2004-02-06  Martin Baulig  <martin@ximian.com>
4955
4956         * class.c
4957         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
4958         (my_mono_class_from_generic_parameter): Likewise.
4959
4960 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4961
4962         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
4963         contents of the symbol files lazily.
4964
4965         * object.h (MonoThread): Add 'name' and 'name_len' fields.
4966
4967         * threads.h threads.c icall.c: New icalls for getting and setting the
4968         threads name.
4969
4970 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
4971
4972         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
4973         Raise an exception when the domain is not found.
4974
4975 2004-02-03  Martin Baulig  <martin@ximian.com>
4976
4977         * reflection.c (mono_image_get_methodspec_token): Use the
4978         uninflated signature; fixes gen-33.
4979
4980 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
4981
4982         * gc.c threads.c: Make the finalizer thread a normal managed thread so
4983         the finalizer code can use thread functionality.
4984
4985         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
4986         the finalizer thread.
4987
4988         * threads.c: Make some functions more robust.
4989
4990         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
4991
4992         * metadata.h: Add new marshalling conventions.
4993
4994         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
4995         stringbuilder marshalling. Fixes #53700.
4996
4997         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
4998
4999         * reflection.c (mono_image_get_type_info): Save declarative security
5000         info.
5001
5002         * reflection.c (mono_image_get_field_info): Handle uninitialized 
5003         unmanaged fields as well.
5004
5005         * appdomain.c: Bump corlib version.
5006
5007 2004-02-01  Martin Baulig  <martin@ximian.com>
5008
5009         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
5010         method type arguments.  
5011
5012 2004-01-30  Duncan Mak  <duncan@ximian.com>
5013
5014         * marshal.h: Add prototype for
5015         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
5016         and
5017         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
5018         fix the build.
5019
5020 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
5021
5022         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
5023         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
5024
5025 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5026
5027         * marshal.c (mono_marshal_get_native_wrapper): Add support for
5028         custom marshalling of valuetypes.
5029
5030         * marshal.c: Fix some warnings.
5031
5032 2004-01-29  Martin Baulig  <martin@ximian.com>
5033
5034         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
5035         for generic method parameters.
5036
5037         * reflection.c (method_encode_methodspec): Write the uninflated
5038         signature into the methodspec table.
5039         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
5040         is always the uninflated method.
5041         (reflection_methodbuilder_to_mono_method): Copy the generic
5042         parameters from the MethodBuilder into `header->gen_params'.
5043
5044 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5045
5046         * class.c (mono_class_from_generic_parameter): Fix warning.
5047
5048 2004-01-27  Martin Baulig  <martin@ximian.com>
5049
5050         * class.c (mono_class_from_generic_parameter): Don't create
5051         `klass->methods' here.  
5052
5053 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
5054
5055         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
5056         extension since it does not work with libraries named lib<FOO>.dll.so.
5057
5058 2004-01-25  Martin Baulig  <martin@ximian.com>
5059
5060         * class.c (mono_class_inflate_generic_type): Added support for
5061         MONO_TYPE_GENERICINST.
5062
5063         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
5064         inflate methods on open constructed types.      
5065
5066 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5067
5068         * object.c: fire ProcessExit event in the root AppDomain after running
5069         Main. Fixes bug #53299.
5070
5071 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
5072
5073         * socket-io.c: include the new socket-wrappers.h header.
5074         Use the wrappers instead of the unix socket functions to make the code
5075         more clear.
5076
5077 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
5078
5079         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
5080
5081         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5082         Fixes #22532.
5083
5084 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
5085
5086         * reflection.c (mono_image_create_pefile): Handle the case when the
5087         entry point is not a MethodBuilder.
5088
5089         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5090         field to ReflectionMethod since it is not allways a builder.
5091
5092         * reflection.c (type_get_fully_qualified_name): New helper function to
5093         return the fully qualified name of a type.
5094
5095         * reflection.c (encode_marshal_blob): Always emit the fully qualified
5096         type name for custom marshallers.
5097
5098         * reflection.c (mono_marshal_spec_from_builder): Ditto.
5099
5100         * class.c (mono_class_setup_vtable): If a parent class already 
5101         implements an interface, use the implementing methods from that class.
5102         Fixes #53148.
5103
5104 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5105
5106         * threadpool.c: just return instead of ExitThread to allow for thread
5107         clean up earlier.
5108
5109 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
5110
5111         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
5112         when closing resource modules.
5113
5114         * reflection.c (mono_image_create_pefile): Handle the case when the
5115         entry point is not a MethodBuilder.
5116
5117         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5118         field to ReflectionMethod since it is not allways a builder.
5119
5120 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5121
5122         * marshal.c (mono_marshal_get_managed_wrapper): 
5123         mono_marshal_alloc takes native int so CONV_I
5124         the arg for 64bits.
5125
5126 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
5127
5128         * reflection.c (fixup_cattrs): New function to fixup the methoddef
5129         tokens in the cattr table. Fixes #53108.
5130
5131 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5132
5133         * loader.c: don't trim ".dll" before looking up in the config file.
5134         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5135
5136 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5137
5138         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
5139         Return the module which contains the resource as well.
5140         (ves_icall_System_Reflection_Module_Close): New icall.
5141
5142         * appdomain.c: Bump corlib version number.
5143
5144         * image.c (mono_image_addref): New public function.
5145
5146         * assembly.c: Call mono_image_addref.
5147
5148         * reflection.c (mono_module_get_object): Increase reference count of 
5149         the image.
5150
5151         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5152         Fixes #22532.
5153
5154         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5155         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5156         proper exceptions on DllImport problems.
5157
5158 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5159
5160         * class.c, metadata.c: eliminate CSIZE macro.
5161
5162 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5163
5164         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5165         * object.h: Added async_callback field in MonoAsyncResult.
5166         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5167         * verify.c: Added async_callback in MonoAsyncResult layout.
5168
5169 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5170
5171         * reflection.c (mono_reflection_get_custom_attrs): Add support
5172         for Modules.
5173
5174 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5175
5176         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5177         marshalling.
5178         (mono_marshal_method_from_wrapper): Add null pointer check.
5179
5180 2004-01-16  Martin Baulig  <martin@ximian.com>
5181
5182         * debug-mono-symfile.h: Set version number to 36 and reflect
5183         latest symbol writer changes.
5184
5185 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5186
5187         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5188         multi-dimensional arrays.
5189         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5190         (mono_class_from_mono_type): Use bounded_array_class_get.
5191         
5192         * class.c (mono_bounded_array_class_get): New function which takes
5193         a 'bounded' bool argument to distinguish vectors from one dimensional
5194         arrays.
5195
5196         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5197         bounded_array_class_get if the array has bounds.
5198
5199         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5200         Search modules loaded using AssemblyBuilder:AddModule as well.
5201
5202 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5203
5204         * appdomain.c: increased corlib version.
5205         * filewatcher.c: removed g_print.
5206         * icall.c:
5207         (get_property_info): only allocate what is actually requested.
5208         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5209
5210 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5211
5212         * Makefile.am: added filewatcher.[ch]
5213         * filewatcher.[ch]: FileSystemWatcher runtime support.
5214         * icall.c: added new FSW icalls.
5215
5216 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5217
5218         * string-icalls.c: fix stringbuilder regression as suggested by
5219         Iain McCoy <iain@mccoy.id.au>.
5220
5221 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5222
5223         * process.c (process_read_stringtable_block): Recognize '007f' as
5224         a language neutral stringtable block.
5225
5226 2004-01-12  Patrik Torstensson
5227
5228         * object.h (MonoStringBuilder) : Changed layout to support our
5229         new stringbuilder class.
5230         * marshal.c: Change marshalling to support the new layout of 
5231         string builder.
5232         * appdomain.c: increased version number because new layout of
5233         string builder.
5234
5235 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5236
5237         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5238         assembly name as an string instead of an AssemblyName, since it is
5239         easier to extract info from it.
5240
5241         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5242         the culture subdirectories too. Fixes #52231.
5243
5244 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5245
5246         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5247         It takes 2 new parameters with an optional name for the method to look
5248         for and case ignoring info.
5249
5250         * threadpool.c: removed unused variable.
5251
5252 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5253
5254         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5255         It takes 2 new parameters with an optional name for the property to look
5256         for and case ignoring info.
5257         Fixes bug #52753.
5258
5259 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5260
5261         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5262         Fix #52451.
5263
5264 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5265
5266         * appdomain.c:
5267         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5268         Fixes bug #52630.
5269
5270 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5271
5272         * reflection.c: Add support for more than one unmanaged resource.
5273
5274         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5275         in field->def_value, as done in all other cases.
5276
5277         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5278         TypeBuilders.
5279
5280         * reflection.c (mono_reflection_create_runtime_class): Remove 
5281         errorneous assignment to klass->element_class, since it is already
5282         done in mono_reflection_setup_internal_class.
5283
5284 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5285
5286         * gc.c: added missing LeaveCriticalSection.
5287         * icall.c: indented a couple of lines.
5288         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5289         if we call EndInvoke inside a callback. Fixes bug #52601.
5290
5291 2004-01-07  Martin Baulig  <martin@ximian.com>
5292
5293         * mono-debug-debugger.h
5294         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5295
5296 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5297
5298         * appdomain.c: Use messages in NotImplementedException.
5299
5300         * exception.c (mono_get_exception_not_implemented): Now this takes
5301         a message argument.
5302
5303         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5304         exception instead of g_asserting an aborting when something is not
5305         implemented.
5306
5307         Add some inline docs.
5308
5309 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5310
5311         * reflection.h: Update after changes to object layout.
5312
5313         * reflection.c: Implement saving of unmanaged aka win32 resources.
5314
5315         * appdomain.c: Bump version number.
5316
5317         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5318         Handle missing domains gracefully.
5319
5320 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5321
5322         * file-io.c : On Windows, there are much more invalid_path_chars.
5323
5324 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5325
5326         * class.h, object.c: prepare for GetType () speedup.
5327
5328 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5329
5330         * profiler.c: workaround for --profile null reference exception on
5331           cygwin. Patch by Patrik Torstensson.
5332
5333 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5334
5335         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5336         make work for unaligned access.
5337
5338 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5339
5340         * class.c: small cleanup (class->fields [i] -> field).
5341         * image.c: check address of metadata is valid.
5342
5343 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5344
5345         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5346         search the list of loaded assemblies.
5347
5348         * reflection.c (mono_reflection_type_from_name): Use 
5349         mono_assembly_loaded instead of mono_image_loaded.
5350
5351         * reflection.c: Fix warnings.
5352
5353 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5354
5355         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5356         is dynamic. This is needed since an assembly can contain both dynamic and
5357         non-dynamic images.
5358
5359         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5360         assembly->dynamic.
5361
5362         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5363
5364         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5365         to store modules loaded using AddModule.
5366
5367         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5368         on Modules.
5369
5370         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5371
5372         * reflection.c (mono_image_fill_export_table_from_module): New function to
5373         fill out the EXPORTEDTYPES table from a module.
5374
5375         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5376         into a separate function. Also handle loaded non-dynamic modules.
5377
5378         * reflection.c (mono_image_basic_init): Fix memory allocation.
5379
5380         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5381
5382         * assembly.c (mono_assembly_load_references): Make this public.
5383
5384 2003-12-19  Martin Baulig  <martin@ximian.com>
5385
5386         * class.c (mono_class_initialize_generic): Made this static, take
5387         a `MonoGenericInst *' instead of a `MonoClass *'.
5388         (mono_class_from_generic): Call mono_class_initialize_generic()
5389         unless we're already initialized or being called from
5390         do_mono_metadata_parse_generic_inst().
5391
5392         * class.h (MonoGenericInst): Added `initialized' and
5393         `init_pending' flags.
5394
5395         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5396         `mono_class_init (gklass)' or mono_class_initialize_generic()
5397         here; set `generic_inst->init_pending' while parsing the
5398         `type_argv'.
5399
5400 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5401
5402         * locales.c: include string.h for memxxx prototypes
5403
5404 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5405
5406         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5407         constructor when accessing literal fields.
5408
5409 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5410
5411         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5412
5413         * reflection.c (assembly_add_resource_manifest): New function to fill
5414         the MANIFESTRESOURCE table.
5415
5416         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5417
5418         * reflection.h: Update to changes in class layout.
5419
5420         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5421         Reenable call to mono_runtime_is_shutting_down ().
5422
5423         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5424         determine if the runtime is shutting down.
5425
5426 2003-12-16  Jackson Harper <jackson@ximian.com>
5427
5428         * icall.c: comment out call to mono_runtime_is_shutting_down to
5429         fix build.
5430         
5431 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5432
5433         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5434         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5435
5436 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5437
5438         * reflection.c: move definition of swap_with_size
5439         to before its first call
5440
5441 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5442
5443         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5444
5445         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5446         icall.
5447
5448         * object.c: Fix warnings.
5449
5450         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5451         members if FlattenHierarchy is set.
5452
5453         * reflection.c (mono_image_add_decl_security): New function to emit
5454         declarative security.
5455
5456         * reflection.h reflection.c: Add support for declarative security.
5457
5458         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5459         
5460 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5461
5462         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5463         
5464         * appdomain.c verify.c: Moved corlib version checking into its own
5465         function in appdomain.c since it needs to create vtables etc.
5466
5467 2003-12-13  Patrik Torstensson <p@rxc.se>
5468
5469         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5470         instead of unwrapped server.
5471
5472 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5473
5474         * verify.c (check_corlib): Fix field index.
5475
5476 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5477
5478         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5479         GetGacPath icall.
5480
5481 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5482
5483         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5484         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5485         cope with sizeof(size_t) != sizeof(guint32).
5486
5487 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5488
5489         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5490         in case of failure.
5491
5492 2003-12-10  Mark Crichton <crichton@gimp.org>
5493
5494         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5495         in managed code.
5496
5497         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5498
5499 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5500
5501         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5502         marked as deleted.
5503
5504 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5505
5506         * verify.c (check_corlib): Handle the case when the version field is 
5507         initialized by a static constructor.
5508
5509 2003-12-08  Patrik Torstensson  <p@rxc.se>
5510
5511     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5512
5513 2003-12-08  Martin Baulig  <martin@ximian.com>
5514
5515         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5516         a MonoReflectionGenericParameter, also take the parameter index
5517         and name as arguments.
5518         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5519         (ves_icall_MonoGenericParam_initialize): New interncall.
5520         (ves_icall_Type_make_byref_type): New interncall.
5521
5522         * reflection.h (MonoReflectionGenericParam): Derive from
5523         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5524         `index' fields.
5525
5526         * reflection.c (mono_reflection_define_generic_parameter): Create
5527         and return a new MonoReflectionGenericParam; don't initialize the
5528         constraints here.
5529         (mono_reflection_initialize_generic_parameter): New public method;
5530         initializes the constraints and creates the `param->pklass'.
5531
5532 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5533
5534         * reflection.h reflection.c: Use the new fields 'num_types', 
5535         'num_fields' and 'num_methods' to track the number of types etc.
5536
5537         * verify.c (check_corlib): Check corlib version number.
5538
5539 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5540
5541         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5542         function works on all methods.
5543
5544 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5545
5546         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5547         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5548         the custom_type_info flag of the transparent proxy.
5549         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5550         objects that supports IRemotingTypeInfo.
5551         * object.h: Added custom_type_info field in transparent proxy.
5552
5553 2003-12-06  Martin Baulig  <martin@ximian.com>
5554
5555         * class.c (mono_class_create_from_generic): Removed.
5556         (mono_class_from_generic): Check `ginst->klass' before doing
5557         anything else.  This is important to fully support "recursive"
5558         generic types.
5559
5560         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5561         empty `generic_inst->klass' before doing anything else.
5562
5563 2003-12-06  Dick Porter  <dick@ximian.com>
5564
5565         * verify.c: 
5566         * object.h:
5567         * icall.c:
5568         * locales.c: Use C structs to access class fields.  Don't do a
5569         conversion between MonoString and UChar because both are
5570         platform-endian UTF-16.  Compare now takes startindex and count
5571         parameters.  Add a char overload for IndexOf.  Speed up the
5572         invariant string IndexOf.
5573
5574 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5575
5576         * Makefile.am (monosn_LDADD): Fix parallel build.
5577
5578 2003-12-04  Martin Baulig  <martin@ximian.com>
5579
5580         * icall.c
5581         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5582         (ves_icall_Type_make_array_type): New interncall.       
5583
5584 2003-12-04  Martin Baulig  <martin@ximian.com>
5585
5586         * locales.c: also change it in the !HAVE_ICU case.
5587
5588 2003-12-04  Dick Porter  <dick@ximian.com>
5589
5590         * icall.c:
5591         * locales.c: construct_compareinfo is now in CompareInfo, not
5592         CultureInfo.
5593
5594 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5595
5596         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5597         image->files array.
5598
5599         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5600         table as well.
5601
5602         * assembly.c (mono_assembly_load_references): Only load references
5603         once.
5604
5605         * class.c (mono_class_from_name): Avoid linear search of the 
5606         EXPORTEDTYPE table.
5607
5608         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5609
5610 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5611
5612         * image.h (MonoImage): Add 'field_cache' field.
5613
5614         * loader.c (mono_field_from_token): Cache field lookups.
5615         
5616         * reflection.c (mono_module_get_object): Fix name property.
5617
5618         * icall.c (ves_icall_get_enum_info): Update after changes to 
5619         mono_metadata_get_constant_index ().
5620
5621         * icall.c: Get rid of get_type_info icall, use a separate icall for
5622         each type property to avoid needless memory allocations. Fixes #51514.
5623
5624         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5625         to avoid needless binary searches.
5626
5627         * class.c (class_compute_field_layout): Move the initialization of
5628         field->def_value to mono_class_vtable ().
5629
5630         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5631         non-corlib types.
5632
5633         * object.c (mono_object_allocate): Make it inline.
5634
5635         * object.c (mono_object_allocate_spec): Make it inline.
5636         
5637 2003-12-02  Dick Porter  <dick@ximian.com>
5638
5639         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5640         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5641
5642 2003-12-01  Dick Porter  <dick@ximian.com>
5643
5644         * threads.c: Fix signature and call in CreateMutex and
5645         CreateEvent.
5646
5647 2003-12-01  Dick Porter  <dick@ximian.com>
5648
5649         * icall.c: 
5650         * locales.c: Implement string compares and searching
5651
5652         * object.h: Add extra Thread field
5653
5654 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5655
5656         * reflection.c (fixup_method): Add support for MonoCMethod.
5657
5658 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5659
5660         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5661
5662         * reflection.c (assembly_name_to_aname): Allow extra characters in
5663         assembly names. Fixes #51468.
5664
5665 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5666
5667         * exception.c (mono_exception_from_name_domain): New helper function.
5668
5669         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5670         exception object in the correct domain.
5671
5672         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5673         formatting + make a copy a the input data.
5674
5675         * loader.c (mono_get_method_from_token): Methods which contain
5676         native code do not have entries in the ImplMap.
5677
5678         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5679         Thanks to Gonzalo for spotting this.
5680         
5681         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5682         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5683
5684         * assembly.h (mono_assembly_load_from): Split the second part of 
5685         assembly loading into a new public function.
5686
5687         * exception.h (mono_get_exception_bad_image_format): New function.
5688
5689 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5690
5691         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5692         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5693         
5694         * icall.c: Add new icall for creating dynamic methods.
5695
5696         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5697
5698         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5699
5700         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5701         create a dynamic method.
5702
5703         * reflection.c (resolve_object): New helper function.
5704
5705         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5706         which manipulate it so they can also work on dynamic methods.
5707
5708         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5709         creating the MonoReflectionMethodAux structure if it is not needed.
5710         
5711         * reflection.h verify.c: Update after changes to object layout.
5712
5713         * reflection.c (method_builder_encode_signature): Fix compilation on
5714         gcc 2.95.x.
5715
5716 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5717
5718         * appdomain.h: Added support for context static fields. Added static_data
5719           field to MonoAppContext and renamed thread_static_fields to a more
5720           generic special_static_fields in MonoAppDomain, since it can now contain
5721           context static fields.
5722         * domain.c: Updated hashtable name.
5723         * object.c: Replaced field_is_thread_static() for a more generic
5724           field_is_special_static() which also checks for context static attribute.
5725           In mono_class_vtable(), added support for static context fields.
5726         * threads.c: Changed methods that manage thread static fields to more
5727           generic methods so they can be reused both for thread and context static
5728           data.
5729         * threads.h: Declared some new methods.
5730
5731 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5732
5733         * reflection.h: Update after changes to the managed types.
5734
5735         * reflection.c (encode_custom_modifiers): New helper function.
5736
5737         * reflection.c (method_encode_signature): Emit custom modifiers.
5738
5739         * reflection.c (field_encode_signature): Emit custom modifiers.
5740
5741 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5742
5743         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5744
5745         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5746         implementation.
5747
5748         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5749         icall.
5750
5751         * object.c (mono_field_get_value_object): New function.
5752
5753         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5754         specific.
5755
5756 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5757
5758         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5759         return a preallocated out-of-memory exception instance.
5760
5761         * object.c (out_of_memory): Use the new function.
5762
5763         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5764         flag is before the custom modifiers. Fixes #49802.
5765
5766 2003-11-16  Martin Baulig  <martin@ximian.com>
5767
5768         * class.c (mono_class_is_open_constructed_type): Implemented the
5769         MONO_TYPE_GENERICINST case.
5770
5771 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5772
5773         * assembly.c (mono_assembly_fill_assembly_name): New function to
5774         fill out the MonoAssemblyName structure.
5775         (mono_assembly_open): Use the new function.
5776
5777         * icall.c (fill_reflection_assembly_name): New helper function.
5778
5779         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5780         new function.
5781
5782         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5783
5784 2003-11-15  Martin Baulig  <martin@ximian.com>
5785
5786         * class.c (mono_class_is_open_constructed_type): New public
5787         function; checks whether a type is an open constructed type,
5788         ie. whether it still contains type parameters.
5789         (mono_class_inflate_generic_type): If we're a type parameter and
5790         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5791         type.
5792
5793         * class.h (MonoGenericInst): Added `guint32 is_open'.
5794
5795         * loader.c (method_from_methodspec): Check whether we're an open
5796         or closed constructed type and set `ginst->is_open'.
5797
5798         * reflection.c (mono_reflection_bind_generic_parameters): Check
5799         whether we're an open or closed constructed type and set
5800         `ginst->is_open'.
5801         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5802         from open constructed types.
5803
5804 2003-11-15  Martin Baulig  <martin@ximian.com>
5805
5806         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5807         a generic instance (instead of a generic type declaration) with
5808         unbound generic parameters, bind them to our actual types.
5809
5810 2003-11-14  Martin Baulig  <martin@ximian.com>
5811
5812         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5813
5814         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5815         an interface type, populate `res->interfaces' with instantiated
5816         versions of all the interfaces we inherit.
5817
5818 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5819
5820         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5821         when MONO_PATH is set but doesn't contain the install dir.
5822
5823 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5824
5825         * icall.c:
5826         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5827         it's also implemented in base classes. Fixes bug #50927.
5828
5829 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5830
5831         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5832         if this method is called from a finalizer. Fixes #50913.
5833
5834 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5835
5836         * threads.c: Implement VolatileRead/VolatileWrite
5837
5838         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5839
5840 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5841
5842         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5843         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5844         2.95.3.
5845
5846         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5847         from Peter Ross (pro@missioncriticalit.com).
5848         
5849 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5850
5851         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5852
5853 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5854
5855         * assembly.c (mono_assembly_load_references): Disable check because it
5856         triggers on older corlibs which lots of people have.
5857
5858 2003-11-12  Jackson Harper  <jackson@ximian.com>
5859
5860         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5861         load corlib.dll if mscorlib.dll is not found.
5862         * assembly.h: Remove corlib name define.
5863         * class.c:
5864         * domain.c:
5865         * image.c: Change corlib name to mscorlib.
5866         
5867 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5868
5869         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5870
5871 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5872
5873         * appdomain.h: Added loader_optimization here to sync with the C#
5874         code, and add disallow_binding_redirects field.
5875
5876 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5877
5878         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5879
5880         * reflection.c (mono_image_build_metadata): Fix crash on modules
5881         with no types.
5882
5883         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5884
5885         * icall.c (ves_icall_get_method_info): Return callingConvention as
5886         well.
5887
5888         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5889         namespaces from the EXPORTEDTYPE table as well.
5890
5891         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5892         from all modules inside the assembly.
5893         
5894 2003-11-11  Martin Baulig  <martin@ximian.com>
5895
5896         * reflection.c (mono_reflection_bind_generic_parameters): Make
5897         this work for interfaces.
5898
5899 2003-11-11  Martin Baulig  <martin@ximian.com>
5900
5901         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5902
5903 2003-11-11  Martin Baulig  <martin@ximian.com>
5904
5905         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5906         "MonoInflatedMethod" and "MonoInflatedCtor".
5907
5908 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5909
5910         * reflection.c (resolution_scope_from_image): Use the assembly table
5911         from the manifest module, since other modules don't have it.
5912
5913         * debug-helpers.c (mono_type_full_name): New helper function.
5914
5915         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5916
5917         * image.c (mono_image_load_file_for_image): New public function which
5918         is a replacement for the load_file_for_image in class.c.
5919
5920         * assembly.c (mono_assembly_load_module): A wrapper for the function
5921         above which does assembly association and reference loading too.
5922
5923         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5924
5925 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5926
5927         * appdomain.c: not all of the attributes for the full assembly name
5928         are required and the order doesn't matter. Fixes bug #50787.
5929
5930 2003-11-10  Dick Porter  <dick@ximian.com>
5931
5932         * locales.c: Use platform-endian UTF16
5933
5934 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5935
5936         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5937         
5938 2003-11-10  Martin Baulig  <martin@ximian.com>
5939
5940         * metadata.c
5941         (mono_metadata_load_generic_params): Make this actually work.
5942
5943         * reflection.c (mono_reflection_bind_generic_parameters): If our
5944         parent is a generic instance, pass all the `types' to it, no
5945         matter whether it has the same number of type parameters or not.
5946
5947 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5948
5949         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5950
5951         * assembly.c (mono_assembly_load_references): Move the image<->assembly
5952         assignment code to this function so it gets called recursively for all
5953         modules.
5954
5955         * image.c (load_modules): Remove the assembly assignment since it is
5956         now done by mono_assembly_load_references.
5957         
5958         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5959         Add 'module' argument.
5960         (mono_module_get_types): New helper function.
5961         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
5962
5963 2003-11-08  Martin Baulig  <martin@ximian.com>
5964
5965         * class.c (mono_class_inflate_generic_method): Interface method
5966         don't have a header.
5967
5968         * reflection.c (mono_image_get_methodspec_token): Take an
5969         additional `MonoGenericInst *' argument instead of reading it from
5970         the header; this is necessary to support interfaces.
5971         (mono_image_create_token): Pass the `MonoGenericInst *' from the
5972         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
5973         (inflated_method_get_object): Take an additional `MonoGenericInst *'
5974         argument.
5975
5976         * reflection.h (MonoReflectionInflatedMethod): Added
5977         `MonoGenericInst *ginst'.
5978
5979 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
5980
5981         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
5982
5983 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
5984
5985         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
5986
5987 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
5988
5989         * reflection.c 
5990         (reflection_methodbuilder_from_method_builder):
5991         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
5992         initialize a ReflectionMethodBuilder structure.
5993         (mono_image_get_methodbuilder_token):
5994         (mono_image_get_ctorbuilder_token): New functions to emit memberref
5995         tokens which point to types in another module inside the same assembly.
5996
5997         * reflection.c: Use the new helper functions.
5998         
5999         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
6000
6001         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
6002         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
6003
6004         * reflection.c (resolution_scope_from_image): Emit a moduleref if
6005         neccesary.
6006
6007         * reflection.c (mono_image_build_metadata): Emit metadata only for the
6008         current module. Emit the manifest only for the main module.
6009
6010         * reflection.c (mono_image_create_token): Add assertion when a 
6011         memberref needs to be created.
6012
6013         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
6014
6015         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
6016         larger buffer for the custom attribute blob. Fixes #50637.
6017         
6018 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6019
6020         * threadpool.c: notify listener on async processing handles after
6021         invoking the async callback. Thanks to Zoltan.
6022
6023 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6024
6025         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
6026         avoid code duplication.
6027
6028         * reflection.h (MonoDynamicImage): New type which is currently unused,
6029         but will be used through the ref.emit code in place of 
6030         MonoDynamicAssembly.
6031
6032         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6033         object layout.
6034
6035         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
6036         a MonoDynamicImage instead of just a MonoImage.
6037         
6038         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
6039         icalls to ModuleBuilder but keep their semantics, so they will work
6040         with moduleb->assemblyb. This will change later.
6041         
6042 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6043
6044         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6045         object layout.
6046
6047         * reflection.c (mono_image_build_metadata): Avoid creation of a default
6048         main module, since it is now done by the managed code.
6049
6050 2003-11-03  Martin Baulig  <martin@ximian.com>
6051
6052         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
6053         `ginst->klass' here.
6054         (method_encode_methodspec): Don't use the `ginst->generic_method's
6055         klass if it's a generic instance, use `ginst->klass' in this case.
6056
6057 2003-11-03  Martin Baulig  <martin@ximian.com>
6058
6059         * reflection.c (mono_image_get_generic_method_param_info):
6060         Removed, use mono_image_get_generic_param_info() instead.
6061         (mono_image_get_type_info): Write the GenericParam table before
6062         the Method table.  This is neccessary because in the GenericParam
6063         table, type parameters of the class (ie. '!0' etc.) must come
6064         before the ones from its generic methods (ie. '!!0' etc).
6065
6066 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6067
6068         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
6069
6070 2003-11-02  Martin Baulig  <martin@ximian.com>
6071
6072         * reflection.c (create_generic_typespec): Take a
6073         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
6074         the generic parameters from it.
6075
6076 2003-11-02  Martin Baulig  <martin@ximian.com>
6077
6078         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
6079         instead of a `MonoClassField *' since we just need the type.
6080         (create_generic_typespec): New static function.  Creates a
6081         TypeSpec token for a generic type declaration.
6082         (mono_image_get_generic_field_token): New static function.
6083         (mono_image_create_token): If we're a FieldBuilder in a generic
6084         type declaration, call mono_image_get_generic_field_token() to get
6085         the token.
6086
6087 2003-11-02  Martin Baulig  <martin@ximian.com>
6088
6089         * reflection.h
6090         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
6091         `MonoReflectionGenericInst *declaring_type' and
6092         `MonoReflectionGenericInst *reflected_type' fields.
6093
6094         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
6095         `MonoReflectionGenericInst *declaring_type' and a
6096         `MonoReflectionGenericInst *reflected_type' argument instead of a
6097         single `MonoReflectionGenericInst *type' one.  Set
6098         `res->declaring_type' and `res->reflected_type' from them.
6099         (mono_reflection_inflate_field): Likewise.      
6100
6101 2003-11-02  Martin Baulig  <martin@ximian.com>
6102
6103         * class.c (mono_class_setup_vtable): Don't store generic methods
6104         in the vtable.  
6105
6106 2003-11-02  Martin Baulig  <martin@ximian.com>
6107
6108         * reflection.h (MonoReflectionGenericInst): Added
6109         `MonoReflectionType *declaring_type'.
6110
6111         * reflection.c (mono_reflection_bind_generic_parameters): Use
6112         `if (tb->parent)' instead of `klass->parent'.
6113
6114 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
6115
6116         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
6117         with an empty ASSEMBLY table.
6118
6119         * reflection.c (mono_image_build_metadata): Avoid using the same loop
6120         variable in the inner and outer loops.
6121
6122 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
6123
6124         * metadata.h (mono_metadata_make_token): Put parentheses around macro
6125         argument.
6126
6127         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
6128         
6129         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
6130         icalls. Instead, do everything in managed code. This is needed since
6131         it is hard to restore the original domain etc. in unmanaged code in the
6132         presence of undeniable exceptions.
6133
6134         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
6135         New icalls to push and pop appdomain refs.
6136
6137 2003-10-31  Martin Baulig  <martin@ximian.com>
6138
6139         * class.c (inflate_generic_type): Renamed to
6140         mono_class_inflate_generic_type() and made it public.
6141
6142         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6143         New interncall.
6144
6145         * loader.c (mono_field_from_memberref): Also set the retklass for
6146         typespecs.
6147
6148         * fielder.c (mono_image_get_inflated_field_token): New static
6149         method; creates a metadata token for an inflated field.
6150         (mono_image_create_token, fixup_method): Added support for
6151         "MonoInflatedField".
6152         (fieldbuilder_to_mono_class_field): New static function.
6153         (mono_reflection_inflate_field): New public function.
6154
6155         * reflection.h
6156         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6157         (MonoReflectionInflatedField): New typedef.     
6158
6159 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6160
6161         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6162         for Solaris and other platforms without s6_addr16
6163
6164 2003-10-30  Martin Baulig  <martin@ximian.com>
6165
6166         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6167         argument instead of two.
6168         (mono_class_inflate_generic_signature): Likewise.
6169         (inflate_generic_header): Likewise.
6170         (mono_class_inflate_generic_method): Likewise.  In addition, if
6171         `ginst->klass' is set, it becomes the new `method->klass'.
6172
6173         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6174         field.
6175
6176         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6177         first byte. [FIXME]
6178         (method_encode_methodspec): If we have generic parameters, create
6179         a MethodSpec instead of a MethodRef.
6180         (fixup_method): Added support for "MonoInflatedMethod" and
6181         "MonoInflatedCtor".
6182         (mono_image_create_token): Added support for "MonoInflatedMethod"
6183         and "MonoInflatedCtor".
6184         (inflated_method_get_object): New static function; returns a
6185         managed "System.Reflection.MonoInflatedMethod" object.
6186         (mono_reflection_bind_generic_method_parameters): Return a
6187         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6188         (mono_reflection_inflate_method_or_ctor): Likewise.
6189         (mono_image_get_generic_method_param_info): Initialize unused
6190         fields to zero.
6191         (mono_image_get_generic_param_info): Likewise.
6192
6193         * reflection.h (MonoReflectionInflatedMethod): New public
6194         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6195         "S.R.MonoInflatedCtor" classes.
6196
6197         * loader.c (method_from_memberref): If we're a TypeSpec and it
6198         resolves to a generic instance, inflate the method.
6199
6200 2003-10-28  Dick Porter  <dick@ximian.com>
6201
6202         * object.c (mono_runtime_run_main): Convert command-line arguments
6203         into utf8, falling back to the user's locale encoding to do so.
6204
6205 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6206
6207         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6208         at this time.
6209
6210         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6211
6212         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6213         up icalls at method definition time. Partially fixes #33569.
6214
6215 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6216
6217         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6218         marshalling of arrays. Fixes #50116.
6219
6220         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6221
6222         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6223         points to a vtable in the dying appdomain.
6224
6225         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6226         listeners into unmanaged code inside the lock.
6227
6228         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6229         domains and add some comments.
6230
6231 2003-10-25  Martin Baulig  <martin@ximian.com>
6232
6233         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6234
6235         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6236
6237         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6238         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6239         currently parsing.  Create the generic class and store it in
6240         `generic_inst->klass' before parsing the type arguments.  This is
6241         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6242         for an example.
6243         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6244         to support recursive typespec entries.
6245
6246         * class.c (mono_class_setup_parent): If our parent is a generic
6247         instance, we may get called before it has its name set.
6248         (mono_class_from_generic): Splitted into
6249         mono_class_create_from_generic() and mono_class_initialize_generic().
6250
6251 2003-10-25  Martin Baulig  <martin@ximian.com>
6252
6253         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6254         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6255         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6256         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6257
6258         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6259         (create_typespec): Likewise.
6260         (mono_reflection_bind_generic_parameters): Return a
6261         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6262         (mono_reflection_inflate_method_or_ctor): New public function.
6263
6264         * reflection.h (MonoReflectionGenericInst): New typedef.        
6265
6266 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6267
6268         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6269         inside the domain lock. Fixes #49993.
6270         
6271         * object.c (mono_class_vtable): When typed allocation is used, 
6272         allocate vtables in the GC heap instead of in the mempool, since the
6273         vtables contain GC descriptors which are used by the collector even
6274         after the domain owning the mempool is unloaded.
6275
6276         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6277
6278         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6279         reflect what it does. Also invalidate mempools instead of freeing
6280         them if a define is set.
6281
6282         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6283         of the appdomain.
6284         
6285         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6286         hold the finalizable objects in this domain.
6287
6288         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6289         appdomain.
6290
6291         * appdomain.c (mono_domain_set): New function to set the current
6292         appdomain, but only if it is not being unloaded.
6293
6294         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6295         appdomain which is being unloaded.
6296         
6297         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6298         unloading of the root appdomain.
6299
6300         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6301         icall to execute a method in another appdomain. Intended as a 
6302         replacement for InternalSetDomain, which can confuse the code 
6303         generation in the JIT.
6304
6305         * appdomain.c (mono_domain_is_unloading): New function to determine
6306         whenever an appdomain is unloading.
6307
6308         * appdomain.c (mono_domain_unload): New function to correctly unload
6309         an appdomain.
6310
6311         * assembly.c (mono_assembly_load_references): Check that an assembly
6312         does not references itself.
6313
6314         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6315         domain manually, it asks the finalizer thread to do it, then waits for
6316         the result. Also added a timeout.
6317
6318         * icall.c: Register the new icalls.
6319
6320         * threads.h threads.c: Export the mono_gc_stop_world and 
6321         mono_gc_start_world functions.
6322         
6323         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6324         function to fill out the mempool with 0x2a.
6325
6326 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6327
6328         * reflection.h (MonoReflectionMethodAux): New structure to store
6329         information which is rarely used, thus is not in the MonoMethod
6330         structure.
6331
6332         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6333         store the aux info.
6334
6335         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6336         and marshalling info into the aux structure.
6337
6338         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6339         from the aux structure.
6340
6341         * loader.c (mono_method_get_param_names): Retrieve the param names from
6342         the aux structure.
6343         
6344 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6345
6346         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6347         warning.
6348
6349 2003-10-21  Dick Porter  <dick@ximian.com>
6350
6351         * socket-io.c
6352         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6353         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6354
6355 2003-10-21  Martin Baulig  <martin@ximian.com>
6356
6357         * reflection.c (mono_reflection_bind_generic_parameters):
6358         `klass->parent' is NULL for interfaces.
6359
6360 2003-10-21  Martin Baulig  <martin@ximian.com>
6361
6362         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6363
6364 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6365
6366         * exception.c (mono_exception_from_name_msg): New helper function for
6367         creating exceptions and initializing their message field.
6368
6369         * exception.c: Simplify functions using the new helper.
6370
6371         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6372         New function.
6373
6374         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6375         mono_raise_exception, since otherwise gcc doesn't generate the function
6376         epilog for raise_exception, confusing the stack unwinding in the JIT.
6377         Fixes #45043.
6378
6379         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6380         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6381         Fixes #49499.
6382
6383 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6384
6385         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6386         utf8.
6387
6388 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6389
6390         * icall.c: Removed GetUninitializedObject method because
6391           AllocateUninitializedClassInstance does the same.
6392
6393 2003-10-18  Martin Baulig  <martin@ximian.com>
6394
6395         * class.c (inflate_generic_signature): Renamed to
6396         mono_class_inflate_generic_signature() and made it public.
6397         (my_mono_class_from_generic_parameter): New static function; if we
6398         don't already have the generic parameter's MonoClass, create a
6399         very simple one which is just used internally in the runtime and
6400         not passed back to managed code.
6401
6402         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6403
6404         * metadata.h (MonoMethodSignature): Moved the
6405         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6406         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6407
6408         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6409         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6410         interncall on the MonoMethod class, not on MethodInfo.
6411         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6412         calling mono_reflection_bind_generic_method_parameters() directly.
6413
6414         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6415         return the already computed `method->signature'.
6416         (method_from_methodspec): New static function to load a method
6417         from a MethodSpec entry.
6418         (mono_get_method_from_token): Call the new method_from_methodspec()
6419         for MethodSpec tokens.  
6420         (mono_get_method_from_token): If we're a generic method, load the
6421         type parameters.
6422
6423         * reflection.c (mono_image_get_memberref_token): Allow
6424         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6425         table.
6426         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6427         (mono_image_create_token): First check whether it's a generic
6428         method (so we'd need to create a MethodSpec), then do the other
6429         two alternatives.
6430         (mono_reflection_bind_generic_method_parameters): Return a
6431         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6432         called directly from the interncall.
6433
6434 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6435
6436         * reflection.c (load_public_key): Move loading of the public key
6437         into managed code.
6438
6439         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6440
6441         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6442         fields.
6443
6444         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6445         culture, hash_alg and public_key. Fixes #49555.
6446
6447 2003-10-17  Martin Baulig  <martin@ximian.com>
6448
6449         * class.h (MonoGenericInst): Moved this declaration here and added
6450         `MonoMethod *generic_method'.
6451
6452         * icall.c
6453         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6454         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6455
6456         * metadata.c (mono_metadata_type_equal): Two types of
6457         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6458         index; ie. don't compare the address of the `MonoGenericParam'
6459         structure.
6460         (mono_metadata_load_generic_params): Removed the `MonoMethod
6461         *method' argument.
6462
6463         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6464         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6465
6466         * reflection.c (method_encode_signature): Encode the number of
6467         generic parameters.
6468         (encode_generic_method_sig): New static function.
6469         (method_encode_methodspec): New static function; creates an entry
6470         in the MethodSpec table for a generic method.
6471         (mono_image_get_methodspec_token): New static function.
6472         (mono_image_create_token): Call mono_image_get_methodspec_token()
6473         for generic methods.
6474         (mono_reflection_bind_generic_method_parameters): New public
6475         function.  Instantiates a generic method.
6476
6477 2003-10-16  Martin Baulig  <martin@ximian.com>
6478
6479         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6480         *gen_params' here from MonoMethodHeader.
6481
6482         * metadata.c (mono_metadata_parse_method_signature): If we have
6483         generic parameters, initialize `method->gen_params' and then set
6484         the correct `type->data.generic_param' in all the parameters.
6485
6486 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6487
6488         * threads.c (mono_threads_get_default_stacksize): New function to 
6489         return the default stacksize.
6490
6491         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6492         termination of the finalizer thread, since the previous method had
6493         race conditions. Fixes #49628.
6494
6495         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6496         as for the other managed threads.
6497
6498 2003-10-16  Martin Baulig  <martin@ximian.com>
6499
6500         * class.c (inflate_generic_signature): Copy `generic_param_count'
6501         and `gen_params'.
6502
6503         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6504         New interncall.
6505
6506         * metadata.c (mono_metadata_parse_method_signature): Actually set
6507         the `method->generic_param_count' here.
6508         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6509
6510 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6511
6512         * object.h: Add a new field to TypedRef to simplify the implementation
6513         of the REFANY opcodes in the JIT.
6514
6515         * icall.c: Make use of the new field.
6516
6517         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6518         dynamically.
6519
6520 2003-10-15  Martin Baulig  <martin@ximian.com>
6521
6522         * class.c (mono_class_from_gen_param): Renamed to
6523         mono_class_from_generic_parameter() and moved most of the
6524         functionality from mono_reflection_define_generic_parameter()
6525         here; ie. we create a "real" class here.
6526         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6527         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6528         previously been called.
6529
6530         * class.h (MonoGenericParam): Moved the declaration of this struct
6531         here from metadata.h and added `MonoMethod *method'.
6532
6533         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6534         interncall.
6535
6536         * loader.c (mono_get_method_from_token): If we have any generic
6537         parameters, call mono_metadata_load_generic_params() to read them
6538         from the MONO_TABLE_GENERICPAR.
6539
6540         * metadata.c (mono_metadata_load_generic_params): Added
6541         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6542
6543         * metadata.h (MonoMethodSignature): Replaced
6544         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6545         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6546
6547         * reflection.c (mono_reflection_define_generic_parameter): Moved
6548         most of the functionality into the new
6549         mono_class_from_generic_parameter(); set the `method' field if
6550         we're a method parameter.       
6551
6552 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6553
6554         * marshal.c (emit_struct_conv): if native size is 0
6555         emit no code.
6556
6557 2003-10-14  Martin Baulig  <martin@ximian.com>
6558
6559         * icall.c: The generics API has changed in the spec since it was
6560         added to System.Type; these modifications make it match the spec
6561         again.
6562         (ves_icall_Type_GetGenericParameters): Renamed to
6563         `ves_icall_Type_GetGenericArguments'.
6564         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6565         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6566         `ves_icall_MonoType_get_HasGenericArguments'.
6567         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6568         `ves_icall_MonoType_get_IsGenericParameter'.
6569         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6570         this is no interncall anymore.
6571         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6572         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6573
6574 2003-10-14  Martin Baulig  <martin@ximian.com>
6575
6576         * reflection.c (mono_reflection_bind_generic_parameters): Also
6577         inflate generic methods if we're reading the class from IL.
6578
6579 2003-10-13  Martin Baulig  <martin@ximian.com>
6580
6581         * reflection.c (mono_reflection_define_generic_parameter): This
6582         method isn't called directly from the icall anymore; take a
6583         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6584         method generic parameters.
6585         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6586         (method_builder_encode_signature): Encode generic parameters.
6587         (mono_image_get_method_info): Write generic params to the
6588         MONO_TABLE_GENERICPARAM table.
6589
6590         * reflection.h (MonoReflectionMethodBuilder): Added
6591         `MonoArray *generic_params'.
6592
6593         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6594
6595         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6596         wrapper for mono_reflection_define_generic_parameter().
6597         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6598
6599 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6600
6601         * marshal.h: Add missing function to fix build.
6602
6603         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6604         the SetLastError pinvoke attribute.
6605
6606         * marshal.c (mono_marshal_set_last_error): New helper function called
6607         by the generated code.
6608         
6609         * marshal.c (mono_mb_emit_branch): New helper function.
6610
6611         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6612
6613         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6614         classes as parameters and return values of delegates. Fixes #29256. 
6615
6616 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6617
6618         * locales.c: use gint32 in non HAVE_ICU case
6619
6620 2003-10-11  Martin Baulig  <martin@ximian.com>
6621
6622         * mono-debug.c (mono_debug_add_method): Added a workaround for
6623         bug #48591.
6624
6625 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6626
6627         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6628         delegates passed to native code must use the STDCALL calling 
6629         convention. Fixes #35987.
6630
6631 2003-10-10  Martin Baulig  <martin@ximian.com>
6632
6633         * class.c (inflate_generic_type): If we're inflating for a generic
6634         type instance (and not for a generic method), return
6635         MONO_TYPE_MVAR unchanged.
6636
6637 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6638
6639         * string-icalls.c: Join ignores null strings in the source array.
6640         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6641         * threads.c: GetAvailableTheads is slightly more accurate.
6642
6643 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6644
6645         * threads.h threads.c : add mono_threads_set_default_stacksize
6646         and pass default to CreateThread calls.
6647
6648 2003-10-09  Dick Porter  <dick@ximian.com>
6649
6650         * icall.c:
6651         * locales.h:
6652         * locales.c: Internal calls for constructing CultureInfo and
6653         related objects from libicu (if its available.)
6654
6655 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6656
6657         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6658
6659 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6660
6661         * threadpool.c: added an argument to async_invoke_thread that is the
6662         item to process, pass the MonoAsyncResult to the thread start function
6663         when creating a new thread. This way we don't need to acquire any lock
6664         when we're creating a new thread. Readded a semaphore for faster
6665         response times (instead of that Sleep i added).
6666
6667 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6668
6669         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6670         get daylight change dates better on Windows, fix handling
6671         of platforms without tm_gmtoff.
6672
6673 2003-10-06  Martin Baulig  <martin@ximian.com>
6674
6675         * class.c (inflate_generic_method): Renamed to
6676         mono_class_inflate_generic_method() and made public.
6677         (mono_class_init): Don't inflate the generic methods here.
6678         (mono_class_from_generic): Added `gboolean inflate_methods'
6679         argument.  Inflate the methods here.
6680
6681         * loader.c (mono_method_get_param_names): Ignore instances of
6682         generic types for the moment.
6683
6684         * reflection.c (fixup_method): Added support for inflated methods.
6685         (mono_image_create_token): Use mono_image_get_methodref_token()
6686         for inflated methods.
6687         (mono_custom_attrs_from_param): Ignore instances of generic types
6688         for the moment.
6689         (mono_reflection_bind_generic_parameters): New public function.
6690         Moved all the functionality from
6691         ves_icall_Type_BindGenericParameters() here and added support for
6692         dynamic types.
6693         (mono_reflection_define_generic_parameter): Initialize
6694         `klass->methods' here.
6695
6696         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6697         functionality into mono_reflection_define_generic_parameter().
6698         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6699         TypeBuilder, return that TypeBuilder.
6700
6701 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6702
6703         * appdomain.c: removed mono_delegate_semaphore.
6704
6705         * threadpool.c:
6706         (mono_thread_pool_add): moved hash table creation inside and the thread 
6707         creation outside of the critical region.
6708         (mono_thread_pool_finish): removed obsolete code.
6709         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6710         continue or exit the thread depending on the queue.
6711
6712 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6713
6714         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6715         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6716         handle more bool marshalling options
6717
6718 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6719
6720         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6721         arrays of structs. Also add a more descriptive error message when
6722         a structure member is marshalled as LPArray.
6723
6724 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6725
6726         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6727         marshalling arrays of complex types. Fixes #29098. Also remove an
6728         usused and incomplete function.
6729
6730 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6731
6732         * gc.c: report heap_size - free_bytes as total memory allocated
6733         (bug#49362).
6734
6735 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6736
6737         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6738         fix timezone handling problems on Windows.
6739         
6740         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6741         asserts when the year is outside the range handled by ms the functions.
6742
6743         * class.c (setup_interface_offsets): If the class is an interface,
6744         fill out its interface_offsets slot.
6745
6746 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6747
6748         * threadpool.c: mark threadpool threads as background.
6749
6750 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6751
6752         * decimal.c - define DECINLINE to nothing if not using GCC
6753
6754 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6755
6756         * assembly.c: More refcount fixes.
6757
6758 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6759
6760         * string-icalls.c: if we're not trimming, return the same string.
6761         When not splitting, don't create a new string.
6762
6763 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6764
6765         * image.c:
6766         (mono_image_open): increment the ref_count inside the critical section.
6767
6768 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6769
6770         * image.c (mono_image_open): Fix reference counting bug.
6771
6772 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6773
6774         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6775         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6776         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6777         mono_lookup_pinvoke_call throws.        
6778
6779 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6780
6781         * reflection.c (mono_reflection_parse_type): Fix #49114.
6782
6783         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6784         temporary workaround for cygwin header problem.
6785
6786         * object.c (mono_object_isinst): Synchronize this with the code
6787         generated by the JIT for casts.
6788
6789 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6790
6791         * reflection.c (encode_type): Fix #38332.
6792
6793 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6794
6795         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6796         the original method from the wrapper method.
6797
6798 2003-09-25  Martin Baulig  <martin@ximian.com>
6799
6800         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6801         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6802         (ves_icall_Type_get_IsGenericInstance): New interncall.
6803
6804 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6805
6806         * object.c: fix cast warning in big endian code.
6807
6808 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6809
6810         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6811         
6812 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6813
6814         * assembly.c: don't call check_env from mono_assembly_load. It's
6815         already done once in mono_assemblies_init and may cause headaches when
6816         multiple threads are loading assemblies.
6817
6818 2003-09-19  Martin Baulig  <martin@ximian.com>
6819
6820         * reflection.c (mono_reflection_define_generic_parameter): Don't
6821         allocate `klass->methods', set `klass->flags' to
6822         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6823
6824 2003-09-18  Martin Baulig  <martin@ximian.com>
6825
6826         * class.c (mono_class_init): Don't create `class->methods' if it's
6827         already initialized.
6828
6829         * metadata.c (mono_metadata_load_generic_params): Make this
6830         actually work.
6831
6832         * reflection.c (mono_reflection_define_generic_parameter): Set
6833         parent class and interfaces from the constraints.
6834
6835         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6836         to keep this struct in sync with the declaration in TypeBuilder.cs.
6837
6838 2003-09-17  Martin Baulig  <martin@ximian.com>
6839
6840         * metadata.h (MonoType): Replaced the data's `int type_param'
6841         field with `MonoGenericParam *generic_param'.
6842         (MonoGenericParam): Added `MonoClass *klass'.
6843
6844         * class.c (mono_class_from_gen_param): Removed the
6845         `MonoImage *image' and `int type_num' arguments.
6846
6847         * metadata.c (mono_metadata_parse_generic_param): New static
6848         method; creates a MonoGenericParam which just contains the index.
6849         (do_mono_metadata_parse_type): Call
6850         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6851         MONO_TYPE_MVAR.
6852
6853         * reflection.c (mono_image_typedef_or_ref): Generic type
6854         parameters may be in the same assembly, but never use a typedef
6855         for them.
6856         (mono_reflection_define_generic_parameter): We're now creating a
6857         "real" class for the type parameter; it's now safe to call
6858         mono_class_from_mono_type() on the class'es type, it'll do the
6859         right thing.
6860
6861 2003-09-16  Martin Baulig  <martin@ximian.com>
6862
6863         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6864         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6865         the `symfile' data structure must be fully initialized before it
6866         gets added to the table.
6867
6868 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6869
6870         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6871
6872         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6873         class init trampolines.
6874
6875 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6876
6877         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6878         to the built-in profiler to turn off time and allocation profiling
6879         respectively.
6880
6881 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6882
6883         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6884         g_direct_equal.
6885
6886         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6887         in human readable form.
6888
6889 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6890
6891         * reflection.c icall.c: Fixed warnings.
6892
6893         * image.c (load_class_names): Use a temporary hash table to hold the
6894         namespaces in order to avoid doing many string comparisons.
6895
6896         * image.h: Fix typo.
6897
6898         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6899         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6900         since the NULL case is short-circuited inside g_hash_table_lookup, 
6901         leading to better performance.  
6902
6903         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6904         obtain the first custom attribute for a given index. Depends on the
6905         CustomAttribute table being sorted by the parent field.
6906
6907         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6908         for better performance.
6909
6910 2003-09-07  Martin Baulig  <martin@ximian.com>
6911
6912         * class.c (mono_class_init): If we're a generic instance, inflate
6913         all our methods instead of loading them from the image.
6914         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6915
6916 2003-09-07  Martin Baulig  <martin@ximian.com>
6917
6918         * mono-debug-debugger.c: Added support for constructors.
6919
6920 2003-09-06  Martin Baulig  <martin@ximian.com>
6921
6922         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6923         New interncall.
6924
6925         * reflection.c (mono_reflection_setup_generic_class): Call
6926         ensure_runtime_vtable() to create the vtable.
6927
6928 2003-09-05  Martin Baulig  <martin@ximian.com>
6929
6930         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6931         MONO_TYPE_MVAR.
6932
6933 2003-09-04  Martin Baulig  <martin@ximian.com>
6934
6935         * reflection.c (mono_reflection_define_generic_parameter): Generic
6936         parameters start with zero.
6937
6938 2003-09-04  Martin Baulig  <martin@ximian.com>
6939
6940         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6941
6942         * reflection.h (MonoReflectionGenericParam): New typedef.
6943         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
6944         the generic parameters from the managed TypeBuilder.
6945
6946         * reflection.c (mono_reflection_define_generic_parameter): New function.
6947         (mono_reflection_create_runtime_class): Encode generic parameters.
6948         (mono_reflection_setup_generic_class): New function; this is
6949         called after adding adding all generic params to the TypeBuilder.
6950         (encode_type): Added MONO_TYPE_VAR.
6951
6952 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
6953
6954         * class.h class.c (mono_class_needs_cctor_run): Moved this method
6955         here from the JIT.
6956
6957         * assembly.h assembly.c: Moved the AOT loading code into an assembly
6958         load hook.
6959
6960 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
6961
6962         * reflection.h reflection.c class.h class.c: Delete duplicate 
6963         definition of mono_type_get_name () from reflection.c and export the
6964         one in class.c.
6965
6966         * class.c: Class loading fixes from Bernie Solomon 
6967         (bernard@ugsolutions.com).
6968
6969         * reflection.c: Endianness fixes from Bernie Solomon 
6970         (bernard@ugsolutions.com).
6971         
6972 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
6973
6974         * assembly.h assembly.c: Define a file format version for AOT
6975         libraries.
6976         
6977         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
6978
6979         * appdomain.h (MonoJitInfo): New field to determine whenever the
6980         code is domain neutral.
6981         
6982 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
6983
6984         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
6985
6986 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
6987
6988         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
6989         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
6990         Avoid caching the result since strings must be domain specific. Fixes
6991         #48050.
6992
6993 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
6994
6995         * marshal.c (mono_marshal_init): Make this callable multiple times
6996         since it is hard to find a correct place to call it.
6997
6998         * object.c (mono_runtime_class_init): Execute static constructors in
6999         the correct appdomain.
7000
7001         * image.c (build_guid_table): Handle the case when multiple images have
7002         the same GUID.
7003
7004 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7005
7006         * icall.c: added a couple of icalls for System.Web.
7007
7008 2003-08-28  Martin Baulig  <martin@ximian.com>
7009
7010         * icall.c (ves_icall_Type_BindGenericParameters): Use
7011         `klass->generic_inst' instead of `&klass->byval_arg' in the
7012         mono_type_get_object() call.  The returned type must be
7013         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
7014
7015 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
7016
7017         * NOTES: New file.
7018
7019         * object.c (mono_class_proxy_vtable): Make it thread safe.
7020
7021         * pedump.c: Fix warning.
7022
7023         * object.c appdomain.h: Get rid of metadata_section. 
7024         It is no longer needed and it was causing deadlocks with domain->lock.
7025
7026         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
7027
7028 2003-08-26  Martin Baulig  <martin@ximian.com>
7029
7030         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
7031
7032 2003-08-26  Martin Baulig  <martin@ximian.com>
7033
7034         * pedump.c (main): Call mono_metadata_init(),
7035         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
7036         and mono_loader_init().
7037
7038 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
7039
7040         * loader.h: Add missing include to fix build.
7041
7042         * image.h: mono_image_load_references is no more.
7043
7044         * assembly.c: Reworked assembly loading to make it really thread safe.
7045         After these changes, the assembly returned by mono_assembly_open is
7046         fully initialized, i.e. all its references assemblies are loaded.
7047
7048         * assembly.c (mono_image_load_references): Renamed to 
7049         mono_assembly_load_references, and made private, since clients no
7050         longer need to call it.
7051
7052         * class.c: Removed calls to mono_assembly_load_references, since it was
7053         a source of deadlocks.
7054
7055         * loader.h loader.c class.h class.c: Protect data structures using a 
7056         new lock, the loader lock.
7057
7058         * class.c (mono_class_setup_vtable): Create temporary hash tables and
7059         GPtrArrays only when needed.
7060
7061         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
7062         into empty structures by mcs. Fixes pinvoke7.cs.
7063         
7064         * domain.c (mono_init): Call a new initialization function.
7065
7066         * appdomain.c (mono_runtime_init): Call the new initializer function
7067         of the marshal module.
7068
7069         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
7070         inserted into empty structures by mcs. Fixes pinvoke7.cs.
7071
7072         * marshal.h marshal.c: Added locks around the wrapper caches to make
7073         this module thread safe.
7074
7075         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
7076         this argument. Fixes pinvoke1.exe.
7077
7078 2003-08-25  Lluis Sanchez <lluis@ximian.com>
7079
7080         * object.h: Added call_type field to MonoMethodMessage and the corresponding
7081         enumeration of values. Removed fields to store remote call output values in
7082         MonoAsyncResult. Not needed any more.
7083         * object.c: Initialize call_type and async_result fields in mono_message_init.
7084         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
7085         dispatching the message.
7086         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
7087         async call to finish. To do it use a message with EndInvoke call type.
7088
7089 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
7090
7091         * loader.h loader.c (mono_method_hash_marhal_info): New function which
7092         determines whenever a method has marshalling info.
7093
7094 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7095
7096         * assembly.c: fix the build on windows.
7097
7098 2003-08-22 Lluis Sanchez <lluis@ximian.com>
7099
7100         * object.cs: Fixed bug #47785.
7101
7102 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
7103
7104         * string-icalls.c (StringReplace): If their are no occurances of
7105         the old string found return a reference to the supplied
7106         string. This saves some memory and matches MS behavoir.
7107         
7108 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7109
7110         * socket-io.c: fixed compilation for systems that define AF_INET6
7111         and don't define SOL_IP/SOL_IPV6.
7112
7113 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
7114
7115         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
7116         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
7117
7118         * rawbuffer.c rawbuffer.h: Make this module thread safe.
7119
7120         * domain.c: Make this module thread safe.
7121
7122         * domain.c (mono_init): Call new initialization function.
7123
7124         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
7125         reference types too. Fixes #38812.
7126
7127         * image.c (mono_image_init): Fixed warnings.
7128
7129         * class.c (mono_class_from_typeref): Handle assembly load failure
7130         correctly.
7131
7132         * appdomain.c (add_assemblies_to_domain): Handle the case when
7133         the references of an assembly are not yet loaded.
7134
7135         * metadata.c image.c assembly.c: Moved initialization of global
7136         variables to a separate function called at startup since lazy 
7137         initialization of these variables is not thread safe.
7138         
7139         * image.c assembly.c: Made this module thread safe by adding locks in 
7140         the appropriate places.
7141
7142         * domain.c (mono_init): Call the new initialization functions of the
7143         three modules.
7144
7145 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
7146
7147         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7148           make a direct call. It is proxy's work to make the call asynchronous.
7149           mono_delegate_end_invoke(): If the targe is a proxy, just collect
7150           the return values.
7151         * object.cs: mono_method_call_message_new(): read AsyncResult and
7152           state object from parameters list, if this info is requested.
7153         * object.h: Added fields to store remote call output values in
7154           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7155
7156 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7157
7158         * object.h: add needed fields to MonoThread.
7159         * threads.c, threads.h: allow registering a function to cleanup data
7160         allocated per thread by the JIT.
7161
7162 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7163
7164         * loader.h: portability fix by Bernie Solomon
7165         * <bernard@ugsolutions.com>.
7166
7167 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7168
7169         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7170         return a MonoArray. This simplifies the code and also ensures that
7171         the cache allways contains an object reference as a value.
7172
7173         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7174         function.
7175
7176 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7177
7178         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7179         fixes a problem with byte ordering when getting the address family for
7180         a socket.
7181
7182 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7183
7184         * .cvsignore: Added monosn.
7185
7186         * reflection.h reflection.c loader.c: Added support for parameter
7187         marshalling to dynamically created types. Fixes #47295.
7188
7189 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7190
7191         * rand.c: remove useless warnings.
7192
7193 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7194
7195         * class.c: implemented ldtoken for methods and fieldrefs.
7196
7197 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7198
7199         * threadpool.c: when mono_async_invoke was called, no one took care of
7200         monitoring the queue. So if the method invoked took some time and we
7201         got new async invoke requests after 500 ms (the thread created waited
7202         that long in WaitForSingleObject), the new async invoke was not called
7203         until the previous one finished.
7204
7205         This is fixed now. Thanks to Totte for helping with it.
7206
7207 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7208
7209         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7210
7211 2003-08-11  Martin Baulig  <martin@ximian.com>
7212
7213         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7214
7215 2003-08-06  Martin Baulig  <martin@ximian.com>
7216
7217         * mono-debug-debugger.c: Added support for static fields,
7218         properties and methods.
7219
7220 2003-08-06  Martin Baulig  <martin@ximian.com>
7221
7222         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7223         make this work for applications with multiple application domains.
7224
7225 2003-08-04  Martin Baulig  <martin@ximian.com>
7226
7227         * mono-debug-debugger.c: Completely reworked the type support; the
7228         most important thing is that we're now just using one single
7229         `MonoType' instance per type.
7230
7231 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7232
7233         * mono-endian.h, mono-endian.c, icall.c: Added icall
7234         ves_icall_System_Double_AssertEndianity to assert double word endianity
7235         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7236
7237 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7238
7239         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7240         support, icalls and fixes.
7241
7242 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7243
7244         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7245         classes that are a punctuation character in .NET is not the same a
7246         g_unichar_ispunct.
7247
7248 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7249
7250         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7251
7252 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7253
7254         * icall.c: Add new MemCopy internalcall.
7255         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7256         Simplified code; It is not necessary to handle all the cases here,
7257         as the C# code takes care of it.  Only handle the case of the name
7258         resource embedded into the assembly.
7259
7260         Changed signature to return the data pointer and the size of the
7261         data. 
7262
7263 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7264
7265         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7266         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7267
7268 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7269
7270         * socket-io.c: ignore EINTR error in select.
7271
7272 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7273
7274         * class.h, class.c: removed unused subclasses field in MonoClass.
7275
7276 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7277
7278         * icall.c: improve fix of get_base_definition(). If the parent class
7279           doesn't have the mehod, look at the parent of the parent.
7280         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7281           to check if a parameter is an in or out parameter
7282           (PARAM_ATTRIBUTE_IN is not set by default).
7283           mono_method_return_message_restore(): Use mono_class_value_size to
7284           get the size of a value type. mono_type_stack_size (parameterType)
7285           does not return the correct value if parameterType is byRef.
7286           mono_load_remote_field(), mono_load_remote_field_new(),
7287           mono_store_remote_field(), mono_store_remote_field_new():
7288           raise exception if the remote call returns an exception.
7289
7290 2003-07-28  Martin Baulig  <martin@ximian.com>
7291
7292         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7293         method.  This is a wrapper around mono_runtime_invoke() which
7294         boxes the instance object if neccessary.
7295
7296 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7297
7298         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7299         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7300
7301 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7302
7303         * icall.c: disable mcs bug workaround.
7304
7305 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7306
7307         * object.c (mono_runtime_class_init): Take the metadata_section
7308         mutex before obtaining the domain mutex.
7309
7310         * appdomain.h: Added definition of metadata_section mutex here. 
7311
7312         * object.c: define metadata_mutex here.
7313
7314 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7315
7316         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7317         fixed.
7318
7319 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7320
7321         * reflection.c: Fix bug #46669
7322
7323 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7324
7325         * exception.c:
7326         * exception.h:
7327         * icall.c:
7328         * object.h: fill in the type name for TypeLoadException.
7329
7330 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7331
7332         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7333         relationship between TypeBuilders while compiling corlib) and bug
7334         45993 (Array types returned from the runtime while compiling
7335         corlib were from the loaded corlib).
7336
7337 2003-07-22  Martin Baulig  <martin@ximian.com>
7338
7339         * mono-debug-debugger.c: Reworked the type support a bit more;
7340         distinguish between types and classes.
7341
7342 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7343
7344         * icall.c: add IsArrayImpl icall.
7345
7346 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7347
7348         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7349         initializing real_size only once. Also fix bug #46602.
7350
7351 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7352
7353         * object.c: Renamed mono_metadata_section to metadata_section.
7354
7355 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7356
7357         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7358           empty array if the type is an array. Fixed.
7359           ves_icall_MonoMethod_get_base_definition: if the base method
7360           is abstract, get the MethodInfo from the list of methods of
7361           the class.
7362         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7363           and it was 1-based. Fixed in mono_param_get_objects.
7364
7365 2003-07-20  Martin Baulig  <martin@ximian.com>
7366
7367         * mono-debug.h: Set version number to 31.
7368         (mono_debug_init): Added `MonoDomain *' argument.
7369
7370         * mono-debug-debugger.c: Reworked the type support; explicitly
7371         tell the debugger about builtin types; pass the `klass' address to
7372         the debugger.
7373
7374 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7375
7376         * image.c: Allow new metadata tables to be loaded without a
7377         warning. Also update the warning message to give the new constant value.
7378                 
7379 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7380
7381         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7382         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7383         array type representation changes.
7384
7385 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7386
7387         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7388         on Environment.Exit () call.
7389
7390 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7391
7392         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7393         requires a matching corlib.
7394
7395 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7396
7397         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7398           Committed again without the CRs.
7399         
7400 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7401
7402         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7403           getting it from the "this" socket instance. Did not work
7404           if the socket is a subclass of Socket.
7405           Also fixed bug #35371.
7406
7407 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7408
7409         * metadata.c: fixed size for TypedByRef.
7410         * loader.c: when searching for a method, consider the vararg amrker.
7411         * unicode.c, decimal.c: constify some arrays.
7412
7413 2003-07-15  Dick Porter  <dick@ximian.com>
7414
7415         * socket-io.c: Fixed compilation for gcc < 3.2.
7416
7417         Fixed compilation for machines that don't have AF_INET6 (thanks to
7418         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7419
7420         Fixed compile warnings.
7421         
7422         Fixed formatting and line endings.
7423
7424 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7425
7426         * socket-io.h:
7427         * socket-io.c: Added IPv6 support.
7428
7429 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7430
7431         * class.c (mono_class_is_assignable_from): New function to implement
7432         the is_assignable_from logic. Used by mono_object_isinst, 
7433         Type::IsAssignableFrom () and the interpreter.
7434
7435         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7436         Object, even interfaces.
7437         
7438         * object.c (mono_object_isinst): Implement in terms of 
7439         is_assignable_from.
7440
7441         * icall.c (ves_icall_type_is_assignable_from): New icall.
7442
7443 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7444
7445         * domain.c (foreach_domain): fix compiler warning.
7446
7447 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7448
7449         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7450         not available on all plattforms
7451
7452 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7453
7454         * image.h image.c: Store the metadata version string in MonoImage.
7455         * icall.c: New icall to retrieve the image version.
7456         * reflection.c (create_dynamic_image): Fill in the image version field
7457         * reflection.c (build_compressed_metadata): Use the image version
7458         from the image structure.
7459
7460 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7461
7462         * appdomain.c: modified comment.
7463         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7464         That will be its last iteration when mono_gc_cleanup is called from
7465         mono_runtime_cleanup and before the domain is unloaded.
7466
7467         Fixes bug #45962.
7468
7469 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7470
7471         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7472         attributes.
7473
7474 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7475
7476         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7477         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7478         Bernie Solomon <bernard@ugsolutions.com>.
7479
7480 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7481
7482         * object.c, object.h: provide mono_object_new_fast() for faster
7483         allocation in some special cases.
7484
7485 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7486
7487         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7488         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7489
7490 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7491
7492         * threadpool.c: fix leaks.
7493
7494 2003-07-01  Dick Porter  <dick@ximian.com>
7495
7496         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7497         using MonoGHashTables.  Fixes threadpool bug posted to list.
7498
7499 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7500
7501         * image.h, image.c: added support to load an assembly from a byte array.
7502         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7503         assembly bundle support.
7504
7505 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7506
7507         * threadpool.c (mono_thread_pool_add): keep a reference to the
7508         AsyncResult to prevent GC
7509
7510 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7511
7512         * class.c: leak fix.
7513
7514 2003-06-25  Dick Porter  <dick@ximian.com>
7515
7516         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7517         for the async object, the WaitHandle object will close the handle.
7518         Fixes bug 45321.
7519
7520 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7521
7522         * class.c: in mono_array_class_get (), lookup from the hash with the
7523         same type we insert: this works around a bug in
7524         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7525         lluis. The real fix will have to wait for after the release.
7526
7527 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7528
7529         * icall.c: fix memory leak when getting type members.
7530
7531 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7532
7533         * reflection.c: added more pubtoken special cases.
7534
7535 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7536
7537         * class.c: handle field offset correctly when class size
7538         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7539
7540 2003-06-20  Martin Baulig  <martin@ximian.com>
7541
7542         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7543         *image' field.
7544
7545 2003-06-20  Martin Baulig  <martin@ximian.com>
7546
7547         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7548
7549 2003-06-20  Martin Baulig  <martin@ximian.com>
7550
7551         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7552         just distinguish between variables in registers and variables at
7553         an offset relative to a register.
7554
7555 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7556
7557         * icall.c: #ifdef out latest changes until mcs is fixed.
7558
7559 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7560
7561         * icall.c: return members in metadata order.
7562
7563 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7564
7565         * icall.c: avoid infinite loop in GetTimeZoneData.
7566
7567 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7568
7569         * icall.c: added Marshal.Prelink/All icalls.
7570
7571 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7572
7573         * object.c, object.h: fix warnings and do some overflow checking
7574         when creating arrays.
7575
7576 2003-06-17  Dick Porter  <dick@ximian.com>
7577
7578         * file-io.h:
7579         * file-io.c: File attributes need to be tweaked slightly when
7580         passed from the managed to the w32 world.
7581
7582 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7583         * profiler.h profiler-private.h profiler.c: Rework last patch
7584         based on suggestion by Paolo.
7585         
7586 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7587
7588         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7589         instruction level coverage data collection.
7590         * profiler.h profiler.c (: Added new callback function which can be
7591         used by the profiler to limit which functions should have coverage
7592         instrumentation.
7593         * profiler.c (mono_profiler_load): Call g_module_build_path to
7594         generate the file name of the profiler library.
7595
7596 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7597
7598         * profiler.c, profiler.h, profiler-private.h: added basic block 
7599         coverage profiling API.
7600
7601 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7602
7603         * reflection.c (mono_reflection_create_runtime_class): Add support
7604         for events in dynamically generated code.
7605
7606         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7607         not allocated.
7608
7609 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7610
7611         * icall.c: when getting timezone info, return reasonable values if we
7612         can't get the actual data.
7613
7614 2003-06-14  Dick Porter  <dick@ximian.com>
7615
7616         * threads.c (start_wrapper): Remove the reference to the thread
7617         object in the TLS data, so the thread object can be finalized.
7618         This won't be reached if the thread threw an uncaught exception,
7619         so those thread handles will stay referenced :-( (This is due to
7620         missing support for scanning thread-specific data in the Boehm GC
7621         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7622
7623 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7624
7625         * reflection.c: ensure streams and tables are first allocated with
7626         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7627
7628 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7629
7630         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7631
7632 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7633
7634         * reflection.c (mono_reflection_create_runtime_class): Add support for
7635         properties to dynamically created classes.
7636         * reflection.c: Fix a few places where non-MonoObjects were inserted
7637         into the tokens hashtable.
7638
7639 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7640
7641         * object.c: some support to handle out of memory exceptions.
7642
7643 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7644
7645         * marshal.c (mono_marshal_get_native_wrapper): support reference
7646         return types
7647
7648 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7649
7650         * object.h, object.c: more portability stuff from Bernie Solomon.
7651         Unexport mono_object_allocate(). Added mono_object_unbox ().
7652         Set exitcode when an unhandled exception is thrown.
7653
7654 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7655
7656         * marshal.c (mono_marshal_get_native_wrapper): use custom
7657         marshaler for return types.
7658
7659 2003-06-10  Dick Porter  <dick@ximian.com>
7660
7661         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7662         ip_mreq is available
7663
7664 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7665
7666         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7667         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7668         by Bernie Solomon <bernard@ugsolutions.com>.
7669
7670 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7671
7672         * gc.c (mono_gc_init): Avoid error message on shutdown when
7673         GC_DONT_GC=1 is used.
7674
7675         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7676         New icall to return the GUID of a module.
7677
7678 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7679
7680         * class.c: ensure instance size always includes the parent's size
7681         even whem class size is set explicitly (fixes bug#44294).
7682
7683 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7684
7685         * profiler.h, profiler.c: made the simple profiler thread-safe,
7686         get more accurate timing info. Allow the loading of an
7687         externally-developed profiler module.
7688
7689 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7690
7691         * marshal.c (mono_marshal_get_native_wrapper): improved
7692         class/byref arguments.
7693         (mono_marshal_get_native_wrapper): better string marshaling support.
7694
7695 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7696
7697         * class.c: ensure .pack and .size are handled correctly and
7698         simplified layout of static fields.
7699
7700 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7701
7702         * appdomain.c
7703         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7704
7705         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7706         current directory (fix bug 44008)
7707
7708 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7709
7710         * marshal.c (mono_marshal_get_native_wrapper): started support for
7711         custom marshalers.
7712         (mono_delegate_to_ftnptr): consider marshalling specifications
7713
7714 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7715
7716         * reflection.c, reflection.h: emit custom marshal info.
7717
7718 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7719
7720         * object.c: free the GError.
7721         * icall.c: added CloseEvent_internal.
7722         * threads.[ch]:
7723         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7724         call.
7725
7726 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7727
7728         * loader.c (mono_method_get_signature): Add support for dynamic
7729         assemblies.
7730
7731 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7732
7733         * reflection.c: fixed bug #43905.
7734
7735 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7736
7737         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7738         handling TypedReference and ArgIterator.
7739         * loader.c, loader.h: added function to get signature at call site.
7740
7741 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7742
7743         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7744         data readonly. Buglets and warning fixes. Some MethodSpec support.
7745
7746 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7747
7748         * class.h, class.c, object.c: remove relative numbering support.
7749
7750 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7751
7752         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7753         free the string, until we get a chance to fix Gtk#
7754
7755 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7756
7757         * marshal.c: revert last patch.
7758
7759 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7760
7761         * icall.c: updates for new mono_class_vtable() not calling
7762         the type constructor anymore.
7763
7764 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7765
7766         * object.h, object.c: separate vtable creation from type
7767         initialization. Make running the .cctor thread safe.
7768
7769 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7770
7771         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7772
7773 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7774
7775         * loader.c (mono_get_method): consider calling convention
7776
7777 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7778
7779         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7780         to return the invisible global type for a module.
7781
7782         * reflection.c (mono_image_build_metadata): Emit global fields too.
7783
7784 2003-05-20  Peter Williams  <peterw@ximian.com>
7785
7786         * loader.c (mono_lookup_internal_call): Add a few newlines.
7787
7788 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7789
7790         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7791         literal strings.
7792
7793         * appdomain.c (set_domain_search_path): Recalculate search path when
7794         AppDomainSetup.PrivateBinPath changes.
7795
7796         * object.c (mono_class_compute_gc_descriptor): It turns out some
7797         parts of the class libs (like System.Thread) holds pointers to
7798         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7799         to treat native int a pointer type here.
7800         
7801 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7802
7803         * appdomain.h, domain.c: add hashtable for jump target resolution.
7804
7805 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7806
7807         * reflection.h reflection.c icall.c: Added new icalls 
7808         GetManifestResourceInfoInternal, GetModulesInternal and support
7809         infrastructure.
7810
7811 2003-05-16  Dick Porter  <dick@ximian.com>
7812
7813         * icall.c:
7814         * file-io.h:
7815         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7816
7817 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7818
7819         * object.c: mono_store_remote_field: little fix to previous patch.
7820
7821 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7822
7823         * class.c: add constructors to array classes.
7824         * icall.c: special case array construction for InternalInvoke (),
7825
7826 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7827
7828         * class.h class.c reflection.c object.c: Added support for field
7829         defaults in dynamically generated classes.
7830
7831 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7832
7833         * reflection.c: properly encode charset for ddlimport.
7834
7835 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7836
7837         * threads.c: allow compiling without GC.
7838
7839 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7840
7841         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7842         handling of thread static data.
7843
7844 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7845
7846         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7847
7848 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7849
7850         * class.c (mono_array_class_get): always set the serializable flags
7851         (mono_array_class_get): always set the SEALED attribute for array types
7852
7853 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7854
7855         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7856         attributes (fix for bug 42021).
7857
7858 2003-05-12  Dick Porter  <dick@ximian.com>
7859
7860         * gc.c: Don't run finalizers when the finalizer thread is
7861         finishing up, because the default domain has already been
7862         destroyed.
7863
7864 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7865
7866         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7867         value is null, we should throw an exception.   This is slightly
7868         different than the other conventions used for the constructor.
7869
7870 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7871
7872         * socket-io.c: fixed windows build.
7873
7874 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7875
7876         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7877
7878 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7879
7880         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7881         compilers.
7882
7883 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7884
7885         * class.c (mono_class_layout_fields): Add experimental GC aware
7886         auto layout facility. Requires class library changes to work correctly.
7887
7888         (mono_class_setup_vtable): Avoid overriding explicit interface
7889         method implementations. Fixes iface3.exe test.
7890
7891         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7892         object reference.
7893         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7894         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7895
7896         * metadata.h: Add new type classification macro which determines
7897         whenever the type holds an object reference.
7898
7899 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7900
7901         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7902
7903 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7904
7905         * gc.c (finalizer_thread): Work around a GC bug.
7906
7907 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7908
7909         * marshal.c (emit_struct_conv): allow unions
7910
7911         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7912
7913 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7914
7915         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7916
7917 2003-05-06  Martin Baulig  <martin@ximian.com>
7918
7919         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7920
7921 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7922
7923         * socket-io.c:
7924         (Select_internal): allow NULLs, don't create arrays if not needed.
7925         Coupled with Socket.cs changes.
7926
7927         * threadpool.c:
7928         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7929         register a finalizer for it that will close the semaphore handle. This
7930         fixes the leak and make Lupus' test run with > 4080 loops.
7931
7932 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7933
7934         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7935         Jerome Laban (bug #42287)
7936
7937 2003-05-02  Martin Baulig  <martin@ximian.com>
7938
7939         * debug-mono-symfile.h
7940         (MonoSymbolFile): Moved declaration into mono-debug.h.
7941         (MonoDebugMethodJitInfo): Likewise.
7942         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
7943         argument.
7944         (_mono_debug_address_from_il_offset): Take a
7945         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
7946
7947         * mono-debug.h
7948         (MonoDebugDomainData): New struct.
7949         (mono_debug_get_domain_data): New function.
7950         (mono_debug_add_method): Take an additional `MonoDomain *'
7951         argument.
7952         (mono_debug_source_location_from_address): Likewise.
7953         (mono_debug_il_offset_from_address): Likewise.
7954         (mono_debug_address_from_il_offset): Likewise.
7955
7956 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
7957
7958         * reflection.c: one more check for null type in custom attrs.
7959
7960 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7961
7962         * reflection.c: avoid warning (comparison is always false due to limited
7963         range of data type).
7964
7965 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7966
7967         * icall.c: throw an exception in Type.GetField if the argument 'name'
7968         is NULL.
7969
7970 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
7971
7972         * reflection.c: fixed handling of enums in named arguments to custom
7973         attributes (bug #42123).
7974
7975 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
7976
7977         * reflection.c: use the right array element type and handle
7978         a null for a Type argument, too.
7979
7980 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
7981
7982         * reflection.c: handle arrays as arguments to custom attributes.
7983
7984 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7985
7986         * reflection.c: handle a string value in a custom attr
7987         ctor that takes an object.
7988
7989 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
7990
7991         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
7992         (fix bug #42063)
7993
7994 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
7995
7996         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
7997
7998 2003-04-27  Martin Baulig  <martin@ximian.com>
7999
8000         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
8001         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
8002         MONO_DEBUGGER_EVENT_BREAKPOINT.
8003         (mono_breakpoint_trampoline_code): Removed.
8004         (mono_debugger_event_handler): The last argument is now a
8005         `guint32'.
8006         (mono_debugger_insert_breakpoint_full): Removed the
8007         `use_trampoline' argument.
8008         (mono_debugger_method_has_breakpoint): Likewise.
8009         (mono_debugger_trampoline_breakpoint_callback): Renamed to
8010         mono_debugger_breakpoint_callback(); take the method and
8011         breakpoint number as arguments.
8012
8013 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
8014
8015         * metadata.c: fix off by one when loading parameters attributes.
8016
8017 2003-04-24  Martin Baulig  <martin@ximian.com>
8018
8019         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
8020
8021 2003-04-24  Martin Baulig  <martin@ximian.com>
8022
8023         * mono-debug-debugger.c: Moved all code which interacts with the
8024         Mono Debugger here.
8025
8026         * debug-mono-symfile.c: This code now just deals with the symbol
8027         file itself, the debugger code is now in mono-debug-debugger.c.
8028
8029 2003-04-23  Martin Baulig  <martin@ximian.com>
8030
8031         * mono-debug.c (mono_debug_source_location_from_il_offset):
8032         New method; like mono_debug_source_location_from_address(), but
8033         takes an IL offset instead of a machine address.
8034
8035 2003-04-23  Martin Baulig  <martin@ximian.com>
8036
8037         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
8038         `line' field; this is now computed by the debugger.
8039
8040 2003-04-23  Martin Baulig  <martin@ximian.com>
8041
8042         * mono-debug.[ch]: New files.  This is the new debugging interface.
8043
8044         * mono-debug-debugger.[ch]: New files.  Moved all code which
8045         interacts with the Mono Debugger here.
8046
8047 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
8048
8049         * domain.c (mono_init): initialize mono_defaults.monitor_class
8050
8051 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
8052
8053         * reflection.c (method_encode_code): Add a spicy exception to help
8054         future compiler authors.
8055
8056 2003-04-21  Martin Baulig  <martin@ximian.com>
8057
8058         * icall.c
8059         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8060         Make this work with relative pathnames; g_filename_to_uri() needs
8061         an absolute filename.
8062
8063 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
8064
8065         * icall.c: Track name changes in Object and ValueType.
8066
8067 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
8068
8069         * metadata.c (mono_type_stack_size): size should be a multiple of
8070         sizeof (gpointer)
8071
8072 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8073
8074         * gc.c:
8075         (internal_domain_finalize): moved into mono_domain_finalize. No need
8076         to create another thread because the finalizers will be run in the
8077         finalizer thread.
8078         
8079         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
8080         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
8081         to be run (MS does this too).
8082
8083 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
8084
8085         * object.c (mono_class_compute_gc_descriptor): Update comment.
8086
8087         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
8088
8089         * image.h: Add synchronized wrapper cache.
8090
8091         * image.c (do_mono_image_open): Initialize cache.
8092
8093         * reflection.c (create_dynamic_mono_image): Initialize cache.
8094
8095 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8096
8097         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
8098         ves_icall_System_Buffer_ByteLengthInternal.
8099
8100 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
8101
8102         * reflection.c: setup klass->nested_in earlier. Allow
8103         a dash in the assembly name.
8104
8105 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
8106
8107         * metadata.c (mono_type_to_unmanaged): dont access
8108         type->data.klass for MONO_TYPE_OBJECT
8109         (mono_type_to_unmanaged): consider System.Delegate class
8110
8111 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
8112
8113         * class.c: just setup supertypes in the proper place instead of
8114         initializing the full element class for arrays.
8115
8116 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
8117
8118         * class.c: ensure the element class of arrays is initialized.
8119         Setup the supertype info for array classes, too.
8120
8121 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
8122
8123         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
8124
8125 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8126
8127         * Makefile.am: re-added -m option when running cygpath. This way,
8128         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
8129         separator.
8130         * mono-config.c: same codepath for locating mono config file for WIN32
8131         and the rest.
8132         * assembly.c: if mono_assembly_setrootdir is called, don't override
8133         the value set.
8134
8135 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8136
8137         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8138         MONO_ASSEMBLIES variable.
8139
8140 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8141
8142         * icall.c: added Assembly::GetNamespaces() icall.
8143
8144 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8145
8146         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8147
8148 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
8149
8150         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8151         * object.c: fixed bug in the construction of vtable for proxies
8152
8153 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8154
8155         * object.c (mono_array_new): Mark mono_array_new as an icall.
8156
8157 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8158
8159         * class.c: fixed test for public method when overriding interfaces.
8160         Closes bug #40970.
8161
8162 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8163
8164         * appdomain.h, domain.c: added mono_domain_foreach() to
8165         be able to access the currently loaded appdomains.
8166         * object.c: make string interning work across sppdomains.
8167         Mark some functions for use as icalls.
8168
8169 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8170
8171         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8172
8173         * reflection.h reflection.c: Allocate long living data using 
8174         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8175
8176         * reflection.c: Double the allocation size in streams instead of
8177         increasing it, to prevent unneccesary copying on large assemblies.
8178         
8179         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8180         creation if the assembly does not have the Run flag set.
8181
8182 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8183
8184         * class.h: avoid the C++ keywords in header files (Jerome Laban
8185         spotted and fixed this).
8186
8187 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8188
8189         * object.c:
8190         (mono_unhandled_exception): fill in the arguments for the
8191         UnhandledException event. Only trigger that event for the default
8192         domain (as MS does).
8193
8194 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8195
8196         * object.c: Improve typed allocation stuff based on suggestions from
8197         Paolo. Also turn it on if the GC library supports it.
8198
8199 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8200
8201         * object.c object.h class.h: Added experimental typed allocation
8202         facility using the interfaces in gc_gcj.h.
8203
8204         * os/gc_wrapper.h: Added new include files.
8205         
8206 2003-04-03  Martin Baulig  <martin@ximian.com>
8207
8208         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8209         which is not yet enabled by default.
8210
8211         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8212         functions.
8213         (mono_gc_lock, mono_gc_unlock): New static functions.
8214
8215         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8216         functions; stop/start the world for the garbage collector.  This
8217         is using the windows API; we need to complete the SuspendThread()/
8218         ResumeThread() implementation in the io-layer to make this work on Unix.
8219         (mono_gc_push_all_stacks): New public function; tells the garbage
8220         collector about the stack pointers from all managed threads.
8221
8222 2003-04-03  Martin Baulig  <martin@ximian.com>
8223
8224         * object.h (MonoThread): Added `gpointer stack_ptr'.
8225
8226         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8227
8228 2003-04-03  Martin Baulig  <martin@ximian.com>
8229
8230         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8231
8232 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8233
8234         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8235         field.last.
8236
8237 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8238
8239         * loader.c (mono_lookup_internal_call): Report the corlib that is
8240         out of sync.
8241
8242 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8243
8244         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8245         System.DBNull (it's class not valuetype).
8246
8247 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8248
8249         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8250         if the array method was already assigned a token (fixes bug#40646).
8251
8252 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8253
8254         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8255         if no assembly is given.
8256
8257 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8258
8259         * metadata.h: Added the new tables.
8260
8261         * row-indexes.h: Added definitions for new tables.
8262
8263         * metadata.c: Add schemas for new tables, and add support for
8264         computing the sizes of them.
8265
8266         * class.c: Update for handling the new type cases.
8267
8268 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8269
8270         * metadata.h (MONO_TYPE_IS_VOID): new macro
8271
8272 2003-03-31  Martin Baulig  <martin@ximian.com>
8273
8274         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8275
8276         * threads.c (mono_thread_new_init): Call `thread_created' in the
8277         mono_thread_callbacks.
8278
8279 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8280
8281         * loader.h: added marshalbyrefobject_class to mono_defaults
8282         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8283         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8284           generation of output parameters.
8285           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8286         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8287           contextbound and the target object belongs to the context of the caller.
8288         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8289         * object.c: Implemented support for interfaces and abstract classes
8290           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8291           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8292
8293 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8294
8295         * class.h class.c (mono_class_is_subclass_of): New function.
8296         
8297         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8298         routines for most common case (calls from ArrayList::ToArray).
8299
8300         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8301         routine so programs which call Environment::Exit() can be profiled.
8302
8303         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8304         Added MONO_ARCH_SAVE_REGS.
8305
8306         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8307
8308 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8309
8310         * blob.h: Add a couple of new MonoType types definitions.
8311
8312         * tabledefs.h: Add a couple of new call convs.
8313
8314 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8315
8316         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8317         the layout of the class.
8318
8319         * reflection.c (alloc_table): double the size on overflow to avoid
8320         unnecessary copying.
8321
8322         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8323         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8324         null so it can be garbage collected.
8325         
8326 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8327
8328         * reflection.c (mono_reflection_get_type): Return the resolved type
8329         only if it is in the assembly we searched.
8330
8331         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8332
8333         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8334         method.
8335
8336 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8337
8338         * appdomain.c:
8339         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8340         the right one is 'file:///blah', but MS allows it.
8341         * assembly.c:
8342         (mono_assembly_open): allow 'file://blah'
8343
8344         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8345
8346 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8347
8348         * socket-io.c: fixes bug #40310.
8349
8350 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8351
8352         * reflection.c (mono_reflection_parse_type): handle deeply nested
8353         types correctly.
8354
8355         * reflection.c (mono_image_create_token): Use unique token values
8356         since they will be put into a hash table.
8357
8358         * class.c (mono_class_setup_vtable): If a method occurs in more than
8359         one place in the vtable, and it gets overriden, then change the
8360         other occurances too.
8361
8362         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8363         object as return type.
8364
8365 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8366
8367         * icall.c: Deleted "ToString" implementation for double and float
8368         because they are full implemented in managed code.
8369
8370 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8371
8372         * reflection.c, reflection.h: implemented and exported functions
8373         to retrieve info about custom attributes.
8374
8375 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8376
8377         * appdomain.c: moved Uri handling to assembly.c
8378         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8379         work when using a file Uri in *nix and windows.
8380
8381         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8382         GetReferencedAssemblies.
8383
8384 2003-03-18  Dick Porter  <dick@ximian.com>
8385
8386         * icall.c: Rename a couple of internal calls
8387
8388         * threads.c: Set the thread state to Stopped when a thread exits.
8389         Fixes bug 39377.
8390
8391 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8392
8393         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8394         New icall.
8395
8396         * object.c (mono_class_vtable): fix warning.
8397
8398 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8399
8400         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8401
8402         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8403         memory.
8404         (method_encode_clauses): Create exception info structures in the right
8405         order.
8406         (mono_reflection_setup_internal_class): Initialize supertypes field.
8407
8408         * class.c object.c: Handle interfaces which implement other interfaces 
8409         correctly.
8410
8411         * class.h class.c: Move the supertypes array initialization code into 
8412         a separate function so it can be used for dynamic types too. Also call
8413         it earlier, in mono_class_init(), since it can be used before the
8414         type is initialized.
8415
8416 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8417
8418         * Makefile.am:
8419         * assembly.c:
8420         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8421
8422         * appdomain.c:
8423         * appdomain.h:
8424         * marshal.c:
8425         * object.c: remove warnings.
8426
8427 2003-03-13  Martin Baulig  <martin@ximian.com>
8428
8429         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8430         (MonoDebugLexicalBlockEntry): New types.
8431
8432         * debug-mono-symfile.c
8433         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8434
8435 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8436
8437         * process.c: ret can be any non-zero value accroding to MS doc.
8438
8439 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8440
8441         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8442         fixing a warning for a miss-used prototype, would have cause
8443         random memory corruption.
8444
8445 2003-03-07  Martin Baulig  <martin@ximian.com>
8446
8447         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8448         getting really annoying ....
8449
8450 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8451
8452         * reflection.c (fixup_method): added support for array methods.
8453
8454 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8455
8456         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8457         (pointed out by Michael Adams).
8458
8459 2003-03-04  Dick Porter  <dick@ximian.com>
8460
8461         * icall.c: Temporarily reverted the Double and Single ToString()
8462         change, because it broke nunit.
8463
8464 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8465
8466         * object.h, threads.h: make include files compatible with C++
8467         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8468
8469 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8470
8471         * icall.c: Erased ToString helper functions for Double and Single.
8472         Now, that implementations ar all in managed code (Double and Single
8473         Formatters).
8474
8475 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8476
8477         * appdomain.c: Added method for initializing the default context of
8478         a domain. Added internal call for getting the default context.
8479         * appdomain.h: Added context variable in MonoDomain struct.
8480         * domain.c: mono_domain_set also sets the default context of the domain
8481         * icall.c: Mapped internal method InternalGetDefaultContext.
8482         * object.c: mono_object_get_virtual_method returns always a remoting
8483         wrapper if the object is a transparent proxy.
8484         mono_runtime_invoke_array: when creating an object by calling the
8485         constructor, if the created object is a proxy, then the constructor should
8486         be called using the a remoting wrapper.
8487
8488 2003-03-03  Dick Porter  <dick@ximian.com>
8489
8490         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8491         variable so it compiles on solaris.  Problem spotted by
8492         Christopher Taylor <ct@cs.clemson.edu>
8493
8494 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8495
8496         * appdomain.c:
8497         (get_info_from_assembly_name): don't leak value.
8498
8499         * icall.c:
8500         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8501         result.
8502
8503 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8504
8505         * assembly.c: export mono_image_load_references ().
8506         * class.c: handle function pointers. mono_class_from_name() now
8507         supports nested type names directly.
8508
8509 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8510
8511         * reflection.h reflection.c: Encode already created dynamic methods 
8512         and fields correctly as a DEF instead of a REF.
8513
8514         * reflection.c: Get rid of the force_ref argument to 
8515         mono_image_typedef_or_ref since it was wrong in the first place.
8516
8517         * string-icalls.c: add error checking to string constructors according
8518         to the MSDN docs.
8519
8520         * reflection.c: Emit types in the order their TypeBuilders were 
8521         created. Previously, a new table index was assigned to each type before
8522         the tables were emitted. This was wrong because the signature blob
8523         might already refer to a type by its original table index.
8524
8525 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8526
8527         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8528         change.
8529         
8530 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8531
8532         * Makefile.am: make assemblies dir have \ instead of / on windows.
8533
8534 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8535
8536         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8537         iterate over the NESTEDCLASS table using a linear search since the
8538         table is not guaranteed to be sorted by the secondary key.
8539
8540         * class.c (mono_class_create_from_typedef): fixed up call to
8541         mono_metadata_nesting_typedef.
8542         
8543 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8544
8545         * marshal.c (mono_string_to_byvalstr): clear the memory as
8546         suggested by Jerome Laban <jlaban@wanadoo.fr>
8547
8548 2003-02-26  Dick Porter  <dick@ximian.com>
8549
8550         * process.c: Cope with padding in .rsrc blocks
8551
8552 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8553
8554         * metadata.h: reverted the filter_len change, it breaks reflection
8555         
8556 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8557
8558         * metadata.h: added a new field to store the filter_len
8559         
8560
8561 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8562
8563         * reflection.c: handle custom attributes for types and members
8564         created with Reflection.Emit (bug#38422).
8565
8566 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8567
8568         * reflection.c: define RTSpecialName automatically for constructors for
8569         compatibility with MS.NET.
8570
8571         * reflection.c (mono_reflection_create_runtime_class): initialize
8572         nested_in field of dynamically created classes.
8573
8574 2003-02-22  Martin Baulig  <martin@ximian.com>
8575
8576         * debug-mono-symfile.h: Incremented version number.
8577
8578 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8579
8580         * object.h icall.c process.c: fix warnings.
8581
8582 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8583
8584         * appdomain.h appdomain.c:
8585         (mono_domain_try_type_resolve): split the 
8586         name_or_tb argument into a name and a tb argument.
8587         (mono_domain_has_type_resolve): new function to check whenever the
8588         application has registered a TypeResolve event handler.
8589         
8590         * icall.c reflection.h reflection.c: move the type resolve logic into
8591         mono_reflection_get_type () so it will be invoked when 
8592         Assembly::GetType () is called.
8593
8594         * reflection.c:
8595         (mono_reflection_get_type): renamed to get_type_internal.
8596         (mono_reflection_get_type): fixed type name generation so it works 
8597         for nested types too.
8598         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8599         costly type name generation if there is no resolve event handler.
8600
8601 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8602
8603         * class.c, image.c: load exported types from file references.
8604
8605 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8606
8607         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8608           used to cache the managed methods used to create proxies and make 
8609           remote invocation of methods.
8610         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8611           to be remotely created.
8612         * object.c: Modified the method mono_class_vtable(). It now initializes 
8613           the remote flag of the vtable. Modified mono_object_new_specific(), 
8614           so now it checks the remote flag.
8615         * icall.c: Added a couple of internal methods, one for enabling instance 
8616           creation interception for a type, and one for creating objects bypassing
8617           the remote check.
8618
8619 2003-02-18  Martin Baulig  <martin@ximian.com>
8620
8621         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8622         New interncall to get a method's metadata token.
8623
8624         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8625         New interncall for the debugger.
8626
8627 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8628
8629         * class.c (mono_class_setup_vtable): allocate supertype array
8630
8631 2003-02-18  Martin Baulig  <martin@ximian.com>
8632
8633         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8634
8635 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8636
8637         * reflection.c:
8638         (assembly_name_to_aname): jump over unknown properties (i've found
8639         something like: 'type, assembly, version=xxx, custom=null, public...',
8640         so now will ignore custom=null and still get the rest of the values).
8641
8642 2003-02-17  Dick Porter  <dick@ximian.com>
8643
8644         * threads.c: Have Thread.Start() wait for a semaphore to signal
8645         that the thread has set up all its local data.  This fixes bug
8646         34323, where Abort() raced the new thread's TLS data.
8647
8648         Also removes the handle_store() call from start_wrapper, because
8649         threads are now always created suspended and there is no longer a
8650         race between the parent and child threads to store the info.
8651
8652 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8653
8654         * image.c: explain the #- heap issue in a message, hopefully
8655         avoiding FAQs on mono-list.
8656
8657 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8658
8659         * icall.c:
8660         (GetEntryAssembly): if the domain has not invoked
8661         AppDomain.ExecuteAssembly yet, return the assembly of the default
8662         AppDomain.
8663
8664 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8665
8666         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8667
8668 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8669
8670         * metadata.c, reflection.c: simple speedup to type hash
8671         and equals code.
8672
8673 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8674
8675         * image.c, image.h, class.c, assembly.c: move module loading
8676         to MonoImage. When loading metadata, consider alignemnet from
8677         the start of metadata, not from the metadata address in memory.
8678
8679 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8680
8681         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8682         AssemblyBuilder objects. Factored out custom attribute creation into
8683         a separate function.
8684         (create_custom_attr): new function to create custom attributes.
8685
8686 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8687
8688         * Makefile.am: Got tired of typing the full pathname to pedump.
8689         Until there is another option, am installing this.
8690
8691 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8692
8693         * class.c (class_compute_field_layout): always set field->parent 
8694         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8695
8696 2003-02-11  Dick Porter  <dick@ximian.com>
8697
8698         * threads-types.h:
8699         * monitor.c: Rewrote Monitor, making lock much faster and
8700         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8701         creates them as needed.
8702
8703         * exception.c: Added SynchronizationLockException
8704
8705         * threads.c: Deleted old Monitor implementation.  The new one is
8706         in a new file.
8707
8708 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8709
8710         * class.c: handled TypedReference type code. Set the correct size for
8711         class data. Setup interface_offsets for interface classes, too.
8712
8713 2003-02-09  Martin Baulig  <martin@ximian.com>
8714
8715         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8716
8717 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8718
8719         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8720         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8721         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8722         * verify.c: check for code that runs after the end of the method.
8723
8724 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8725
8726         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8727         "System.Math::Round2".
8728         * sysmath.h: Added Floor, Round and Round2 definitions.
8729         * sysmath.c: Modified certain functions that were not 100% compliant
8730         with MS.NET (math precision) and added the implementation of Floor,
8731         Round and Round2.
8732
8733 2003-02-07  Martin Baulig  <martin@ximian.com>
8734
8735         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8736
8737 2003-02-07  Martin Baulig  <martin@ximian.com>
8738
8739         * debug-mono-symfile.c: Reflected latest symwriter changes.
8740         (mono_debug_create_mono_symbol_file): Removed.
8741         (mono_debug_open_mono_symbol_file): Take an argument which
8742         specifies whether to create a dynamic symbol file.
8743
8744 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8745
8746         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8747
8748 2003-02-05  Martin Baulig  <martin@ximian.com>
8749
8750         * reflection.c (mono_image_build_metadata): Make this public,
8751         protect it against being called multiple times, don't create
8752         resources and don't build the compressed metadata here.
8753         (mono_image_create_pefile): Do this here.
8754
8755         * icall.c
8756         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8757
8758 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8759
8760         * socket-io.c: fixed bug #36322.
8761
8762 2003-02-06  Piers Haken <piersh@friskit.com>
8763
8764         * appdomain.[ch]:
8765         * class.h:
8766         * debug-mono-symfile.c:
8767         * icall.c:
8768         * loader.c:
8769         * mono-config.c:
8770         * monosn.c:
8771         * reflection.c:
8772         * socket-io.c: warning cleanups
8773
8774 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8775
8776         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8777         function. works like remoting invoke, but does a check for the Proxy first.
8778
8779 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8780
8781         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8782
8783 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8784
8785         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8786         array of pointers.
8787         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8788         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8789
8790         * object.c (mono_store_remote_field_new): used by the new jit
8791         instead of mono_store_remote_field
8792         (mono_load_remote_field_new): used by the new jit
8793         instead of mono_load_remote_field
8794
8795 2003-02-05  Patrik Torstensson
8796
8797         * appdomain.c: changed unload to take the domain id instead
8798         of domain
8799         
8800         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8801
8802
8803 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8804
8805         * appdomain.c: don't look for assemblies in ApplicationBase if
8806         PrivateBinPathProbe is set.
8807
8808 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8809
8810         * object.c: make the first argument in main_args contain the absolute
8811         path to the assembly. Fixes bug #37511.
8812
8813 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8814
8815         * icall.c: get correct UTC offset for countries not using daylight
8816         time saving. Fixes bug #30030.
8817
8818 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8819
8820         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8821         and 1 are the family).
8822
8823 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8824
8825         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8826
8827         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8828
8829 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8830
8831         * reflection.c: added support for SignatureHelper tokens, which is
8832         needed by the Calli opcode.
8833
8834         * reflection.h: track changes to SignatureHelper class.
8835
8836         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8837
8838 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8839
8840         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8841
8842 2003-02-03  Patrik Torstensson
8843         * appdomain.[c|h], domain.c : 
8844          - Added support for getting a domain via domain id
8845          - Support for setting and getting domain from System.AppDomain 
8846            (used in cross appdomain channel)
8847          - Added support for get/set for a MonoAppContext on a thread 
8848            (Context class in System.Runtime.Remoting.Contexts),
8849          - Removed hack in Get/SetData and ExecuteAssembly.
8850         
8851         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8852         the managed world to get control when a proxy is created.
8853
8854         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8855         
8856 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8857
8858         * icall.c
8859         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8860         Populate the codebase field as well.
8861
8862 2003-02-02  Martin Baulig  <martin@ximian.com>
8863
8864         * debug-mono-symfile.c
8865         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8866         (mono_debug_symfile_add_method): Allow interncalls.
8867
8868 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8869
8870         * icall.c: throw parse exception if strtod fails or the string is empty.
8871
8872 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8873
8874         * marshal.c: handle object type separately from defined
8875         class types.
8876
8877 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8878
8879         * marshal.c: handle NATIVE_LPSTR for strings when it's
8880         explicitly specified.
8881
8882 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8883
8884         * reflection.c, reflection.h, icall.c: setup the reflection
8885         handle cache for ModuleBuilders and AssemblyBuilders.
8886
8887 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8888
8889         * reflection.c (reflection_methodbuilder_to_mono_method): set
8890         pinvoke flag
8891
8892 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8893
8894         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8895
8896 2003-01-29  Dick Porter  <dick@ximian.com>
8897
8898         * threads.c: No need for the fake_thread kludge now that Thread
8899         doesn't run a class constructor
8900         
8901 2003-01-29  Dick Porter  <dick@ximian.com>
8902
8903         * threads.c: Use g_direct_hash instead of the rather bogus
8904         g_int_hash
8905
8906 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8907
8908         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8909         (fix pinvoke12.exe)
8910         (mono_marshal_get_struct_to_ptr): generate valid IL code
8911         (mono_marshal_get_ptr_to_struct): generate valid IL code
8912         (*): correctly set sig->pinvoke, we need to memdup the signature
8913         to do that
8914
8915 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8916
8917         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8918         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8919
8920 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8921
8922         * profiler.c: provide more callers information.
8923
8924 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8925
8926         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8927
8928         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8929
8930         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8931
8932 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8933
8934         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8935         exception instead of going into an infinite loop on dates which it 
8936         can't yet handle.
8937
8938         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
8939         out-of-range exception if needed.
8940
8941         * class.c (mono_class_setup_vtable): allow a virtual method to provide
8942         an implementation for an interface method and to override an inherited
8943         method at the same time. 
8944         Imagine a scenario when a virtual method is used to override a
8945         virtual abstract method in a parent class, and this same method 
8946         provides an implementation for an method inherited from an interface. 
8947         In this case, the interface resolution code will set im->slot, which 
8948         means that the virtual method override pass will skip this method 
8949         which means a pointer to the abstract method inherited from the parent
8950         will remain in the vtable of this non-abstract class.
8951
8952         * class.c: (mono_class_setup_vtable): continue search for a real 
8953         method if only an abstract method is found.     
8954
8955 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8956
8957         * reflection.c: add size to encoding for ByValStr and ByValArray
8958         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
8959
8960 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8961
8962         * class.c (mono_class_setup_vtable): pass the override info as an
8963         argument.
8964
8965         * class.c (mono_class_setup_vtable): set the slot of overriding methods
8966         correctly.
8967         
8968         * reflection.c (ensure_runtime_vtable); add support for method 
8969         overrides.
8970         
8971 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8972
8973         * reflection.c (resolution_scope_from_image): Hack to work to work with
8974         dynamic assemblies.
8975
8976         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
8977         added a 'force_ref' argument to force this function to allways return 
8978         a TypeRef. This is needed by mono_image_get_memberref_token ().
8979         
8980 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8981
8982         * reflection.c (mono_image_get_type_info): interfaces really don't have
8983         a parent.
8984
8985         * reflection.c (mono_image_basic_init): fill out missing fields of
8986         image structure.
8987
8988         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
8989         dynamic assemblies. This is required so dynamic assemblies show up in
8990         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
8991         Type::GetType() etc. This is consistent with MS behaviour.
8992
8993         * image.c image.h reflection.c: add newly created classes to the name 
8994         cache so mono_class_get () will find them.      
8995
8996 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8997
8998         First part of changes to get IKVM.NET running under mono.
8999         
9000         * appdomain.h, appdomain.c: added new function 
9001         mono_domain_try_type_resolve() which will emit TypeResolve events. 
9002         This function will call AppDomain::DoTypeResolve to do the actual work.
9003
9004         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
9005         moved existing code dealing with dynamic tokens to a new function 
9006         called mono_reflection_lookup_dynamic_token (). This function will 
9007         raise TypeResolve events when appropriate. Since reflection.c is not 
9008         part of libmetadata, a new hook function called 
9009         mono_lookup_dynamic_token() is added to class.c which will call this.
9010
9011         * assembly.h assembly.c: make the invoke_load_hook function public,
9012         so it can be called for dynamic assemblies.
9013
9014         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
9015
9016         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
9017         type isn't found.
9018
9019         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
9020         MonoGHashTable, since it contains pointers to objects which the GC 
9021         needs to track.
9022
9023         * assembly.c (search_loaded): remove unused variable.
9024         
9025 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
9026
9027         * object.c: fixed issue exposed by gcc-generated IL programs
9028         that use RVA data for pointers.
9029
9030 2003-01-25  Martin Baulig  <martin@ximian.com>
9031
9032         * threads.c (start_wrapper): Moved the initialization of
9033         `start_func' above the mono_new_thread_init() call to which we
9034         pass it as argument.
9035
9036 2003-01-24  Martin Baulig  <martin@ximian.com>
9037
9038         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
9039         the MonoThread pointer.
9040
9041 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
9042
9043         * icall.c: Rename `PowImpl' to Pow.
9044
9045 2003-01-23  Dick Porter  <dick@ximian.com>
9046
9047         * threads.c (start_wrapper): Create a Thread object if needed, so
9048         the Main() thread can do the class initialisation in a subthread
9049         that has been set up to allow managed code execution.
9050
9051         Pass the thread ID instead of the MonoThread pointer to the thread
9052         start and attach callbacks.  This change is required, because the
9053         jit thread start callback must be called _before_ the Thread
9054         object can be created.
9055         
9056         (mono_thread_init): Removed much object creation code that is no
9057         longer needed.  No managed code is called from here now.
9058
9059         * object.c (mono_runtime_exec_managed_code): Create a subthread
9060         for Main, and call back to the runtime to use it.
9061         Set the exit code when Main exits.
9062
9063         * gc.c: Make sure domain finalisation happens in a subthread.
9064         Re-enable threaded GC, fixing bug 31333 (again).
9065
9066         * environment.c: System.Environment internall calls (so far just
9067         ExitCode is here, the others are still in icall.c)
9068
9069         * appdomain.c (mono_runtime_cleanup): All threads running managed
9070         code should have finished before mono_runtime_cleanup() is
9071         reached, so no need to clean up threads.
9072
9073 2003-01-22  Martin Baulig  <martin@ximian.com>
9074
9075         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
9076         `gpointer func' arguments.      
9077         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
9078         but added `MonoThread *thread' argument.
9079         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
9080
9081         * threads.c (mono_new_thread_init): Added `gpointer func' argument
9082         and pass it to the mono_thread_start_cb callback.
9083         (mono_install_thread_callbacks): New public function to install a
9084         set of callbacks which are set by the debugger.
9085         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
9086
9087 2003-01-22  Martin Baulig  <martin@ximian.com>
9088
9089         * Makefile.am: Install debug-mono-symfile.h.
9090
9091 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
9092
9093         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
9094
9095 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
9096
9097         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
9098         * class.c (mono_ptr_class_get): correctly set access levels of pointers
9099         (mono_array_class_get): correctly set access levels of arrays
9100
9101 2003-01-20      Patrik Torstensson
9102         * image.h (MonoAssemblyName): changed major, minor, build, revision
9103         from signed to unsigned.
9104
9105 2003-01-20  sean kasun <skasun@azstarnet.com>
9106
9107         * reflection.c (load_cattr_value): Now this handles
9108         MONO_TYPE_SZARRAY.  Fixes bug #35629
9109
9110 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
9111
9112         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
9113         integer value
9114
9115 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9116
9117         * decimal.c: fixed bug #26056.
9118
9119 2003-01-17  Martin Baulig  <martin@ximian.com>
9120
9121         * gc.c: Raise an ExecutionEngineException instead of using g_error().
9122
9123 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9124
9125         * exception.[ch]:
9126         (mono_get_exception_type_initialization): new function.
9127
9128         * object.c: throw a TypeInitializationException when an exception is
9129         thrown invoking the class constructor.
9130
9131 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9132
9133         * reflection.c: fixed attribute reading.
9134
9135 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9136
9137         * icall.c:
9138         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9139         provided, look for the type in the calling assembly and then in
9140         mscorlib; if the assembly name is provided, only try that one.
9141
9142 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9143
9144         * object.c: register the vtable before there is a chance it's
9145         queried again recursively.
9146
9147 2003-01-13  Duncan Mak  <duncan@ximian.com>
9148
9149         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9150         gc-internal.h. 
9151         
9152 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9153
9154         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9155
9156 2003-01-11  Martin Baulig  <martin@ximian.com>
9157
9158         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9159         this to 20 for the release.
9160
9161 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9162
9163         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9164
9165         * loader.c (mono_method_get_marshal_info): bug fix
9166
9167         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9168         structures with explicit layout
9169
9170 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9171
9172         * profiler.c: made the output more readable (and sorted). 
9173         Added caller information for the allocation profiler.
9174
9175 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9176
9177         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9178
9179 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9180
9181         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9182         to get value types.
9183         
9184 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9185
9186         * object.c, profiler.h, profiler.c, profiler-private.h:
9187         Added object allocation profiler.
9188
9189 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9190
9191         * reflection.h, reflection.c: handle global methods.
9192         Compress blob entries.
9193
9194 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9195
9196         * marshal.c: fix compilation.
9197
9198 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9199
9200         * loader.c (mono_method_get_marshal_info): impl.
9201
9202         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9203
9204 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9205
9206         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9207         for reference types.
9208
9209 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9210
9211         * loader.c: fixed off by one error in loaded parameter names.
9212
9213 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9214
9215         * marshal.c (mono_marshal_get_icall_wrapper): like
9216         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9217         instead of a MonoMethod.
9218
9219 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9220
9221         * decimal.c: fixed bug #36537.
9222
9223 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9224
9225         * marshal.c: throw a missing method exception if a
9226         P/Invoke method is not found.
9227
9228 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9229
9230         * icall.c: allow a null this for constructors.
9231
9232 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9233
9234         * icall.c: raise the proper exceptions if the arguments to the
9235         internal Invoke are incorrect.
9236
9237 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9238
9239         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9240
9241 2003-01-03  Martin Baulig  <martin@ximian.com>
9242
9243         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9244
9245 2002-12-31  Martin Baulig  <martin@ximian.com>
9246
9247         * debug-mono-symfile.c: Completely rewrote the type section.
9248         Instead of using individual malloc()ed fields, we use one big
9249         continuous memory area and offsets into this area.
9250         See the comments in the source code for details.
9251
9252 2002-12-30  Martin Baulig  <martin@ximian.com>
9253
9254         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9255
9256 2002-12-30  Martin Baulig  <martin@ximian.com>
9257
9258         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9259         line number table in this data blob instead of using an external
9260         pointer.
9261
9262 2002-12-28  Martin Baulig  <martin@ximian.com>
9263
9264         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9265
9266 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9267
9268         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9269         as a boxed return type.
9270
9271 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9272
9273         * appdomain.c
9274         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9275         g_build_filename to properly get separators on the filename created.
9276
9277         * object.h: Small change, introduce MonoMarshalByRefObject to
9278         track the layout of that structure in the C# universe as we make
9279         changes there.
9280
9281 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9282
9283         * object.c: removed assert to allow static fields on interfaces.
9284         * loader.c: a TypeSpec may be used for any type, not just arrays.
9285
9286 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9287
9288         * class.c, class.h: added mono_class_array_element_size ().
9289         Ignore static methods in interfaces.
9290
9291 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9292
9293         * threads.c: fixed the build under cygwin.
9294
9295 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9296
9297         * reflection.c: handle nullref constants. Allocate keys for
9298         reflection handles with the GC.
9299
9300 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9301
9302         * threads.c, threads.h: added mono_thread_get_abort_signal()
9303         to get a suitable signal for thread abort.
9304
9305 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9306
9307         * metadata.c: fix handling of ExportedType table.
9308
9309 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9310
9311         * icall.c: added WriteWindowsDebugString internal call.
9312
9313 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9314
9315         * reflection.h: added fields to match C# implementation.
9316
9317 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9318
9319         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9320
9321 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9322
9323         * gc.h, gc-internal.h: Rename header for GC internal calls to
9324         gc-internal.h from gc.h as to not clash with Boehm GC having its
9325         header installed as <gc.h> in outside include paths.
9326         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9327         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9328
9329 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9330
9331         * icall.c: assign minor, build and revision in FillName.
9332
9333 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9334
9335         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9336         Added support for running code generated by Reflection.Emit.
9337
9338 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9339
9340         * appdomain.c: check for NULL argument in LoadFrom.
9341
9342 2002-12-10  Dick Porter  <dick@ximian.com>
9343
9344         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9345
9346 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9347
9348         * appdomain.c: fix buglet when building exe file name.  Handle full
9349         assembly name (needed after latest changes to AssemblyName).
9350         * image.c:
9351         (mono_image_close): free some hashtables.
9352
9353 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9354
9355         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9356         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9357         on some systems (redhat 7.3) 
9358
9359 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9360
9361         * threads.c: delete the critical section of a sync block,
9362         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9363
9364 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9365
9366         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9367
9368 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9369
9370         * appdomain.[ch]: handle the assembly preload event to try loading the
9371         assemblies using the paths we have in the current domain.
9372
9373         * assembly.[ch]: created an assembly preload hook that is called to try
9374         loading the assembly by other means that the ones provided here.
9375
9376         * domain.c: initialize the domain search path.
9377
9378         From now on, assemblies (TODO: except corlib and System) are loaded
9379         according to these rules when using mono_assembly_load ():
9380
9381                 1. It tries to load the assembly from the ApplicationBase
9382                 of the current domain appending .dll and .exe (TODO: have to
9383                 try loading from name/name.dll and name/name.exe).
9384
9385                 2. It tries the search path specified in PrivateBinPath for the
9386                 current domain (if any).
9387
9388                 3. Previous behavior.
9389
9390 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9391
9392         * icall.c: implemented GetInterfaceMap() related icall.
9393         * domain.c, loader.h: load MethodInfo in mono_defaults.
9394
9395 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9396
9397         * gc.c: disable the finalizer thread for now, untill all the issues
9398         with it are resolved.
9399
9400 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9401
9402         * string-icalls.c: handle embedded nulls in string ctor when the
9403         length is specified.
9404
9405 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9406
9407         * class.c: look for explicit interface implementation in parent
9408         classes, too.
9409
9410 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9411
9412         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9413
9414 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9415
9416         * gc.c: protect handles with a critical section.
9417
9418 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9419
9420         * icall.c:
9421         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9422         parameters. If no assembly specified, try getting the type from all
9423         the assemblies in the current domain, else, load the assembly and get
9424         the type from it.
9425
9426 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9427
9428         * marshal.c: applied patch from Aleksey Demakov that fixes
9429         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9430
9431 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9432
9433         * icall.c: fixed get_location.
9434
9435 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9436
9437         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9438         declarations to make it work with older gcc. 
9439
9440         * loader.c (mono_get_method): set signature->pinvoke for native calls
9441
9442 2002-11-20  Dick Porter  <dick@ximian.com>
9443
9444         * threads.c (mono_thread_init): Set the main thread's handle
9445
9446 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9447
9448         * gc.c: allow compilation without GC support. Changed to match the
9449         mono coding style.
9450
9451 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9452
9453         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9454
9455 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9456
9457         * reflection.c: set a public key token on the core assemblies.
9458
9459 2002-11-18  Dick Porter  <dick@ximian.com>
9460
9461         * threads.c: Split out some thread initialisation so that other
9462         files can set the start callback function.
9463
9464         * gc.c: Run finalisers in a separate thread, to avoid stack
9465         overflow.  Fixes bug 31333.
9466
9467         * appdomain.c: Set up GC finalisation thread.
9468
9469         * reflection.c: 
9470         * object.c: 
9471         * domain.c: Use gc.h macros for GC_malloc
9472         
9473 2002-11-15  Dick Porter  <dick@ximian.com>
9474
9475         * threadpool.c: 
9476         * threads.c:
9477         * appdomain.c: Removed mono_runtime_init_with_attach(),
9478         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9479         merging the extra parameter with the existing function.  Removed
9480         unneeded code in mono_thread_attach().
9481
9482 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9483
9484         * image.c (mono_image_loaded_by_guid): a method to get loaded
9485         images by guid. 
9486         (load_metadata_ptrs): we store the guid as string.
9487
9488 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9489
9490         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9491
9492         * metadata.c (mono_guid_to_string): imported method form Zoltan
9493         Varga (slightly modified)
9494
9495         * assembly.c (mono_assembly_open): load precompiled code
9496
9497         * loader.h (MonoMethod): we store the method token for use in the
9498         aot compiler. 
9499
9500 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9501
9502         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9503         the hook function called when an assembly is loaded.
9504         
9505         * domain.c: Modified file.
9506         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9507
9508         Fixes bug #33196.
9509
9510 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9511
9512         * reflection.c: Map PEFileKind to the value expected by the WinNT
9513         image loader. 
9514
9515 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9516
9517         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9518         Read until the buffer is filled completely.
9519
9520 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9521
9522         * icall.c: implemented MonoType.InternalGetEvent ().
9523
9524 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9525
9526         * appdomain.c: implemented InitAppDomainSetup. Delayed
9527         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9528         the entry_assembly.
9529
9530         * assembly.c: base_dir is now an absolute path ending with
9531         G_DIR_SEPARATOR.
9532
9533         * icall.c: modified get_location according to the above changes.
9534
9535         * object.c: init AppDomain.SetupInformation for the default domain after
9536         we have the entry assembly.
9537
9538         * domain.c: when unloading a domain, setup = NULL.
9539
9540 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9541
9542         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9543
9544 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9545
9546         * object.h, object.c: introduced mono_object_get_virtual_method ()
9547         to lookup the method invoked on an object when a callvirt is done on
9548         a method.
9549         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9550
9551 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9552
9553         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9554         current domain when loaded an assembly and failed to load it.
9555
9556         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9557
9558 2002-10-31  Dick Porter  <dick@ximian.com>
9559
9560         * icall.c: 
9561         * file-io.h: 
9562         * file-io.c: Return the error status in a parameter, as the
9563         GetLastError() value has long since been blown away if we try and
9564         look it up in a subsequent internal call invocation.  Delete the
9565         GetLastError() internal call, because it's useless.
9566
9567 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9568
9569         * class.[ch]: added cast_class to fix bug 29517
9570
9571 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9572
9573         * marshal.c: create valid IL code in the filter clause:
9574         the new JIT is less forgiving:-)
9575
9576 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9577
9578         * icall.c: removed get_property internal call.
9579
9580 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9581
9582         * appdomain.h domain.c: Added an ID to appdomains.
9583         
9584         * threads.c threads.h icall.c: Implement icall
9585         Thread:GetDomainID(), and remove unused icall 
9586         CurrentThreadDomain_internal.
9587
9588 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9589
9590         * icall.c: Don't recurse through the base types in GetConstructor.
9591         Fixes bug #32063. 
9592
9593 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9594
9595         * mempool.h, mempool.c: added mono_mempool_empty() and
9596         mono_mempool_stats().
9597
9598 2002-10-23  Dick Porter  <dick@ximian.com>
9599
9600         * file-io.c: 
9601         * file-io.h: 
9602         * icall.c: Added MonoIO.GetFileType internal call
9603
9604 2002-10-17  Dick Porter  <dick@ximian.com>
9605
9606         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9607         delegate semaphore before waiting for all threads to finish,
9608         because new threads can also call async delegates.  Fixes bug
9609         32004.
9610
9611         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9612         of 3 seconds, in case another async job is queued.  (This part is
9613         needed because the bug fix reintroduced the 3s exit lag.)  This
9614         makes the mono_runtime_shutdown flag superfluous.
9615
9616 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9617
9618         * reflection.c: include ehader size in method section headers.
9619         Really check for suplicated modules entries.
9620
9621 2002-10-17  Martin Baulig  <martin@gnome.org>
9622
9623         * debug-mono-symfile.c: Added back support for locals.
9624
9625 2002-10-14  Martin Baulig  <martin@gnome.org>
9626
9627         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9628         MONO_TYPE_VOID.
9629
9630 2002-10-14  Martin Baulig  <martin@gnome.org>
9631
9632         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9633         mono_class_get() instead of looking in the class cache. 
9634
9635 2002-10-13  Martin Baulig  <martin@gnome.org>
9636
9637         * debug-mono-symfile.c: Set version number to 28, include the
9638         signature in method names.
9639
9640 2002-10-13  Martin Baulig  <martin@gnome.org>
9641
9642         * debug-mono-symfile.h: Set version number to 27.
9643
9644 2002-10-11  Martin Baulig  <martin@gnome.org>
9645
9646         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9647
9648 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9649
9650         * metadata.c, metadata.h: added helper function to allocate signatures.
9651
9652 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9653
9654         * icall.c: added internal call to get the location of machine.config.
9655
9656 2002-10-08  Martin Baulig  <martin@gnome.org>
9657
9658         * debug-mono-symfile.c: Ignore classes with a pending init for the
9659         moment.
9660
9661 2002-10-03  Dick Porter  <dick@ximian.com>
9662
9663         * threads.c: Freebsd pthread_t is a pointer
9664
9665 2002-10-03  Dick Porter  <dick@ximian.com>
9666
9667         * socket-io.c: Implemented GetHostName_internal
9668
9669 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9670
9671         * mono-config.c:
9672         (mono_config_parse_file): don't leak the text.
9673
9674 2002-10-02  Martin Baulig  <martin@gnome.org>
9675
9676         * debug-mono-symfile.c: Added support for methods.
9677
9678 2002-10-01  Martin Baulig  <martin@gnome.org>
9679
9680         * debug-mono-symfile.c: Don't emit methods and line numbers for
9681         the dynamic symbol file, just write the type table.  We can easily
9682         have an external helper program which creates a symbol file for an
9683         IL file.        
9684
9685 2002-10-01  Dick Porter  <dick@ximian.com>
9686
9687         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9688         Only add the handle to the cleanup array when we're about to
9689         launch the thread.  Bug 31425 deadlocked when the test was run on
9690         mono under w32.
9691
9692 2002-10-01  Martin Baulig  <martin@gnome.org>
9693
9694         * debug-mono-symfile.c: Added support for properties.
9695
9696 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9697
9698         * reflection.c: unaligned store fix from Mark Crichton
9699         <crichton@gimp.org>.
9700
9701 2002-09-27  Martin Baulig  <martin@gnome.org>
9702
9703         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9704         New interncall.
9705
9706 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9707
9708         * assembly.h, assembly.c: use a sane API to hook into the assembly
9709         loading process instead of a useless special-purpouse hack
9710         (ngen needs a hook, too, for example).
9711
9712 2002-09-27  Dick Porter  <dick@ximian.com>
9713
9714         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9715         io-layer can set up some process handle info.  Not needed on w32,
9716         but doesn't hurt either.
9717
9718         * process.c: Pass the program name in the second parameter to
9719         CreateProcess, so the path is searched.  Include the working
9720         directory. Implemented process name, process enumeration, and some
9721         process detail internal calls.
9722         
9723         * icall.c: Added internal calls for process lookup, and some
9724         process details
9725
9726 2002-09-26  Martin Baulig  <martin@gnome.org>
9727
9728         * assembly.c (mono_install_open_assembly_hook): New global
9729         function to install a function to be invoked each time a new
9730         assembly is loaded.
9731         (mono_assembly_open): Run this callback function if set.
9732
9733         * debug-mono-symfile.c: Put back line numbers for the dynamic
9734         symbol file and also record the .il file as source file.  This
9735         allows us to install the temporary symbol file as `file.dbg' just
9736         like a compiler-generated one.
9737
9738 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9739
9740         * Corrected typo in gc.c (BOHEM vs BOEHM).
9741
9742 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9743
9744         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9745         GetProperties. Also avoid calling g_slist_length in GetProperties and
9746         GetMethods.
9747
9748 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9749
9750         * reflection.c: avoid unaligned stores (bug spotted by
9751         Mark Crichton  <crichton@gimp.org>).
9752
9753 2002-09-25  Martin Baulig  <martin@gnome.org>
9754
9755         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9756         instead of guint64 for addresses and added prologue/epilogue info.
9757
9758 2002-09-25  Martin Baulig  <martin@gnome.org>
9759
9760         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9761         store line number info.  For the dynamic symbol file, we only need
9762         to provide the JIT generated dynamic line number info for the dynamic
9763         symbol file.
9764
9765 2002-09-25  Martin Baulig  <martin@gnome.org>
9766
9767         * debug-mono-symfile.h: Incremented version number.
9768
9769 2002-09-24  Martin Baulig  <martin@gnome.org>
9770
9771         * class.c (mono_debugger_class_init_func): New global function
9772         pointer variable.
9773         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9774         call it.
9775
9776         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9777         function.  This is called via the mono_debugger_class_init_func
9778         hook to add all types to the dynamic type table.
9779         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9780         from its metadata token.
9781
9782         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9783         New interncall for the debugger.
9784
9785 2002-09-24  Nick Drochak <ndrochak@gol.com>
9786
9787         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9788         before using it in case it is null.
9789         
9790 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9791
9792         * metadata.c: allow custom modifiers in local var signatures
9793         (bug spotted by Zoltan Varga).
9794
9795 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9796
9797         * class.c: deal with the <Module> class that may have a NULL vtable.
9798         Eliminate warnings.
9799
9800 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9801
9802         * image.c, image.h: more strong name helpers.
9803         * monosn.c: more work: convert pem keys to cryptoapi format.
9804
9805 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9806
9807         * string-icalls.c: speedup IndexOf.
9808
9809 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9810
9811         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9812
9813 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9814
9815         * icall.c: cleanup: use mono_object_domain ().
9816
9817 2002-09-23  Martin Baulig  <martin@gnome.org>
9818
9819         * debug-mono-symfile.c: Improved type support.
9820
9821 2002-09-22  Martin Baulig  <martin@gnome.org>
9822
9823         * debug-mono-symfile.c: Added support for reference types and strings.
9824
9825 2002-09-22  Martin Baulig  <martin@gnome.org>
9826
9827         * debug-mono-symfile.c: Started to work on the type table.
9828
9829 2002-09-21  Martin Baulig  <martin@gnome.org>
9830
9831         * debug-mono-symfile.c: Largely reworked the symbol table format.
9832         The symbol table is now incrementally updated each time a new
9833         method is added.  We're now also using our own magic and version
9834         so that you don't need to recompile all your classes if the
9835         dynamic table changes.
9836         (mono_debug_update_mono_symbol_file): Removed.
9837         (mono_debug_symfile_add_method): New function to add a method.
9838
9839 2002-09-21  Martin Baulig  <martin@gnome.org>
9840
9841         * icall.c
9842         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9843         New interncall.
9844
9845         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9846         New interncall to get a method from its metadata token.
9847
9848 2002-09-21  Martin Baulig  <martin@gnome.org>
9849
9850         * debug-mono-symfile.c: Create type table.
9851
9852 2002-09-20  Martin Baulig  <martin@gnome.org>
9853
9854         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9855
9856 2002-09-20  Martin Baulig  <martin@gnome.org>
9857
9858         * debug-mono-symfile.c: Provide information about params and locals.
9859
9860 2002-09-20  Martin Baulig  <martin@gnome.org>
9861
9862         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9863         New interncall.
9864
9865         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9866         interncall to get a method from its metadata token.
9867
9868 2002-09-20  Martin Baulig  <martin@gnome.org>
9869
9870         * debug-mono-symfile.c: Added a few checks for method->header
9871         being non-NULL.  This should never happen, but for the moment
9872         let's use a g_warning() rather than a g_assert().
9873
9874 2002-09-19  Mark Crichton  <crichton@gimp.org>
9875
9876         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9877         even if support for it isn't present.  Added an #ifdef to fix this.
9878
9879         * socket-io.c: Added checks back for Solaris support.
9880
9881 2002-09-19  Martin Baulig  <martin@gnome.org>
9882
9883         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9884         changes in the symbol file format.
9885
9886 2002-09-18  Martin Baulig  <martin@gnome.org>
9887
9888         * debug-mono-symfile.c: Set version number to 21.
9889
9890 2002-09-18  Dick Porter  <dick@ximian.com>
9891
9892         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9893         on netbsd.  Fixes bug 30051.
9894
9895 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9896
9897         * reflection.c:
9898         (set_version_from_string): little fix.
9899
9900 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9901
9902         * monosn.c, Makefile.am: added strong name utility.
9903         * reflection.h, reflection.c: implemented delayed signing,
9904         locale, version and hash id assembly attributes.
9905
9906 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9907
9908         * loader.c, metadata.c: load param attributes in signatures.
9909
9910 2002-09-16  Martin Baulig  <martin@gnome.org>
9911
9912         * debug-mono-symfile.c: Added string table with all method names.
9913
9914 2002-09-14  Martin Baulig  <martin@gnome.org>
9915
9916         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9917         fast method lookup.
9918
9919 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9920
9921         * reflection.c: record the public key token of referenced assemblies.
9922
9923 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9924
9925         * image.c, image.h: added functions to get the strong name and the
9926         public key of an assembly.
9927         * pedump.c: use them.
9928
9929 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9930
9931         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9932
9933 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9934
9935         * marshal.c (mono_marshal_get_managed_wrapper): Added
9936         MONO_TYPE_BOOLEAN 
9937
9938 2002-09-11  Martin Baulig  <martin@gnome.org>
9939
9940         * gc.c: Call GC_unregister_disappearing_link() on all links when
9941         finalizing them, this is necessary to aviod a crash in boehm's
9942         finalize handler.
9943
9944 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9945
9946         * gc.c: handle GetTarget for finalized objects spotted and fixed by
9947         nick@chemlab.org.
9948
9949 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9950
9951         * icall.c: implemented MonoType::Module.
9952         * reflection.c, reflection.h: mono_module_get_object () from
9953         Tomi Pakarinen <tomi.pakarinen@welho.com>.
9954
9955 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9956
9957         * icall.c: ignore overridden methods in GetMethods ().
9958         Fix for FieldInfo::SetValue().
9959         * object.c: handle float/double in runtime invoke.
9960
9961 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9962
9963         * object.c: allow a constructor to be called again on an object.
9964
9965 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9966
9967         * class.h, class.c: move field layout code to it's own function and
9968         export it. Get an interface id earlier. Move fields in MonoClass
9969         so they are more cache friendly and align the bitfields.
9970         * loader.c: temporary handle get_param_names() for a runtime method.
9971         * reflection.c, reflection.h: more code to handle runtime creation of
9972         types.
9973
9974 2002-09-09  Martin Baulig  <martin@gnome.org>
9975
9976         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
9977         signature with the pinvoke field being set for the actual call.
9978
9979 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9980
9981         * icall.c: removed some unused icalls. Start of map of glib charsets
9982         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
9983
9984 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9985
9986         * debug-helpers.c: break infinite loop (found and fixed by
9987         Holger Arnold <harnold@gmx.de>).
9988
9989 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9990
9991         * icall.c: target may be null in create_delegate.
9992
9993 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9994
9995         * marshal.c: handle a boolean return type.
9996
9997 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9998
9999         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
10000
10001 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10002
10003         * gc.c: fix weakreferences.
10004
10005 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10006
10007         * icall.c: added icall to get default codepage.
10008
10009 2002-09-03  Dick Porter  <dick@ximian.com>
10010
10011         * threads.h: 
10012         * threads.c: Use MonoThread instead of MonoObject where
10013         apropriate.
10014
10015         Store running thread objects in a hash table, so that we have all
10016         the info to hand when waiting for them to finish
10017         (means we don't need OpenThread() any more, so mingw builds should
10018         be fully functional again.)
10019
10020         * verify.c:
10021         * object.h: Added thread ID to MonoThread
10022
10023 2002-09-03  Martin Baulig  <martin@gnome.org>
10024
10025         * icall.c (System.Reflection.Assembly::get_location): New interncall.
10026
10027 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10028
10029         * icall.c: fixed leak in get_temp_path. Thanks lupus.
10030
10031 2002-09-03  Martin Baulig  <martin@gnome.org>
10032
10033         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
10034         argument to store the end address of the disassembled instruction.
10035
10036         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
10037         here from debug-symfile.h.
10038         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
10039         JIT into this struct.
10040         (MonoSymbolFile): Added `char *image_file' field.
10041         (MonoDebugGetMethodFunc): Removed.
10042         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
10043         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
10044         (mono_debug_find_method): New method.
10045
10046         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
10047         create a full symbol file.
10048         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
10049         and static symbol files.
10050         (mono_debug_find_method): The symbol file keeps an internal method hash,
10051         call this to get a MonoDebugMethodInfo from a MonoMethod.
10052
10053         * debug-symfile.[ch]: Removed.
10054
10055 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
10056
10057         * image.c (do_mono_image_open): Remove linker version check.
10058
10059 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
10060
10061         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
10062         wrappers for instance methods.
10063         
10064 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10065
10066         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
10067
10068 2002-08-28  Dick Porter  <dick@ximian.com>
10069
10070         * Makefile.am: Export HOST_CC for w32 builds
10071
10072 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10073
10074         * file-io.c process.c: MonoString are null terminated, no
10075         need for mono_string_to_utf16() anymore.
10076
10077 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10078
10079         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
10080
10081 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
10082
10083         * icall.c, reflection.h: speedup System.MonoType.
10084
10085 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10086
10087         * reflection.c: allow null as the value of a string argument in
10088         custom attributes constructors.
10089
10090 2002-08-27  Martin Baulig  <martin@gnome.org>
10091
10092         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
10093         `trampoline_address' field.
10094
10095 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
10096
10097         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
10098         check (fixes bug #29486) 
10099
10100 2002-08-27  Martin Baulig  <martin@gnome.org>
10101
10102         * debug-mono-symfile.c: Changed the file format in a way that allows us
10103         open it read-only and to use a specially malloced area for all the
10104         dynamic data.  We can now also generate a symbol file on-the-fly if we're
10105         debugging IL code and there is no MCS generated symbol file for it.
10106
10107 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10108
10109         * object.c: added a define for a good string and array
10110         creation speedup (not enabled by default because we need to deal with
10111         the synch stuff).
10112
10113 2002-08-26  Martin Baulig  <martin@gnome.org>
10114
10115         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
10116         function to create a dynamic symbol file.  This is used by the
10117         debugger to create a symbol file for IL code on-the-fly.
10118
10119 2002-08-26  Martin Baulig  <martin@gnome.org>
10120
10121         * loader.c (mono_lookup_pinvoke_call): Include the error message
10122         from g_module_error() in the error message.
10123
10124 2002-08-24  Martin Baulig  <martin@gnome.org>
10125
10126         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
10127         function to update the symbol file.  The symbol file is mmap()ed
10128         writable, but private.  This allows us to install the symbol file
10129         together with the assembly.
10130
10131 2002-08-24  Martin Baulig  <martin@gnome.org>
10132
10133         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
10134         but they can read the new symbol file format which mcs is now creating.
10135
10136         * debug-symfile.c (mono_debug_find_source_location): Moved to
10137         debug-mono-symfile.c; this is now operating on the new symbol file.
10138
10139 2002-08-23  Martin Baulig  <martin@gnome.org>
10140
10141         * debug-helpers.c (mono_method_desc_from_method): New function to get
10142         a MonoMethodDesc from a MonoMethod.
10143
10144 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10145
10146         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10147         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10148
10149 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10150
10151         * string-icalls.[ch]: make helper methods static.
10152
10153 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10154
10155         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10156         types to it and to SetValueInternal.
10157
10158         * object.c: Moved handle_enum label to its proper place. This was the
10159         f... bug! ;-)
10160
10161         This time i compiled mcs and gtk-sharp and they both work.
10162
10163 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10164
10165         * icall.c: reverted partially my previous patch until 
10166         object.c:set_value handles enums correcly.
10167
10168 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10169
10170         * icall.c:
10171         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10172         (ves_icall_System_Environment_get_MachineName): removed warning when
10173         compiling under cygwin.
10174
10175 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10176
10177         * object.c: fixed field_get_value() for reference types.
10178
10179 2002-08-22  Dick Porter  <dick@ximian.com>
10180
10181         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10182         Don't free a buffer while it's still needed.  Patch from Jonathan
10183         Liger <Jonathan.liger@wanadoo.fr>
10184
10185 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10186
10187         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10188         internal call.
10189
10190 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10191
10192         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10193         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10194
10195         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10196         we call unmanaged code which throws exceptions.
10197
10198 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10199
10200         * appdomain.h: added per-domain entry_assembly.
10201         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10202         arguments.
10203         * icall.c: Assembly::GetEntryAssembly icall.
10204         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10205         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10206
10207 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10208
10209         * appdomain.h, gc.c: added mono_domain_finalize ().
10210
10211 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10212
10213         * object.c:
10214         (mono_print_unhandled_exception): changed g_warning by g_printerr
10215         because g_log has a 1024 characters limit (yeah, i got a big stack
10216         trace). Don't print exception name, that should be in ToString 
10217         returned string.
10218
10219 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10220
10221         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10222         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10223
10224 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10225
10226         * object.c:
10227         (mono_print_unhandled_exception): after previous commit, i realized
10228         that MS calls ToString on the exception. I changed this function to
10229         do that. This way we get stack_trace for free.
10230
10231 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10232
10233         * object.c:
10234         (mono_print_unhandled_exception): invoke Message property instead of
10235         getting 'message' field from Exception. Don't allocate memory for
10236         'trace' and 'message' if not needed.
10237
10238 2002-08-18  Dick Porter  <dick@ximian.com>
10239
10240         * unicode.c: Fix asserts to match Encoder.cs checks
10241
10242 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10243
10244         * marshal.c: fix unaligned store issue and a few wrong
10245         opcode argument types.
10246
10247 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10248
10249         * icall.c: added GetUninitializedObjectInternal internal call.
10250
10251 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10252
10253         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10254         to the right domain.
10255
10256 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10257
10258         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10259
10260         * class.c (class_compute_field_layout): set blittable to false for Strings
10261
10262         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10263
10264 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10265
10266         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10267         first chunk of code to create types at runtime. Code to
10268         handle ReflectedType/DeclaringType. Make reflection handles
10269         domain specific.
10270
10271 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10272
10273         * class.c: set correct name in arrays.
10274
10275 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10276
10277         * appdomain.c (mono_domain_transfer_object): make it work with
10278         valuetypes. bug fixes.
10279
10280 2002-08-12  Dick Porter  <dick@ximian.com>
10281
10282         * object.h: Rename some parameters to avoid c++ keywords (Patch
10283         from Joseph Wenninger <kde@jowenn.at>)
10284
10285 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10286
10287         * icall.c: added icall to implement Assembly.GetFile*.
10288
10289 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10290
10291         * reflection.h, reflection.c: code to embed managed resources.
10292
10293 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10294
10295         * class.c: move all the type size stuff into
10296         class_compute_field_layout().
10297
10298 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10299
10300         * class.c: ensure enums have always the correct instance size.
10301         * unicode.c: remove wrong assert.
10302
10303 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10304
10305         * assembly.c: fix mem corruption issue.
10306         * image.h, image.c: added mono_image_get_resource () to access
10307         managed resources.
10308         * icall.c: implemented Assembly.EntryPoint property and some
10309         Managed Resources related internalcalls.
10310
10311
10312 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10313
10314         * image.c, image.h: impemented mono_image_get_entry_point ().
10315         * appdomain.c: use mono_image_get_entry_point.
10316
10317 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10318
10319         * reflection.c: support the object type argument when loading
10320         custom attributes.
10321
10322 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10323
10324         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10325         String as return type.
10326
10327 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10328
10329         * reflection.c: fix encoding of named args for custom attrs to match
10330         the ms implementation. Read them back when instantiating custom
10331         attributes.
10332
10333 2002-08-02  Radek Doulik  <rodo@ximian.com>
10334
10335         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10336         by Dietmar as quick fix
10337         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10338         16 as stack size, used on more places as quick fix before Dietmar
10339         will fix it properly
10340
10341 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10342
10343         * object.h, object.c: added accessors for fields and properties.
10344
10345 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10346
10347         * class.c, class.h: made mono_class_get_field_from_name ()
10348         loop on parent types.
10349         Added mono_class_get_property_from_name ().
10350
10351 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10352
10353         * class.c, class.h: move the code to setup the type vtable in its own
10354         function so that it can be reused also for types created at runtime.
10355         Eliminate the "class" identifier from the header file.
10356         * reflection.c: setup the vtable for enums so that we can create
10357         objects for use in SetConstant ().
10358
10359 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10360
10361         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10362         instead of the delegate itself as this pointer (bug #28383)
10363
10364 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10365
10366         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10367         conversions.
10368
10369 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10370
10371         * loader.c: don't set the pinvoke bit on icalls.
10372
10373 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10374
10375         * debug-helpers.c (mono_method_full_name): only print a number to
10376         indicate wrapper type (so that the output is more readable in traces).
10377
10378 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10379
10380         * class.c (mono_class_init): include method override patch from Paolo
10381
10382 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10383
10384         * icall.c: fixed GetTypeCode().
10385
10386 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10387
10388         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10389         use real delegate invoke function to make it work with multicast
10390         delegates (fix bug# 28291).
10391
10392 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10393
10394         * object.c: load constant strings.
10395
10396 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10397
10398         * reflection.c: no magic numbers.
10399         * tabledefs.h: security action enum.
10400
10401 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10402
10403         * assembly.c: fix possible memory corruption.
10404
10405 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10406
10407         * reflection.h, reflection.c: added support for linking resources.
10408         * verify.c: check we have an updated corlib.
10409
10410 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10411
10412         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10413         string arrays.
10414         (mono_marshal_string_array): null terminate unmanaged string arrays.
10415         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10416
10417 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10418
10419         * icall.c: Type.GetType () can now return also types from the
10420         calling assembly.
10421
10422 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10423
10424         * loader.h, loader.c: stack walking support.
10425         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10426         GetCallingAssembly.
10427
10428 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10429
10430         * marshal.c: added optimisations for blittable types 
10431
10432         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10433         (mono_class_setup_mono_type): set blittable attribute for single
10434         and double.
10435
10436         * marshal.c (mono_string_utf8_to_builder): impl.
10437         (mono_string_builder_to_utf8): impl.
10438         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10439
10440 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10441
10442         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10443         (mono_marshal_get_managed_wrapper): impl. byref types
10444
10445 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10446
10447         * icall.c:
10448         (search_method): don't display debug message. 
10449
10450 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10451
10452         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10453
10454 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10455
10456         * appdomain.c: set the missing filename when throwing exception.
10457
10458 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10459
10460         * metadata.c (mono_type_size): code cleanup
10461         (mono_type_stack_size): removed some test code
10462
10463 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10464
10465         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10466         mono_get_exception_file_not_found now.
10467
10468         * exception.c (mono_exception_from_name_two_strings): New version
10469         that will call a constructor with two string arguments. 
10470         (mono_get_exception_file_not_found): New helper routine, used to
10471         report file-not-found errors.
10472
10473 2002-07-20  Dick Porter  <dick@ximian.com>
10474
10475         * process.h:
10476         * process.c: Pass file handles to CreateProcess
10477         
10478         * icall.c:
10479         * file-io.h:
10480         * file-io.c: Implemented CreatePipe
10481
10482 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10483
10484         * metadata.c (mono_get_param_info): set alignment for value types
10485
10486 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10487
10488         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10489         Constify mono_domain_assembly_open().
10490         * loader.c: handle null namespace in icalls.
10491
10492 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10493
10494         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10495         (emit_str_to_ptr_conv): marshal object as structs
10496
10497         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10498
10499         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10500
10501 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10502
10503         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10504         (mono_marshal_get_native_wrapper): we an now return value types
10505
10506 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10507
10508         * verify.c: more checks implemented.
10509
10510 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10511
10512         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10513         (fix bug #27695)
10514         (mono_marshal_get_native_wrapper): allow byref arguments
10515         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10516         impl. PtrToStringXXX methods
10517         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10518         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10519         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10520         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10521         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10522
10523 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10524
10525         * reflection.c: fix buglet in parsing an assembly name.
10526
10527 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10528
10529         * marshal.c (emit_ptr_to_str_conv): first impl.
10530
10531 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10532
10533         * object.c, class.h: cache the vtable in the class as suggested by
10534         vargaz@freemail.hu (Zoltan Varga).
10535
10536 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10537
10538         * class.h, loader.c: added mono_field_from_token().
10539         * verify.c: first cut of type checking code.
10540
10541 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10542
10543         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10544
10545 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10546
10547         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10548         (fix bug #27782)
10549         (mono_marshal_get_remoting_invoke): impl.
10550         (mono_delegate_begin_invoke): impl.
10551         (mono_mb_emit_save_args): impl.
10552         (mono_delegate_end_invoke): impl.
10553         (mono_marshal_get_delegate_begin_invoke):
10554         (mono_marshal_get_delegate_end_invoke):
10555         (mono_marshal_get_delegate_invoke): generate a special name for
10556         those methods (including the signature) and associate them whith
10557         the delegate class. 
10558
10559 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10560
10561         * reflection.[ch]: 
10562         (mono_reflection_type_from_name): now it has a MonoImage parameter
10563         which is used as the default image to search the type in. If the image
10564         is NULL or getting the type from it fails, it defaults to corlib.
10565
10566         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10567         new parameter.
10568
10569 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10570
10571         * reflection.c: update the parameter table index.
10572
10573 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10574
10575         * domain.c: don't include the mark byte in the string hash.
10576
10577 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10578
10579         * icall.cs: icall for Type.GetTypeCode ().
10580         * verify: a couple of fixes and disabled local initialization checks.
10581
10582 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10583
10584         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10585
10586         * debug-helpers.c (mono_method_full_name): print the type of the
10587         runtime wrapper
10588
10589         * metadata.c (mono_signature_hash): a hash function for signatures
10590         (mono_signature_hash): better hash algorithm
10591
10592         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10593
10594         * debug-helpers.c (mono_method_full_name): this can now generate
10595         method names with signatures
10596
10597         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10598         method dont have this pointers.
10599
10600 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10601
10602         * reflection.c: fixup typebuilder tokens.
10603         * image.c: fix buglet.
10604         * marshal.h: remove whitespace.
10605         * metadata.h, metadata.c: reinstate code that was removed.
10606         * verify.c: handle catch directives and fix another couple of bugs.
10607
10608 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10609
10610         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10611         (mono_marshal_get_native_wrapper): make it comp. with the old code
10612         (mono_marshal_get_native_wrapper): support boolean
10613         (mono_marshal_get_managed_wrapper): support more types
10614
10615 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10616
10617         * class.c (class_compute_field_layout): compute class->blittable attribute.
10618
10619 2002-07-09  Dick Porter  <dick@ximian.com>
10620
10621         * threads.c: Make the thread cleaning up cope with threads that
10622         call ExitThread()
10623
10624 2002-07-08  Radek Doulik  <rodo@ximian.com>
10625
10626         * reflection.c (method_encode_code): use non-translated values to
10627         compute finally_start, this fixes exception handling on ppc, yay!
10628
10629         * decimal.h (struct signscale): fix endianess
10630
10631 2002-07-07  Radek Doulik  <rodo@ximian.com>
10632
10633         * reflection.c: swap box_val and not val
10634
10635 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10636
10637         * reflection.c, reflection.h: handle full assembly info in type name.
10638         Handle Type arguments when loading custom attributes.
10639         * icall.c: updated to use new mono_reflection_type_from_name () method.
10640
10641 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10642
10643         * loader.c:
10644         (method_from_memberref): also print assembly name when method not found.
10645
10646 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10647
10648         * icall.c:
10649         (ves_icall_TypeGetProperties): fixed bug #27473. 
10650
10651 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10652
10653         * reflection.c: display image name and token when cannot find the
10654         .ctor for an attribute.
10655
10656 2002-07-05  Martin Baulig  <martin@gnome.org>
10657
10658         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10659
10660 2002-07-04  Dick Porter  <dick@ximian.com>
10661
10662         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10663         compile on mingw.  This will cause mingw builds to not wait for
10664         subthreads to terminate after the main thread does.  I've lodged a
10665         bug with the mingw developers for them to wrap OpenThread().
10666
10667 2002-07-03  Dick Porter  <dick@ximian.com>
10668
10669         * threads.c: Store thread IDs instead of handles, because
10670         GetCurrentThread() returns a pseudohandle and therefore stores
10671         useless values.  mono_thread_cleanup() continues checking the
10672         array of threads until it is empty, to cope with subthreads
10673         spawning new threads after the main thread has finished.
10674
10675         * profiler.h:
10676         * profiler.c:
10677         * profiler-private.h: Pass the thread ID to thread profiler
10678         functions, instead of a handle
10679
10680 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10681
10682         * verify.c: fixes to make it more usable.
10683         * pedump.c: added --verify code to verify IL code in an assembly.
10684
10685 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10686
10687         * reflection.c: turn errors into warnings to allow compiling corlib.
10688
10689 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10690
10691         * reflection.c: add special cases to compile corlib.
10692
10693 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10694
10695         * reflection.c: handle properties with only a set method.
10696
10697 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10698
10699         * opcodes.h: add enum with opcodes in opval order.
10700
10701 2002-07-01  Dick Porter  <dick@ximian.com>
10702         
10703         * object.h:
10704         * object.c (mono_runtime_run_main): Removed unneeded argument
10705
10706 2002-06-28  Martin Baulig  <martin@gnome.org>
10707
10708         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10709
10710 2002-06-27  Dick Porter  <dick@ximian.com>
10711
10712         * threads.c: Store the handle in both the parent thread and in the
10713         subthread, to minimise the time between starting a new thread and
10714         storing its ID.
10715
10716 2002-06-26  Dick Porter  <dick@ximian.com>
10717
10718         * appdomain.c (mono_runtime_cleanup): Close the socket library
10719         after all the threads have finished, not before
10720
10721 2002-06-26  Martin Baulig  <martin@gnome.org>
10722
10723         * debug-symfile.c (mono_debug_find_source_location): Added
10724         `guint32 *line_number' argument.  If it's not NULL, store the line number
10725         there and return the file name without the line number.
10726
10727 2002-06-25  Dick Porter  <dick@ximian.com>
10728
10729         * icall.c:
10730         * process.h:
10731         * process.c: Process forking and other support functions
10732
10733 2002-06-25  Dick Porter  <dick@ximian.com>
10734
10735         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10736         things dont happen when the image is closed.
10737         (mono_image_lookup_resource): Walk the resource section looking
10738         for a particular entry
10739
10740         * cil-coff.h: PE resource section decoding
10741
10742 2002-06-25  Dick Porter  <dick@ximian.com>
10743         
10744         * assembly.h:
10745         * assembly.c: 
10746         (mono_assembly_foreach): Accessor functions to walk the list of
10747         loaded assemblies
10748         (mono_assembly_set_main):
10749         (mono_assembly_get_main): Process methods need to know which
10750         assembly is the "main" one
10751
10752         * object.c (mono_runtime_run_main): Record the main assembly
10753
10754         * debug-helpers.c: Fix typo
10755
10756 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10757
10758         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10759         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10760
10761 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10762
10763         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10764
10765 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10766
10767         * image.c (do_mono_image_open): Initialize reference count,
10768         otherwise we leak the MonoImage.
10769
10770 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10771
10772         * reflection.c: small tweak to handle self-hosting.
10773
10774 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10775
10776         * reflection.c: fix type name parse code.
10777
10778 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10779
10780         * reflection.c: break out of the loop.
10781         * image.c: special case corlib.
10782
10783 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10784
10785         * reflection.c: add all the custom attrs at the end to ensure the
10786         ctors have been properly initialized when the attributes are defined
10787         in the current assembly.
10788
10789 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10790
10791         * reflection.c: handle correctly multiple-nested types.
10792
10793 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10794
10795         * row-indexes.h: fix typos.
10796         * reflection.c: adjust for typos and fix method_def_or_ref
10797         encoding in MethodImpl table.
10798
10799 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10800
10801         * reflection.c: fix entry point patching (thanks Serge!).
10802
10803 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10804
10805         * verify.c: add check for System.Exception
10806
10807 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10808
10809         * image.c, class.c: minifix for code just c&p'ed.
10810         * reflection.c: warning fix.
10811         * object.h, loader.h, domain.c: load also StringBuilder.
10812
10813 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10814
10815         * marshal.h, marshal.c: some support code to handle complex marshaling.
10816
10817 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10818
10819         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10820         Better signatures with vtable error dump.
10821
10822 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10823
10824         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10825
10826 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10827
10828         * icall.c (ves_icall_Type_GetField): impl.
10829
10830 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10831
10832         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10833         to retrieve a marshal description blob for a field or param.
10834
10835 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10836
10837         * reflection.h, reflection.c: change order of nested type emission
10838         to avoid table corruption. The NestedTypes table is sorted.
10839         * icall.c: change order of GetConstructor results to workaround mcs bug.
10840
10841 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10842
10843         * reflection.h, reflection.c: handle field and param marshal
10844         information.
10845
10846 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10847
10848         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10849
10850 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10851
10852         * reflection.c: fix call convention.
10853
10854 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10855
10856         * reflection.h, reflection.c: mono_image_get_memberref_token()
10857         takes a type instead of a class, now. Added
10858         mono_image_get_array_token() to create tokens for the special
10859         multi-dim array methods.
10860
10861 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10862
10863         * assembly.c: handle modules (no assembly table). Split
10864         loading references in its own function.
10865         * class.c: handle moduleref resolution scope.
10866         * image.c, image.h: cache module name in image.
10867
10868 2002-06-07  Martin Baulig  <martin@gnome.org>
10869
10870         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10871         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10872
10873 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10874
10875         * icall.c: more signature fixes that used uint instead of int.
10876
10877 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10878
10879         * reflection.c: fixed signature of field refs.
10880
10881 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10882
10883         * class.c, reflection.c: handle typerefs of nested types
10884         (both on read and when writing files).
10885
10886 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10887
10888         * icall.c: fix method signatures that tried to workaround the previous
10889         typo, d'oh!
10890
10891 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10892
10893         * debug-helpers.c: fix typo.
10894
10895 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10896
10897         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10898         rewrote the PE/COFF writing code (our programs are understood by the
10899         ms runtime, now).
10900
10901 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10902
10903         * gc.c, gc.h, icall.c: weakreference support.
10904
10905 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10906
10907         * Makefile.am, mono-config.c: use $(sysconfdir).
10908
10909 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10910
10911         * icall.c: changed default precision of Double.ToString() to 15.
10912         Fixed memory leak. Unified with Single.ToString.
10913
10914 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10915
10916         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10917
10918 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10919
10920         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10921         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10922         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10923         and myself.
10924
10925 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10926
10927         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10928
10929 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10930
10931         * reflection.c, socket-io.c: more compilation fixes.
10932
10933 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10934
10935         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10936         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10937         unicode.c: warning and compiler compatibility fixes.
10938
10939 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10940
10941         * class.h, metadata.c: fixed warnings/compilation errors.
10942
10943 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10944
10945         * Makefile.am, mono-config.c, mono-config.h: configuration file
10946         support routines.
10947         * loader.c, loader.h: make Dll mapping configurable at runtime in the
10948         config file. Export methods to insert and lookup mappings.
10949
10950 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10951
10952         * reflection.c: handle types and boxed objects in custom attr
10953         constructors.
10954
10955 2002-05-30  Martin Baulig  <martin@gnome.org>
10956
10957         * debug-symfile.c
10958         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
10959
10960 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
10961
10962         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
10963         to lookup the implmap row for a P/Invoke method.
10964         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
10965         P/Invoke method from the runtime on an as needed basis.
10966
10967 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
10968
10969         * metadata.c (mono_metadata_parse_signature): impl.
10970
10971 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10972
10973         * class.c: handle .pack directive.
10974
10975 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10976
10977         * object.c: initialize static fields with RVA data.
10978
10979 2002-05-25  Martin Baulig  <martin@gnome.org>
10980
10981         * debug-symfile.c
10982         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
10983
10984 2002-05-24  Martin Baulig  <martin@gnome.org>
10985
10986         * debug-symfile.c
10987         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
10988         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
10989         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
10990
10991 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10992
10993         * object.c: special case string ctros in invoke.
10994         * gc.c: silly whitespace changes.
10995
10996 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
10997
10998         * threadpool.[ch]: impl. a threadpool that can
10999         be used by mint and mono.
11000
11001 2002-05-22  Martin Baulig  <martin@gnome.org>
11002
11003         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
11004         The first argument is now a `MonoReflectionModuleBuilder *', the return
11005         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
11006         `methods' field to get the method builder.  The `token' argument is the
11007         unfixed token.
11008
11009         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
11010         invalid characters instead of g_assert_not_reached()ing.  This seems
11011         to be the behaviour of mscorlib.
11012
11013 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
11014
11015         * object.c (mono_runtime_invoke_array): applied patch from Rachel
11016         Hestilow to fix bug #25104
11017
11018 2002-05-21  Martin Baulig  <martin@gnome.org>
11019
11020         * debug-symfile.c (mono_debug_find_source_location): New function.
11021         Looks up an IL offset in the line number table and returns the source
11022         location as a string.
11023
11024 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11025
11026         * icall.c:
11027         (mono_double_ToStringImpl): changed %f by %g until we have something
11028         better.
11029
11030 2002-05-21  Nick Drochak  <ndrochak@gol.com>
11031
11032         * icall.c : Use different name for Math.Pow's icall.  Needed to check
11033         parameters first in C#.
11034
11035 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11036
11037         * icall.c, reflection.h: added icall to get info about an event.
11038
11039 2002-05-20  Radek Doulik  <rodo@ximian.com>
11040
11041         * object.c (mono_value_box): don't use memcpy for boxing on BIG
11042         endian
11043         (mono_value_box): don't use memcpy for small sizes on
11044         architectures with unaligned access
11045
11046 2002-05-20  Martin Baulig  <martin@gnome.org>
11047
11048         * reflection.c (mono_reflection_setup_internal_class): Don't crash
11049         if `tb->parent == NULL'.
11050         (mono_reflection_create_internal_class): New function.  This is
11051         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
11052         for enum types.
11053
11054         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
11055         New interncall.
11056
11057 2002-05-19  Martin Baulig  <martin@gnome.org>
11058
11059         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
11060         argument to get the length, don't default to the array length.
11061
11062 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
11063
11064         * assembly.c (mono_assembly_setrootdir): New function used to
11065         override the MONO_ASSEMBLIES directory.
11066
11067 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11068
11069         * icall.c: ValueType_GetHashCode() initialize local var.
11070
11071 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11072
11073         * reflection.c: sort custom attributes table.
11074
11075 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11076
11077         * reflection.c: support named args in custom attributes (write support).
11078
11079 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
11080
11081         * reflection.c: fix finally position calculation.
11082
11083 2002-05-15  Radek Doulik  <rodo@ximian.com>
11084
11085         * reflection.c: fixed endianess at many places
11086
11087         * icall.c (ves_icall_InitializeArray): comment out debug msg
11088
11089 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
11090
11091         * object.c (mono_unhandled_exception): new function to handle
11092         unhandled exceptions.
11093         (mono_unhandled_exception): call the UnhandledException event.
11094         (mono_runtime_delegate_invoke): impl.
11095
11096 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
11097
11098         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
11099         returns the RVA, not the direct pointer to the data. Handle the case
11100         when the class size is fixed.
11101
11102 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11103
11104         * reflection.c: fix some endianess issues.
11105
11106 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
11107
11108         * object.c (mono_runtime_invoke): is now able to catch exceptions.
11109
11110         * threads.c (mono_thread_init): added a callback which is invoked
11111         at thread start.
11112
11113 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11114         
11115         * icall.c: make GetHashCode return non-negative values.
11116
11117 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11118
11119         * object.c, icall.c, gc.c: revert to address-based hashcode.
11120
11121 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
11122
11123         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
11124
11125 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11126
11127         * icall.c, class.c: special case <Module>.
11128
11129 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
11130
11131         * icall.c: fix bug in GetNow().
11132
11133 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
11134
11135         * object.c (mono_runtime_class_init): make sure that we call all
11136         static class constructors.
11137
11138 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11139
11140         * reflection.c: sort methodsemantics table.
11141
11142 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11143
11144         * reflection.h, reflection.c: honour init locals setting.
11145
11146 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11147
11148         * icall.c: copied Double ToStringImpl for Single ToStringImpl
11149
11150 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11151
11152         * reflection.c: support ContructorBuilders in attribute blob creation.
11153
11154 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11155
11156         * reflection.c: some changes to build a binary that can be run
11157         directly in windows.
11158
11159 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11160
11161         * loader.c: print a big message when an icall can't be found.
11162
11163 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11164
11165         * string-icalls.c: fix bug 24248.
11166
11167 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11168
11169         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11170         icall.c, reflection.h: separate assembly loading by pathname and by
11171         assembly name. Use the MONO_PATH env var to search for assemblies.
11172
11173 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11174
11175         * assembly.c, image.h: add some support for assemblies
11176         with multiple modules.
11177         * class.c, class.h: export mono_class_from_typeref().
11178         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11179         instead.
11180
11181 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11182
11183         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11184         documentation says (the ECMA one is correct).
11185
11186 2002-05-02  Dick Porter  <dick@ximian.com>
11187
11188         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11189         Don't name the synchronisation mutex.
11190
11191 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11192
11193         * rand.c
11194         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11195         Make the prototypes match.
11196         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11197         Same.
11198
11199         * icall.c
11200         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11201         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11202         all systems have tm.tm_zone, so use strftime() with %Z to print
11203         the timezone abreviation into a temp string.
11204
11205         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11206         rather than mono_array_addr() on a MonoString on Big Endian
11207         machines.
11208
11209 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11210
11211         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11212         fix bug 24041
11213
11214 2002-04-30  Dick Porter  <dick@ximian.com>
11215
11216         * socket-io.c: Cope with SOCKET being an integer rather than a
11217         pointer now.
11218
11219         * threads.c: Added Thread_free_internal, to deal with thread
11220         handle cleanup.  Moved calls to handle_store() and handle_remove()
11221         to start_wrapper(), so each can only be called once.  Allocate
11222         synchronisation blocks with GC_malloc(), and use GC finalisation
11223         to close the handles.
11224
11225         * icall.c: added System.Threading.Thread::Thread_free_internal
11226
11227 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11228
11229         * icall.c: support Environment.Exit, CommandLineArgs().
11230
11231 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11232
11233         * object.c, object.h: added mono_runtime_run_main () and
11234         mono_runtime_get_main_args () for use in System.Environment.
11235
11236 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11237
11238         * gc.c: fix thinko, enable actual finalization since the jit is now
11239         fixed.
11240
11241 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11242
11243         * gc.c, object.c: take into account that an object may be offset wrt the address
11244         returned by GC_malloc().
11245
11246 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11247
11248         * image.c: handle files without entries in the assembly table (modules).
11249
11250 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11251
11252         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11253         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11254         allowed to be null when it's System.Object class setup.
11255
11256 2002-04-27  Martin Baulig  <martin@gnome.org>
11257
11258         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11259         if `tb->parent == NULL' rather than crashing.
11260
11261 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11262
11263         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11264         calling acos() where asin() should have been called.
11265
11266 2002-04-26  Martin Baulig  <martin@gnome.org>
11267
11268         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11269         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11270         there's a subdirectory called `System', but we don't want to read that
11271         subdirectory as an assembly.
11272
11273 2002-04-25  Martin Baulig  <martin@gnome.org>
11274
11275         * debug-symfile.c: Reflect latest MonoString changes.
11276
11277 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11278
11279         * rand.c, rand.h: instance method icalls need to have an explicit
11280         this pointer as first argument in the C implementation.
11281
11282 2002-04-25  Nick Drochak <ndrochak@gol.com>
11283
11284         * icall.c: Fix typo in map for GetNonZeroBytes
11285
11286 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11287
11288         * string-icalls.c : String does now passes unit tests without any 
11289         errors, the following changes has been made:
11290         
11291         Implemented replace methods.
11292         Renaming of methods to (try) follow the standard.
11293         Fixed compare ordinal
11294         Made all memory allocated directly to function instead of via icall function.
11295         Small performance fix in is_in_array function
11296                         
11297  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11298
11299         c (mono_string_Internal_ctor_charp_int_int):
11300         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11301         sindex < 0, throw ArgumentOutOfRangeException instead of
11302         ArgumentNullException.
11303
11304         Added new check for length == 0, however
11305         I need to make it return String.Empty from the C code.
11306         
11307         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11308         that calculate the length for us here.
11309         
11310         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11311         mono_string_new_utf16 with mono_string_new, since value is utf8.
11312
11313 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11314
11315         * object.c: register the object for finalization if needed.
11316         Allocate one more char in the string for the terminating 0 char.
11317
11318 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11319
11320         * class.c, class.h, image.c: check if a type implemenst a destructor.
11321         Use the proper key for array class lookups.
11322         * icall.c: register the icalls in the System.GC class.
11323         * gc.c, gc.h: GC-related functions and icalls.
11324
11325 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11326
11327         * icall.c:
11328         * socket-io.c:
11329         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11330         changed a couple of free () by g_free ().
11331
11332         * decimal.c: one-liner in the comments for decimal2string ().
11333
11334 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11335
11336         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11337
11338 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11339
11340         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11341         * object.c (mono_runtime_invoke_array) : handle null in params
11342
11343 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11344
11345         * string-icalls.c: fixed bug in split (one off bug)
11346
11347 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11348
11349         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11350         * icalls.c: added String::Equals as internal method
11351
11352 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11353
11354         * threads.c: fixed bug in the double interlocked functions
11355
11356 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11357
11358         * threads.c: implemented all of the new interlocked icalls.
11359         * string-icalls.c: fix a bug in insert.
11360         * icalls.c: added the icalls for interlocked, removed old string functions.
11361         
11362 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11363
11364         * loader.c: fix off-by-one error when reading argument names.
11365
11366 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11367
11368         * profiler.c: win32 counter implementation (untested).
11369         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11370         (the latter needs testing and more complete impl. from win32 folks).
11371
11372 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11373
11374         * object.c: mono_array_new_full workaround mono_array_class_get
11375         problem.
11376
11377 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11378
11379         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11380         * object.h (mono_string_chars): Changed casting type.
11381
11382 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11383
11384         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11385                            method signatures to use gunichar2 instead of gint16.
11386
11387 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11388
11389         * object.h, object.c: domain-specific versions of mono_object_new and
11390         mono_array_new.
11391
11392 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11393
11394         * object.c: changed String layout
11395
11396         * string-icalls.c (mono_string_Internal_ctor_chara): added
11397         internal string constructors.
11398
11399 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11400
11401         * threads.c: pass 'this' to the thread start routine.
11402
11403 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11404
11405         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11406         InternalCompareStr don't call twice mono_string_cmp_char for the last
11407         character. Improved performance in mono_string_cmp_char.
11408
11409 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11410
11411         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11412         code into its own library: libmonoruntime.
11413
11414 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11415
11416         * object.h, object.c: changed array format so that szarrays do not
11417         require a bounds structure.
11418         * icall.c, appdomain.c: support for new szarray format.
11419
11420 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11421
11422         * metadata.c: compare also the retuns type when comparing signatures:
11423         we didn't do this as an optimization since really overloaded methods
11424         must differ also in the arguments, but this doesn't work with
11425         low-level IL code (or when using explicit conversion operators: see
11426         bug#23498 for an example).
11427
11428 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11429
11430         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11431
11432 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11433
11434         * icall.c: make MonoType::GetElementType its own icall.
11435
11436 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11437
11438         * icall.c: remove MonoMethod_get_Name().
11439         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11440         object.
11441
11442 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11443
11444         * string-icalls.c: optimized a few methods.
11445
11446 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11447
11448         * icall.c: added all new string internal calls
11449         * string-icalls.c: added, new string internal call implementation.
11450         * object.c: added mono_string_new_size for allocating a string a size
11451
11452 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11453
11454         * object.c (mono_object_isinst): use the same code as in the
11455         optimized x86 version.
11456
11457 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11458
11459         * profiler.c: TSC-based timer code (faster and more accurate).
11460         Not hooked up in configure, yet (set USE_X86TSC to 1).
11461
11462 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11463
11464         * profiler.c, profiler.h: track time spent compiling methods.
11465         * threads.c: track thread creation/destruction.
11466
11467 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11468
11469         * profiler.c, profiler.h, profiler-private.h: profiling interface
11470         and sample implementation. Moved here so that it can be used also by
11471         the jit.
11472
11473 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11474
11475         * reflection.c, reflection.h: keep types and other handles separate in
11476         the hash tables for referred tokens. Add guid for modules.
11477
11478 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11479
11480         * assembly.c: fix bugs found with valgrind.
11481         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11482
11483 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11484
11485         * threads: added icall support for getting current domain for
11486                    the thread.
11487  
11488 2002-04-13  Martin Baulig  <martin@gnome.org>
11489
11490         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11491         (MonoDebugVarInfo): Added `index' field for register based addresses.
11492         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11493         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11494         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11495         `MonoDebugVarInfo *this_var'.
11496
11497         * debug-symfile.c (relocate_variable): New static function to write
11498         a location description for a local variable or method parameter.
11499
11500 2002-04-12  Martin Baulig  <martin@gnome.org>
11501
11502         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11503         stack offset and begin/end scope address of a local variable.
11504         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11505         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11506         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11507
11508         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11509         Added new relocation types for start/end scope of a local variable.
11510
11511 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11512
11513         * object.h: add mono_object_domain() macro.
11514         * reflection.c: handle typespecs.
11515         * icall.c: MonoMethod::get_Name() implementation.
11516
11517 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11518
11519         * icall.c: String::GetHashCode() icall implementation.
11520
11521 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11522
11523         * icall.c: String::IndexOfAny icall.
11524         * object.c, object.h: make array->max_length more useful.
11525         Intrduced mono_object_class() and mono_string_length() macros.
11526
11527 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11528
11529         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11530         instead of g_unichar_isdigit.
11531
11532 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11533
11534         * icall.c: Implement a simple Double.ToString().
11535
11536 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11537
11538         * appdomain.h: only io-layer.h is supposed to be included.
11539         * icall.c: explicitly import environ. Fix warning.
11540
11541 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11542
11543         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11544                 return true even if it's not Daylight Savings time.
11545                 Only return false for the case where the function isn't
11546                 implemented for a plaform (read Windows).
11547
11548 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11549
11550         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11551         data with a mutex.
11552
11553 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11554
11555         * mempool.c (mono_mempool_alloc): only use g_malloc when
11556         absolutely necessary.
11557
11558 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11559
11560         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11561
11562         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11563         (mono_class_proxy_vtable): use domain mempool
11564
11565 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11566
11567         * appdomain.h, appdomain.c: split initialization that requires the
11568         execution engine support into mono_runtime_init().
11569
11570 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11571
11572         * class.c (mono_class_init): don't include vtable inside MonoClass
11573         to save some memory, gather some statistics.
11574         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11575
11576 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11577
11578         * icall.c: internalcall implementation for ValueType.Equals().
11579
11580 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11581
11582         * object.c (mono_message_init): moved 
11583         (mono_runtime_exec_main): new arch. independent impl.
11584         (mono_runtime_invoke_array): new method - like
11585         mono_runtime_invoke, but you can pass an array of objects.
11586         (mono_remoting_invoke): new arch. independent impl.
11587         (mono_message_invoke): new arch. independent impl.
11588         (mono_runtime_class_init): new arch. independent impl.
11589         (mono_runtime_object_init): new arch. independent impl.
11590
11591 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11592
11593         * metadata.c, object.c, reflection.c: documented the exported
11594         functions.
11595
11596 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11597
11598         * icall.c: simpler code to pass the assembly builder data to corlib.
11599         Implement GetNestedTypes() internalcall.
11600
11601 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11602
11603         * class.c: warn if a type can't be loaded.
11604
11605 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11606
11607         * image.h: typedef MonoImageOpenStatus
11608         * types.h: removed unused file
11609         
11610 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11611
11612         * icall.c: Enum_ToObject accepts enum value arguments.
11613
11614 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11615
11616         * class.c: move initialization of properties, events and nested
11617         classes, so that they happen for interfaces, too.
11618
11619 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11620
11621         * icall.c: cleanup some ugly casts in Array_SetValue*.
11622
11623 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11624
11625         * icall.c: the values array fro enums is of the correct type, now.
11626         Implement (correctly) getFullName instead of assQualifiedName for
11627         MonoType.
11628         * reflection.h, reflection.c: added mono_type_get_name ().
11629
11630 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11631
11632         * assembly.c, image.h: for each MonoImage, record from wich assembly
11633         it was loaded.
11634         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11635         Make Type.Assembly work.
11636
11637 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11638
11639         * debug-symfile.h: use char* instead of gpointer to avoid
11640         unnecessary casts.
11641
11642         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11643
11644         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11645         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11646
11647 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11648
11649         * icall.c (mono_message_init): impl. (code cleanup)
11650         (ves_icall_InternalExecute): impl. FieldGetter
11651
11652         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11653         defined we call all (non-static)methods through the vtable. 
11654
11655 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11656
11657         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11658         finalizer even though the memory is still referenced (and the chunk of
11659         memory is not freed).
11660
11661 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11662
11663         * assembly.c: fix brokeness.
11664
11665 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11666
11667         * class.c: kill some warnings. Check explicit interface method
11668         implementation also without considering the namespace.
11669         Load also literal strings in static class data.
11670
11671 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11672
11673         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11674         (default_assembly_name_resolver): Make the resolver take the
11675         "base" directory where the assembly was originally defined, so we
11676         can load DLLs that are in the same directory as the assembly that
11677         is being referenced.
11678
11679 2002-03-28  Dick Porter  <dick@ximian.com>
11680
11681         * file-io.h: 
11682         * file-io.c:
11683         * socket-io.c: 
11684         * unicode.h: 
11685         * unicode.c: Warning cleanups
11686
11687 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11688
11689         * object.h, reflection.h: use the correct type instead of MonoObject.
11690
11691 2002-03-28  Martin Baulig  <martin@gnome.org>
11692
11693         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11694         (mono_debug_update_symbol_file): Initialize classes if necessary.
11695
11696 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11697
11698         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11699         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11700
11701 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11702
11703         * assembly.h: fix function prototype.
11704         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11705         * mono-endian.h: use const cast.
11706
11707 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11708
11709         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11710
11711 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11712
11713         * loader.c: don't assert when a typeref can't be loaded, give
11714         a chance to the runtime to trow an exception instead.
11715         * loader.h: fix warning.
11716
11717 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11718
11719         * class.c (mono_class_proxy_vtable): added proxy support
11720
11721 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11722
11723         * icall.c: removed last of PAL calls, added System.Environment
11724         * file-io.h, file-io.c: MonoIO implementation
11725         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11726
11727 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11728
11729         * appdomain.c: do not use the byte marker in ldstr table lookup.
11730         * debug-helpers.c: allow two ':' to separate class and method name.
11731         * object.c: allocate arrays bounds with the GC, too.
11732         * verify: add a few more checks.
11733
11734 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11735
11736         * reflection.c: output also literal strings. Allocate parameter data
11737         with GC_malloc() (thanks, Martin, for catching this!).
11738
11739 2002-03-26  Martin Baulig  <martin@gnome.org>
11740
11741         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11742         include the `this' offset in the `param_offsets'.
11743
11744 2002-03-25  Martin Baulig  <martin@gnome.org>
11745
11746         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11747         mono_debug_get_class() function to get the classes. Added new
11748         relocation types for arrays and strings.
11749         (mono_debug_get_class): New static function to search in all
11750         referenced assemblies for a metadata token.
11751
11752         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11753
11754 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11755
11756         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11757         hold gc-allocated objects. Make the string heap a stream like the
11758         others. Removed duplicated code when writing stream info.
11759         Added asserts to catch possible buffer overflows. Set the sorted map
11760         for tables that need sorting. Added some documentation.
11761
11762 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11763
11764         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11765         for interned strings and vtables.
11766
11767 2002-03-24  Martin Baulig  <martin@gnome.org>
11768
11769         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11770         it in the array since it was created with g_slist_prepend().
11771
11772 2002-03-24  Martin Baulig  <martin@gnome.org>
11773
11774         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11775         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11776         (mono_debug_method_from_token): Renamed to
11777         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11778         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11779
11780         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11781         relocation types.
11782
11783         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11784
11785 2002-03-24  Martin Baulig  <martin@gnome.org>
11786
11787         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11788         (mono_debug_method_from_token): New func.
11789
11790         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11791         New interncall, calls mono_debug_local_type_from_signature().
11792         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11793         calls mono_debug_method_from_token().
11794
11795 2002-03-23  Martin Baulig  <martin@gnome.org>
11796
11797         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11798         specifies the number of bytes to be converted, not the array size.
11799         Return the number of chars, not the number of bytes.
11800         (ves_icall_iconv_get_chars): The `byteCount' argument
11801         specifies the number of bytes to be converted, not the array size.
11802
11803 2002-03-23  Martin Baulig  <martin@gnome.org>
11804
11805         * reflection.h (MonoReflectionSigHelper): New type.
11806
11807         * reflection.c (mono_reflection_sighelper_get_signature_local),
11808         (mono_reflection_sighelper_get_signature_local): New functions.
11809
11810         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11811         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11812         interncalls.
11813
11814 2002-03-23  Martin Baulig  <martin@gnome.org>
11815
11816         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11817         is_writeable is set.
11818         (mono_raw_buffer_update): New function to write the modified map
11819         back to disk.
11820
11821         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11822
11823         * debug-symfile.c (mono_debug_update_symbol_file): Call
11824         mono_raw_buffer_update() when done writing.
11825
11826 2002-03-23  Martin Baulig  <martin@gnome.org>
11827
11828         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11829
11830         * debug-symfile.c: Added support for arguments and local variables.
11831
11832 2002-03-23  Dick Porter  <dick@ximian.com>
11833
11834         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11835         protected by ifdefs, hence breaking the w32 build.
11836
11837 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11838
11839         * object.c: implement is_interned() the right way.
11840
11841 2002-03-21  Martin Baulig  <martin@gnome.org>
11842
11843         * debug-symfile.[ch]: New files to handle debugging information
11844         files. There's also support to dynamically update these symbol
11845         files to include machine dependent information.
11846
11847 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11848
11849         * threads.c (mono_thread_create): new function to create thread
11850         from C
11851
11852 2002-03-20  Martin Baulig  <martin@gnome.org>
11853
11854         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11855         method is a constructor.
11856         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11857         points to ves_icall_InternalInvoke().
11858
11859 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11860
11861         * file-io.c: Flush shouldn't throw exceptions.
11862
11863 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11864
11865         * file-io.c: FileStream flush support; FileSetLength now
11866         restores file pointer.
11867
11868 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11869
11870         * class.c: set image for pointer classes.
11871
11872 2002/03/19  Nick Drochak <ndrochak@gol.com>
11873
11874         * sysmath.c: Forgot one.
11875
11876 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11877
11878         * sysmath.c: Avoid redefining existing names.
11879
11880 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11881
11882         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11883         handled by runtime as icall rather than dllimport from libm.so
11884         * file-io.c, file-io.h: fixed handle argument type.
11885
11886 2002-03-18  Dick Porter  <dick@ximian.com>
11887
11888         * reflection.c (mono_image_get_type_info): rename interface to
11889         iface, because of "#define interface struct" on windows.
11890
11891 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11892
11893         * class.c, class.h: rename and export mono_ptr_class_get().
11894         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11895         * reflection.c, reflection.h, icall.c: better/saner type name
11896         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11897         method signatures.
11898
11899 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11900
11901         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11902
11903         * icall.c (ves_icall_InternalInvoke): impl.
11904
11905 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11906
11907         * reflection.c: output the interface map table, too.
11908
11909 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11910
11911         * class.c (class_compute_field_layout): separate computation of 
11912         static field layout
11913
11914 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11915
11916         * icall.c: added System.Buffer support.
11917         * file-io.c: moved file icalls from PAL to FileStream.
11918
11919 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11920
11921         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11922
11923 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11924
11925         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11926
11927 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11928
11929         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11930
11931 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11932
11933         * debug-helpers.{c,h}: moved here from monograph some useful functions
11934         to locate a method by name/signature in a class or image. Included
11935         also a small and flexible IL disassembler.
11936
11937 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11938
11939         * reflection.c: fixup tokens in methods with small header size, too.
11940
11941 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
11942
11943         * object.c (mono_string_to_utf8): remove assert(!error), instead
11944         print a warning. 
11945
11946 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
11947
11948         * icall.c: update to the new mono_Array_class_get interface.
11949
11950 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11951
11952         * appdomain.c, object.c: Boehm-GC enable.
11953         * icall.c: make get_data_chunk() support split data requests.
11954         Ensure a class is initialized in more cases. Return only the first
11955         property found in GetProperties() or the compiler gets confused. 
11956         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
11957         * reflection.h, reflection.c: add fixup mechanism for field and method
11958         tokens. Initialize assembly->typeref in a single place. Output
11959         properties after events. Support custom attributes for events, too.
11960         Typo fix for paramter custom attrs.
11961
11962 2002-03-07  Martin Baulig  <martin@gnome.org>
11963
11964         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
11965
11966 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
11967
11968         * class.c (mono_array_class_get): fix. for multi. dim. arrays
11969
11970 2002-03-06  Martin Baulig  <martin@gnome.org>
11971
11972         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
11973         non-zero lower bounds. See testcases #F10-#F13.
11974
11975 2002-03-05  Martin Baulig  <martin@gnome.org>
11976
11977         * exception.c (mono_get_exception_argument_out_of_range): New exception.
11978
11979         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
11980         ves_icall_System_Array_GetValue(), only calculate the absolute array position
11981         here.
11982         (ves_icall_System_Array_SetValue): Likewise.
11983         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
11984         as argument and does the actual work. This function is used when copying a
11985         multi-dimensional array.
11986         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
11987         now do all the widening conversions of value types.
11988         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
11989
11990 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11991
11992         * class.c: remove some magic numbers and use the smbolic names,
11993         instead. Added init_events() to load event info at class init time.
11994         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
11995         and mono_metadata_methods_from_event().
11996         * reflection.h, reflection.c: added support for writing out the evnets
11997         related information.
11998
11999 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
12000
12001         * reflection.h, icall.c: use a different method (GetInterfaces)
12002         to gather interface info and add isbyref, isprimitive and
12003         ispointer to the ves_icall_get_type_info() return value.
12004
12005 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12006
12007         * class.h: stared adding support for events.
12008         * icall.c: split find_members implementation. Added debug icall to get
12009         the address of an object.
12010         * reflection.c: handle TypeBuilders in mono_type_get_object().
12011
12012 2002-03-01  Martin Baulig  <martin@gnome.org>
12013
12014         * icall.c (ves_icall_System_Array_GetLength): This must throw an
12015         ArgumentOutOfRangeException(), not an ArgumentException().
12016         (ves_icall_System_Array_GetLowerBound): Likewise.
12017         (ves_icall_System_Array_GetValue): Improved argument checking.
12018         (ves_icall_System_Array_SetValue): Improved argument checking.
12019
12020 2002-03-01  Martin Baulig  <martin@gnome.org>
12021
12022         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
12023         called with invalid arguments rather than just dying with g_assert().
12024         (ves_icall_System_Array_SetValue): Likewise.
12025         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
12026         raise a NotImplementedException instead.
12027         (ves_icall_System_Array_GetLength): Added argument checking.
12028         (ves_icall_System_Array_GetLowerBound): Added argument checking.
12029
12030 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
12031
12032         * object.h (mono_assert): new macros mono_assert and
12033         mono_assert_not_reached
12034
12035 2002-02-28  Martin Baulig  <martin@gnome.org>
12036
12037         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
12038         and "System::String::IsInterned" to "System::String::_IsInterned".
12039
12040 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
12041
12042         * icall.c: remove hacks for typebuilder. Added icall to create a
12043         modified type from a tybebuilder.
12044         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
12045         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
12046         to create a backing MonoClass for a TypeBuilder.
12047
12048 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12049
12050         * class.c, class.h: more refactoring of class init.
12051         Export mono_class_setup_mono_type() and mono_class_setup_parent().
12052
12053 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
12054
12055         * marshal.c, marshal.h: start of marshaling interface.
12056
12057 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12058
12059         * icall.c: fix order in assembly qualified name icall.
12060
12061 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12062
12063         * class.c: do not free str, since we store it in the hash table.
12064         * reflection.h: add label field to MonoILExceptionInfo.
12065         * reflection.c: handle references to more than one assembly. Handle
12066         case when there isn't a module created in the assembly.
12067
12068 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
12069
12070         * class.c: Fix typo. Start refactoring of class init code.
12071
12072 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
12073
12074         * appdomain.c: exit with 1 on error.
12075         * class.c: we already have the name in MonoClassField.
12076         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
12077         MonoStreamHeader instead of an offset of image->raw_metadata.
12078
12079 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
12080
12081         * appdomain.c (mono_init): Be even more descriptive about the error.
12082
12083 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
12084
12085         * appdomain.c: give the user an informative message when corlib can't
12086         be loaded.
12087
12088 2002-02-26  Martin Baulig  <martin@gnome.org>
12089
12090         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12091         New icall to get the time zone data.
12092
12093 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12094
12095         * reflection.c: set virtual and raw size of section correctly.
12096         * threads.c: transfer domain information to newly created threads.
12097
12098 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12099
12100         * class.c: when instancing a class in a domain, load the default
12101         vaules for static fields from the constant table. Fix System.Enum to
12102         not be an enum.
12103         * icall.c: implement Object::GetType() internalcall. Implemented
12104         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
12105         Fixed checking of binding flags in find_members().
12106         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
12107         * reflection.c: handle enumerations when writing to the constant
12108         table. Use a different object cache for types.
12109
12110
12111 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
12112
12113         * object.c (mono_object_isinst): fix for arrays
12114
12115         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
12116
12117 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12118
12119         * object.c: don't use mprotect ()  and fix intern pool hash table
12120         lookup for big endian systems.
12121
12122 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12123
12124         * icall.c: change type_is_subtype_of () signature.
12125
12126 2002-02-21  Mark Crichton  <crichton@gimp.org>
12127
12128         * rand.c, rand.h: Added random number generator for
12129         System.Security.Cryptography classes.
12130
12131         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12132
12133         * icall.c: Added System.Security.Cryptography calls.
12134
12135 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12136
12137         * class.c, icall.c, metadata.c: better support for pointer types.
12138         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12139         * reflection.c: Add support for getting custom attrs for properties
12140         and simplify some code.
12141
12142 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12143
12144         * icall.c: change getToken () and add custom attribute GetBlob()helper
12145         method.
12146         * reflection.h: add custom attrs array to the reflection builder structures.
12147         * reflection.c: encode and emit custom attributes for all the relevant
12148         reflection objects. Cache fieldref and methodref tokens. Change
12149         mono_image_create_token() interface to take a MonoDynamicAssembly.
12150         More complete custom attributes decoder. Load custom attributes for
12151         Assembly, Field, Method and Constructor objects, too. Make the
12152         returned array an Attribute[] one, not object[]. Added
12153         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12154         custom attribute constructor.
12155
12156 2002-02-20  Dick Porter  <dick@ximian.com>
12157
12158         * icall.c:
12159         * rawbuffer.c:
12160         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12161         problem code out for now).
12162
12163 2002-02-19  Radek Doulik  <rodo@ximian.com>
12164
12165         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12166
12167 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12168
12169         * icall.c: register the GetCustomAttributes method.
12170         * object.c, object.h: add mono_string_new_len ().
12171         * reflection.h, reflection.c: added mono_runtime_invoke(),
12172         mono_install_runtime_invoke(). Added
12173         mono_reflection_get_custom_attrs () to load custom attributes and
12174         create the attribute objects.
12175
12176 2002-02-19  Dick Porter  <dick@ximian.com>
12177         * threads-dummy-types.c:
12178         * threads-dummy-types.h:
12179         * threads-dummy.c:
12180         * threads-dummy.h:
12181         * threads-pthread-types.c:
12182         * threads-pthread-types.h:
12183         * threads-pthread.c:
12184         * threads-pthread.h:  Deleted obsolete files
12185
12186 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12187
12188         * class.c (mono_class_vtable): runtime init the class when we
12189         allocate static class data.
12190
12191         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12192
12193         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12194         and String - but we will need generic marshalling support in the
12195         future. 
12196         (mono_init): set the domain name in a ms compatible way
12197
12198         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12199         String[].
12200
12201 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12202
12203         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12204         for sizes
12205
12206         * appdomain.c (mono_domain_unload): impl.
12207
12208 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12209
12210         * appdomain.c, object.c: fix intern pool implementation.
12211         * class.c: fix alignment code.
12212
12213 2002-02-16  Radek Doulik  <rodo@ximian.com>
12214
12215         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12216         and s2 > s1, just copy lower bytes to be compatible with little
12217         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12218         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12219
12220         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12221         force big_endian to be 1 for big endian machines 
12222         (ves_icall_iconv_new_decoder): ditto
12223
12224 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12225
12226         * socket-io.c (convert_sockopt_level_and_name): If the system
12227         doesn't define SOL_IP or SOL_TCP, get them by hand using
12228         getprotobyname() and caching the values (because this could be a
12229         slow operation).
12230         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12231         Use the appropriate struct when the system does support it. Ie,
12232         not all systems have struct ip_mreqn so use struct ip_mreq when
12233         appropriate.
12234
12235 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12236
12237         * reflection.c: handle finally clauses.
12238
12239 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12240
12241         * socket-io.c: use g_snprintf() instead of snprintf.
12242
12243 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12244
12245         * reflection.c (mono_param_get_objects): Cast second argument to
12246         mono_method_get_param_names to a const char** to silence the
12247         compiler warning.
12248
12249         * appdomain.c (mono_domain_assembly_open): Put parens around the
12250         truth statement in the for-loop.
12251
12252         * unicode.c (iconv_convert): Got rid of a compiler warning about
12253         int i being unused when the system has a new iconv.
12254         (iconv_get_length): Same.
12255
12256         * image.c (load_class_names): Cast the second argument to
12257         g_hash_table_insert() to char* to hush compiler warnings about the
12258         arg being a const.
12259         (mono_image_open): Same here.
12260
12261         * socket-io.c: Don't conditionally include sys/filio.h or
12262         sys/sockio.h here anymore since we now get them from
12263         io-layer/io-layer.h
12264         (inet_pton): If the system doesn't support inet_aton, implement
12265         using inet_addr and also #define INADDR_NONE if it isn't defined
12266         by the system.
12267
12268 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12269
12270         * metadata.c, metadata.h: added function to get packing and size info
12271         of a typedef.
12272         * reflection.h, reflection.c: handle field RVA data. Save info about
12273         the table layout if needed. Assign typedef indexes to all the types
12274         before dumping the info about them to avoid forward reference problems.
12275
12276 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12277
12278         * socket-io.c (convert_sockopt_level_and_name): ifdef
12279         SO_ACCEPTCONN because it is not defined on my system (old debian)
12280
12281 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12282
12283         * opcode.c: use stddef.h to get NULL.
12284
12285 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12286
12287         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12288         for FIONBIO, FIONREAD and SIOCATMARK.
12289         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12290         define INADDR_NONE and besides, inet_addr() is deprecated and
12291         should not be used. Use inet_pton() instead - it also has the
12292         added bonus that it can easily handle IPv6 addresses as well.
12293         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12294
12295 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12296
12297         * decimal.c: remove _MSC_VER conditional.
12298
12299 2002-02-13  Dick Porter  <dick@ximian.com>
12300
12301         * socket-io.c: 
12302         * icall.c: Internal calls for Blocking, Select, Shutdown,
12303         GetSocketOption and SetSocketOption
12304
12305 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12306
12307         * assembly.cs: better resolver: use it instead of some kludgy
12308         code.
12309
12310 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12311
12312         * reflection.c: the best way to speed-up the compiler is to avoid
12313         infinite loops.
12314
12315 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12316
12317         * class.c (mono_class_vtable): changed the object layout
12318         (obj->vtable->class). 
12319         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12320
12321 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12322
12323         * assembly.c: look for assemblies in the assembly dir, too.
12324
12325 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12326
12327         * class.c: fix thinko in mono_class_from_type().
12328
12329 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12330
12331         * exception.h, exception.c: added TypeLoadException.
12332         * object.h, object.c: added mono_array_clone ().
12333         * icall.c: handle throwOnError in AssemblyGetType().
12334         Added Array.Clone().
12335         * opcode.h, opcode.c: use a single value for the opcode val.
12336         Compile fix for non-gcc compilers.
12337
12338 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12339
12340         * opcodes.c, opcodes.h: export interesting info about opcodes.
12341
12342 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12343
12344         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12345         icalls. 
12346
12347         * class.c (class_compute_field_layout): set element_class for enums
12348         (mono_class_create_from_typedef): set element_class for normal classes
12349
12350         * icall.c (ves_icall_System_Enum_get_value): impl.
12351
12352         * class.c (mono_class_create_from_typedef): do not set valuetype
12353         flag for System.ValueType and System.Enum
12354
12355 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12356
12357         * unicode.c (iconv_convert): fix big endian problem.
12358
12359 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12360
12361         * class.c: add asserts if we are ever going to scribble over memory.
12362         * socket-io.c: not all systems have AF_IRDA defined.
12363
12364 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12365
12366         * class.c (class_compute_field_layout): do not consider static
12367         fields to compute alignment
12368
12369 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12370
12371         * appdomain.c (mono_appdomain_get): impl.
12372         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12373
12374 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12375
12376         * icall.c: ignore "file://" prefix when loading an assembly.
12377
12378 2002-01-23  Dick Porter  <dick@ximian.com>
12379
12380         * socket-io.c:
12381         * icall.c:
12382         * Makefile.am: Added socket support
12383
12384 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12385
12386         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12387         code back.  This should return the assemblies that are loaded by
12388         the runtime on behalf of an application domain. 
12389
12390         The current implementation is still broken, it just returns every
12391         assembly loaded, but until we get real applications domain this
12392         will do.
12393
12394 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12395
12396         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12397         AppDomain object.
12398
12399 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12400
12401         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12402         the mono_class_from_name lookup.
12403         (ves_icall_get_parameter_info): ditto.
12404         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12405         method.
12406         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12407
12408 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12409
12410         * class.c: load also nested classes on class init.
12411         System.ValueType instance methods gets passed boxed
12412         values, unless methods in derived classed that get a pointer to the
12413         data.
12414         * icall.c: use better name parsing code in GetType().
12415         * image.c, image.h: add mono_image_loaded ().
12416         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12417         * reflection.c, reflection.h: added mono_reflection_parse_type().
12418
12419 2002-01-22  Veronica De Santis <veron78@interfree.it>
12420
12421         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12422         * threads.c : Added the implementation of internal calls for events
12423         * threads.h : Added prototypes of internal calls for events
12424         
12425 2002-01-21  Radek Doulik  <rodo@ximian.com>
12426
12427         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12428
12429 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12430
12431         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12432         (mono_class_value_size): use min_align
12433
12434 2002-01-20  Dick Porter  <dick@ximian.com>
12435
12436         * threads.h:
12437         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12438         so it compiles on w32.
12439
12440 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12441
12442         * metadata.c (mono_type_stack_size): impl.
12443
12444         * class.c (mono_class_get_field): impl. memberref token
12445
12446 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12447
12448         * icall.h : Added the internal calls mapping for CreateMutex_internal
12449                     and ReleaseMutex_internal.
12450         * threads.h : Added the prototype of mutexes internal calls.
12451         * threads.c : Added the implementations of mutexes internal calls.
12452
12453 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12454
12455         * metaparse.h: removed unused file.
12456         * reflection.c, reflection.h: added stream_data_align () function 
12457         to align data in streams and keep stream aligned. Add support for
12458         exception support in method headers.
12459
12460 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12461
12462         * unicode.c: make iconv_convert () return the number of bytess written
12463         in the output buffer.
12464
12465 2002-01-15  Dick Porter  <dick@ximian.com>
12466         * threads.c: Make the runtime's idea of infinite timeouts coincide
12467         with the class library's
12468
12469         Fix a particularly egregious bug in mono_thread_cleanup(). That
12470         code was so utterly bogus it must have been written on a Monday.
12471
12472 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12473
12474         * reflection.h: add subtypes field to TypeBuilder.
12475         * reflection.c: encode constants for literal fields.
12476         Handle subtypes. Fix user string token (and add a zero byte)
12477         at the end.
12478         
12479 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12480
12481         * class.c (mono_class_init): bug fix: assign slot numbers for
12482         abstract methods.
12483
12484 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12485
12486         * reflection.c: don't try to output a code RVA for abstract methods.
12487         Small fixes for method header format. Output parameter info to the
12488         ParamDef table. Save method overriding info to MethodImpl table.
12489         Fix property support. Allow typedef.extends to be a type in the
12490         building assembly.
12491         * verify.c: fix off-by-one error.
12492
12493 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12494
12495         * class.c: fix mono_class_from_mono_type () for szarray types.
12496         Remove unused cache check in mono_class_from_type_spec().
12497         * icall.c: *type_from_name () functions handle simple arrays and byref.
12498         * reflection.c: handle byref and szarray types. Handle methods without
12499         body (gets P/Invoke compilation working). Handle types and fields in
12500         get_token ().
12501         * reflection.h: add rank to MonoTypeInfo.
12502
12503 2002-01-10  Dick Porter  <dick@ximian.com>
12504
12505         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12506         internal calls
12507
12508 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12509
12510         * icall.c: initialize class in type_from_handle ().
12511         Loop also in parent classes for get_method ().
12512         * reflection.c: properly encode class and valuetype types.
12513         Start on encoding TypeBuilder types. Handle fieldrefs.
12514         Use correct length when registering a user string.
12515         Handle ConstructorBuilder and MonoMethod in get_token ().
12516         Make mono_type_get_object () aware of cached types.
12517         * object.c: back out change to mono_string_new ().
12518
12519 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12520         * object.c: mono_string_new should return a NULL when the string 
12521         passed in is NULL -- not try to deference it.
12522         
12523 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12524
12525         * icall.c: hack to make IsSubType work for TypeBuilders.
12526         * reflection.c: emit constructors before methods.
12527         Retrieve param names in mono_param_get_objects().
12528
12529 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12530
12531         * Makefile.am: fix list of headers and sources so automake 1.5
12532         doesn't complain. Removed \# at end of list.
12533
12534 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12535
12536         * reflection.c: get token for a method ref. Set return type of
12537         constructor to void.
12538         * loader.c: debug message.
12539         * class.c: typo fix.
12540
12541 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12542
12543         * icall.c: fix array init with rank > 1. FindMembers
12544         loops in parent class as well.
12545         * image.c: do not insert nested types in name cache.
12546         * reflection.c: warning fix.
12547         * reflection.h: add override method (for interface impl).
12548
12549 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12550
12551         * metadata.c: fix customattr decoding.
12552
12553 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12554
12555         * rawbuffer.cs: Added native Win32 implementation, avoids using
12556         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12557
12558 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12559
12560         * class.c: make the low-level routines handle the cache.
12561
12562 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12563
12564         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12565
12566 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12567
12568         * class.c: fix mono_array_element_size() for objects.
12569         * class.h, class.c: add properties to MonoClass and load them
12570         at init time.
12571         * icall.c: check with isinst() when assigning a value to an array
12572         instead of requiring the classes to match exactly.
12573         Implemented icall for System.Type::GetType().
12574         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12575         enums. Handle bindingflags when looking for methods and fields.
12576         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12577         and mono_metadata_methods_from_property().
12578         * reflection.h, reflection.c: added structures for propreties,
12579         parameters and enums. Implemented mono_property_get_object() and
12580         mono_param_get_objects().
12581
12582 2001-12-18  Dick Porter  <dick@ximian.com>
12583
12584         * file-io.c: Use mono_string_to_utf16() instead of
12585         mono_string_chars()
12586
12587         * object.c: Added mono_string_to_utf16(), which copies the non
12588         NULL-terminated MonoString into a new double-null-terminated
12589         buffer.
12590
12591 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12592
12593         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12594
12595 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12596
12597         * file-io.c: raise exceptions if handle is invalid.
12598
12599 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12600
12601         * assembly.c: yet another check for mscorlib.
12602         * class.c, class.h: load nesting info for classes.
12603         * icall.c: many new functions to support the Reflection classes.
12604         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12605         * reflection.h, reflection.c: mono_image_create_token(),
12606         mono_assembly_get_object(), mono_type_get_object(),
12607         mono_method_get_object(), mono_field_get_object(): methods to return
12608         objects that parallel the C representation of assemblies, types,
12609         methods, fields.
12610
12611 2001-12-11  Dick Porter  <dick@ximian.com>
12612
12613         * icall.c:
12614         * file-io.c: Internal calls for file IO.
12615
12616 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12617
12618         * tabledefs.h: missing FileAttributes.
12619         * verify.h, verify.c: use is_valid_string () to simplify and check for
12620         valid strings more correctly. Fix warnings and speeling.
12621         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12622         Check code: branches, maxstack, method calls.
12623
12624 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12625
12626         * object.c (mono_object_allocate): removed static, so that the jit
12627         can allocate value types.
12628
12629         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12630
12631 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12632
12633         * class.c: init enum types right away and register the
12634         token->MonoClass map in mono_class_create_from_typedef ().
12635         * verify.h, verify.c: first cut of the verifier.
12636         * pedump.c: add --verify switch to verify metadata tables.
12637         * tabledefs.h: add some missing enums.
12638
12639 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12640
12641         * class.c (mono_install_runtime_class_init): impl.
12642         (mono_class_init): renamed mono_class_metadata_init to
12643         mono_class_init, also removed the metadata_inited flag
12644
12645         * object.c (mono_object_isinst): use faster algorithm
12646
12647 2001-11-30  Radek Doulik  <rodo@ximian.com>
12648
12649         * mono-endian.h: reverted last change
12650         added function prototypes
12651
12652         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12653         add mono-endian.c back
12654
12655         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12656         for unaligned access, I've mistaked it with endianess. I am
12657         sorry.
12658         (mono_read16): fix reverted endianess
12659         (mono_read64): ditto
12660         (mono_read32): ditto
12661
12662 2001-11-30  Dick Porter  <dick@ximian.com>
12663
12664         * exception.c: Implement mono_exception_from_name()
12665
12666 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12667
12668         * metadata.h, metadata.c: remove params_size and locals_size and their
12669         calculation from the metadata code: they are only usefult to the
12670         interp.
12671
12672 2001-11-29  Radek Doulik  <rodo@ximian.com>
12673
12674         * object.c (mono_ldstr): swap bytes here, it's probably not the
12675         best place, but works for me now, I'll redo it once I know mono
12676         better, also note that I add PROT_WRITE and don't reset back, also
12677         note that it's only affects big endians, so x86 should be OK
12678
12679         * mono-endian.h (read16): use just glib macros for both endians
12680
12681         * mono-endian.c: removed as glib macros are used in in
12682         mono-endian.h so we don't need to care about endianess for read
12683         macros as glib does that for us already
12684
12685 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12686
12687         * class.h, class.h: take minimum alignment into consideration so
12688         that the fields of a class remain aligned also when in an array.
12689
12690 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12691
12692         * loader.h, loader.c: add mono_method_get_param_names().
12693         * class.c: 0-init class fields.
12694
12695 2001-11-26  Dick Porter  <dick@ximian.com>
12696
12697         * icall.c:
12698         * threads-types.h:
12699         * threads.c: New file that handles System.Threading on all platforms
12700
12701         * object.c: 
12702         * object.h: Remove the synchronisation struct from MonoObject,
12703         replace it with a pointer that gets initialised on demand
12704
12705         * Makefile.am: Replace all the system-specific threading code with
12706         a single file that uses the new wrapper library
12707
12708 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12709
12710         * class.c, class.h: add mono_install_trampoline() so that the runtime
12711         can register a function to create a trampoline: removes the ugly
12712         requirement that a runtime needed to export arch_create_jit_trampoline.
12713         * object.h, object.c: added mono_install_handler() so that the runtime
12714         can install an handler for exceptions generated in C code (with
12715         mono_raise_exception()). Added C struct for System.Delegate.
12716         * pedump.c: removed arch_create_jit_trampoline.
12717         * reflection.c: some cleanups to allow registering user strings and
12718         later getting a token for methodrefs and fieldrefs before the assembly
12719         is built.
12720         * row-indexes.h: updates and fixes from the new ECMA specs.
12721
12722 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12723
12724         * class.h, class.c: add enum_basetype field to MonoClass.
12725         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12726         to get index in the constant table reated to a field, param or
12727         property.
12728         * reflection.h, reflection.c: handle constructors. Set public-key and
12729         version number of the built assembly to 0.
12730         * row-indexes.h: update from new ECMA spec.
12731
12732 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12733
12734         * class.h, class.c: add a max_interface_id to MonoClass.
12735         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12736         since it's used to do that. Added mono_type_type_from_obj().
12737         Make GetType() return NULL instead of segfaulting if the type was not
12738         found. Handle simple arrays in assQualifiedName.
12739         * object.h: add a struct to represent an Exception.
12740         * reflection.c: output call convention in method signature.
12741         Add code to support P/Invoke methods and fixed offsets for fields.
12742
12743 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12744
12745         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12746         the value.
12747         * icall.c: use mono_array_addr instead of array->vector: fixes the
12748         reflection image writing.
12749         * reflection.c: init call convention byte to 0 in method signature.
12750         Encode the property signature. Don't output property-related methods
12751         twice. Really process the properties for a type (don't cast a field to
12752         a property, my mom always told me that).
12753         Fix 64 bit issues in pointer alignment in a different and more
12754         readable way.
12755
12756 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12757
12758         * loader.h: Removed type class from MonoDefaults, added monotype
12759
12760         * loader.c: Loaded MonoType, removed loading of Type
12761
12762         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12763         and fills in System.Type._impl with a RuntimeTypeHandle rather
12764         than the actual MonoClass *
12765
12766         (ves_icall_type_from_handle): change from type_class to
12767         monotype_class
12768
12769         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12770         implemented
12771
12772         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12773         implemented
12774
12775         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12776
12777         (ves_icall_System_Reflection_Assembly_GetType): implemented
12778
12779         (ves_icall_System_MonoType_assQualifiedName): implemented
12780
12781         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12782
12783 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12784
12785         * assembly.c (mono_assembly_open): Implement a cache for the
12786         assemblies. 
12787
12788         (mono_assembly_close): only destroy the assembly when the last
12789         reference is gone.
12790         
12791 2001-11-09  Dick Porter  <dick@ximian.com>
12792
12793         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12794
12795 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12796
12797         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12798
12799 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12800
12801         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12802         from Martin Weindel.
12803         * object.h: add mono_string_chars ().
12804
12805 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12806
12807         * reflection.c (build_compressed_metadata): Eliminates warnings
12808         and uses 64-bit clean code.
12809
12810         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12811         (mono_type_equal): Change signature to eliminate warnings.
12812
12813 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12814
12815         * icall.c, loader.c: remove the internalcall array constructors.
12816         Changes to match the new MonoArray structure.
12817         * object.h, object.c: an array object doesn't allocate an extra
12818         vector. Add mono_array_new_full () to create jagged arrays easily.
12819
12820 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12821
12822         * metadata.h, metadata.c: add mono_metadata_field_info () to
12823         retreive all the info about a field from vairous tables.
12824         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12825         * class.h, class.c: augment MonoClassField with more info.
12826         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12827         policy and load a field's RVA if needed.
12828
12829 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12830
12831         * class.c (mono_class_metadata_init): create a trampoline for all
12832         virtual functions instead of actually compiling them.
12833
12834 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12835
12836         * class.h, class.c: include name in MonoClassField.
12837         * class.c: fix fundamental type of System.Object and System.String.
12838         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12839         tokens in ldtoken.
12840         * icall.c: remove internalcalls for the Reflection stuff that is now
12841         done in C# code.
12842         * loader.c: mono_field_from_memberref () implementation.
12843         * mono-endian.c: thinko (s/struct/union/g).
12844         * object.c, object.h: make the mono_string_* prototypes actually use
12845         MonoString instead of MonoObject.
12846         * reflection.c, reflection.h: updates for changes in the reflection
12847         code in corlib: we use C structures that map to the actual C# classes.
12848         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12849         fat method header if needed and use the info from the ILGenerator for
12850         methods. Handle fields in types. Misc fixes.
12851
12852 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12853
12854         * class.c (mono_class_metadata_init): bug fix: always allocate
12855         space for static class data
12856
12857 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12858
12859         * class.c (mono_compute_relative_numbering): use relative
12860         numbering to support fast runtime type checks.
12861
12862 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12863
12864         * class.c (mono_class_create_from_typeref): added debugging output
12865         to print class name when MonoDummy is returned instead of real class
12866
12867 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12868
12869         * class.c (mono_class_metadata_init): interface offset table now
12870         contains pointers into the vtable - this is more efficient for the jit
12871
12872 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12873
12874         * class.c (mono_class_metadata_init): use a temporary vtable (the
12875         old algorithm only worked for the interpreter, but not for the jit)
12876
12877 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12878
12879         * loader.c (method_from_memberref): use mono_class_get to get the
12880         class of an array instead of using System.Array directly.
12881         (mono_get_method): also add MEMBERREF methods to the method cache
12882         which usefull for arrays.
12883
12884 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12885
12886         * pedump.c (arch_compile_method): added to compute vtable entry
12887
12888         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12889         number of interfaces.
12890         
12891         * class.h: merged MonoArrayClass into MonoClass
12892
12893         * class.c (mono_class_create_from_typedef): compute the vtable size and
12894         allocate space to include the vtable inside MonoClass
12895         (mono_class_metadata_init): initialize the vtable
12896
12897 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12898
12899         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12900         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12901         * image.c: endian fixes by Laurent Rioux.
12902         * object.h, object.c: rename MonoStringObject to MonoString and
12903         MonoArrayObject to MonoArray. Change some function names to conform to
12904         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12905         guint16* as first argument, so don't use char*.
12906         Provide macros to do the interesting things on arrays in a portable way.
12907         * threads-pthread.c: updates for the API changes and #include <sched.h>
12908         (required for sched_yield()).
12909         * icall.c: updates for the API changes above.
12910         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12911         platforms that need them.
12912
12913 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12914
12915         * class.c: set the correct type for all the fundamental
12916         type when loading the class.
12917
12918 2001-10-05  Dick Porter  <dick@ximian.com>
12919
12920         * threads-pthread.c (pthread_mutex_timedlock): Simple
12921         compatibility version for C libraries that lack this call.
12922
12923 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12924
12925         * class.c: MonoTypes stored in MonoClass are stored as
12926         fundamental MonoTypes when the class represents a
12927         fundamental type (System.Int32, ...).
12928         The TypeHandle return by ldtoken is a MonoType*.
12929         * icall.c: ves_icall_get_data_chunk () write out all the
12930         PE/COFF stuff. Implement ves_icall_define_method (),
12931         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12932         * image.c: properly skip unknown streams.
12933         * loader.h, loader.c: add type_class to mono_defaults.
12934         * metadata.c, metadata.h: export compute_size () as
12935         mono_metadata_compute_size () with a better interface.
12936         Typo and C&P fixes.
12937         * pedump.c: don't try to print the entry point RVA if there is no entry point.
12938         * reflection.c, reflection.h: many cleanups, fixes, output method
12939         signatures and headers, typedef and typeref info, compress the metadata
12940         tables, output all the heap streams, cli header etc.
12941         * row-indexes.h: typo fixes.
12942
12943 2001-10-04  Dick Porter  <dick@ximian.com>
12944
12945         * object.h: Add a synchronisation mutex struct to MonoObject
12946
12947         * object.c (mono_new_object): Initialise the object
12948         synchronisation mutexes
12949
12950         * icall.c: System.Threading.Monitor internal calls
12951         
12952         * threads-pthread.h:
12953         * threads-pthread.c: System.Threading.Monitor internal calls
12954
12955         * threads-types.h: New file, includes the system-specific thread
12956         structures
12957         
12958         * threads-pthread-types.h:
12959         * threads-pthread-types.c: New files, handle pthread-specific
12960         synchronisation types
12961
12962         * threads-dummy-types.h: 
12963         * threads-dummy-types.c: New files of dummy support for
12964         thread-specific types
12965
12966         * metadata.c:
12967         * image.c:
12968         * pedump.c: include mono-endian.h not endian.h
12969         
12970         * Makefile.am: More threads files.
12971         Name mono-endian.h not endian.h
12972
12973 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
12974
12975         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
12976         stuff and implement a few more bits.
12977         * icall.c: a field needs to be dereferenced twice. Do not use the same
12978         name for two variables in the same scope.
12979         * image.c, image.h: cleanups.
12980
12981 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
12982
12983         * class.c (mono_class_metadata_init): bug fix: compute the right size
12984
12985 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
12986
12987         * icall.c: implemented some of the Reflection internalcalls.
12988         * image.c, image.h: start writing out the PE/COFF image.
12989         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
12990         that does the reverse than decode_blob_size ().
12991         * object.c: use mono_metadata_encode_value (). Move here
12992         temporary implementation of mono_string_to_utf8 ().
12993         * rawbuffer.c: make malloc_map static.
12994
12995 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12996
12997         * metadata.c: fix type comparison for arrays.
12998         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
12999         Added a couple of new classes to monodefaults.
13000         * icall.c: added a couple of Reflection-related internalcalls.
13001         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
13002         Added a byval_arg MonoType to MonoClass.
13003
13004 2001-09-28  Dick Porter  <dick@ximian.com>
13005
13006         * icall.c:
13007         * threads-pthread.h: 
13008         * threads-pthread.c: Implemented internal calls for
13009         LocalDataStoreSlot operations.  Applied mutexes around all shared
13010         data.  Reworked the thread creation and Start() operations to
13011         avoid a race condition.
13012         
13013         * threads-dummy.h:
13014         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
13015
13016 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
13017
13018         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
13019
13020 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
13021
13022         * class.c, loader.c: warn and return NULL instead of erroring out.
13023         * icall.c: added System.AppDomain::getCurDomain().
13024         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
13025
13026 2001-09-25  Dick Porter  <dick@ximian.com>
13027
13028         * threads-pthread.h:
13029         * threads-pthread.c: Implemented timed thread joining and added
13030         System.Threading.Thread::Join_internal internal call
13031
13032         * icall.c: Added System.Threading.Thread::Join_internal internal call
13033
13034         * threads-dummy.h:
13035         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
13036
13037 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
13038
13039         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
13040         mono_string_intern () to implement the semantics of the ldstr opcode
13041         and the interning of System.Strings.
13042         * icall.c: provide hooks to make String::IsIntern and String::Intern
13043         internalcalls.
13044
13045 2001-09-23  Dick Porter  <dick@ximian.com>
13046
13047         * threads-dummy.c: 
13048         * threads-dummy.h: New files of dummy threading routines
13049
13050         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
13051         support code based on system specifics
13052
13053         Rename PTHREAD_LIBS to THREAD_LIBS
13054         
13055 2001-09-23  Dick Porter  <dick@ximian.com>
13056
13057         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
13058         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
13059         internal calls.
13060         (mono_thread_init): Set up a Thread object instance to return when
13061         the main thread calls Thread.CurrentThread
13062         (mono_thread_cleanup): Wait for all subthreads to exit
13063
13064         * icall.c: New internal calls for System.Threading.Thread::Sleep
13065         (including Schedule) and CurrentThread
13066
13067         * threads.h: New file, to insulate thread-specific stuff from the
13068         rest of the code
13069
13070 2001-09-21  Dick Porter  <dick@ximian.com>
13071
13072         * threads-pthread.h: 
13073         * threads-pthread.c: New file, for handling pthreads-style
13074         threading support.  Start() now starts a new thread and executes
13075         the ThreadStart delegate instance.
13076
13077         * icall.c: Added the internalcall for
13078         System.Threading.Thread::Start_internal
13079
13080         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
13081
13082 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
13083
13084         * loader.c: work around the different signatures for delegates
13085         constructors csc generates in compiled code vs the ones compiled in mscorlib.
13086
13087 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13088
13089         * class.h, class.c: add mono_class_get_field_from_name ().
13090         * *: Fix C comments and other ANSI C issues.
13091
13092 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
13093
13094         * endian.h, assembly.c: fix some endianness issues.
13095
13096 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
13097
13098         * loader.h, load.c: add delegate_class to mono_defaults.
13099         Handle runtime provided methods in mono_get_method ().
13100
13101 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
13102
13103         * loader.c (mono_get_method): use pinvoke for internal call
13104
13105         * icall.c: use pinvoke for internal call
13106
13107         * loader.c (method_from_memberref): set the method name
13108
13109 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
13110
13111         * metadata.c: help the compiler generate better code for
13112         mono_class_from_mono_type ().
13113
13114 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
13115
13116         * class.c (mono_class_metadata_init): delayed computing of the
13117         class size to mono_class_metadata_init ()
13118
13119 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
13120
13121         * class.c, class.h: add an interfaces member to MonoClass.
13122         * image.c, image.h: add assembly_name field to MonoImage
13123         from the assembly table.
13124         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
13125
13126 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13127
13128         * class.c: Handle Array in mono_class_from_mono_type ().
13129         * metadata.c, pedump.c: some endian fixes.
13130
13131 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13132
13133         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13134         * metadata.c: fix small problem introduced with the latest commit.
13135
13136 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13137
13138         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13139         We don't need a MonoMetadata pointer anymore to compare signatures in
13140         mono_metadata_signature_equal (), update callers.
13141         Reduced memory usage an number of allocations for MonoMethodHeader and
13142         MonoMethodSignature.
13143
13144 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13145
13146         * metadata.c: added compare for szarray.
13147
13148 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13149
13150         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13151         and add a couple more types to it and mono_defaults. Give an hint on
13152         classes that need implementing in our corlib and are referenced
13153         in mscorlib.
13154
13155 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13156
13157         * class.h, class.c: keep track if a class is also an Enum.
13158         * loader.c: Implement a couple more types for use in libffi
13159         marshalling. Gives better diagnostics when failing to dlopen
13160         a library. Set method->klass for P/Invoke methods, too.
13161
13162 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13163
13164         * class.c, class.h: add a MonoType this_arg to MonoClass that
13165         represents a pointer to an object of the class' type that
13166         can be used by the interpreter and later the type cache.
13167         Add best guess alignment info for valuetype objects.
13168
13169 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13170
13171         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13172         into MonoType: one less level of indirection and allocation and
13173         simplifies quite a bit of code. Added cache for MonoTypes that are
13174         used frequently, so that we don't need to allocate them all the time.
13175
13176 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13177
13178         * class.c (mono_class_create_from_typedef): System.Enum is also a
13179         value type, although it does not derive from System.ValueType
13180         (maybe a bug in the ms compiler?)
13181
13182         * metadata.c (mono_type_size): return the right size for value types
13183
13184         * loader.c (mono_get_method): only initialize method header if not abstract
13185
13186         * class.c (mono_class_from_mono_type): use mono_default values. 
13187
13188 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13189
13190         * *: use MonoClass pointers instead of <type_tokens>
13191         
13192         * class.h: new flag: metadata_inited.
13193
13194         * class.c (mono_class_metadata_init): impl.
13195         (mono_class_instance_size): impl.
13196         (mono_class_data_size): impl.
13197
13198 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13199
13200         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13201         MonoClass now has the name and name_space fields. 
13202         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13203         mono_get_method () takes and optional MonoClass as argument.
13204         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13205         instead that takes advantage of a map from class names to typedef
13206         tokens in MonoImage.
13207
13208 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13209
13210         * metadata.c: zero is not a valid alignment boundary.
13211         Merge MONO_TYPE_VOID in default decoding code.
13212
13213 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13214
13215         * image.h: merged MonoMetadata into MonoImage
13216
13217         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13218         identify the type of elements.
13219
13220 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13221
13222         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13223         * cil-coff.h: split MonoMSDOSHeader and add size info.
13224         * image.c: add some consistency checks.
13225         * metadata.c: fix row size computation: one programmer
13226         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13227         add explanation for the locator routine.
13228         Fix decoding of size in method header.
13229         
13230 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13231
13232         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13233         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13234         function from gnome-libs.  This uses the right path separator
13235         based on the OS, and also works around a bug in some systems where
13236         a double slash is not allowed. 
13237         (default_assembly_name_resolver): Use g_concat_dir_and_file
13238         (mono_assembly_open): ditto.
13239
13240 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13241
13242         * metadata.c (mono_metadata_signature_equal): impl.
13243
13244         * *: void is now a realy MonoType (instead of using NULL)
13245         
13246         * metadata.c (do_mono_metadata_parse_type): use
13247         mono_metadata_parse_type to parse void value.
13248
13249 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13250
13251         * metadata.c, metadata.h: in the signature and method header store
13252         only the space required for holding the loca vars and incoming arguments.
13253
13254 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13255
13256         * metadata.c (do_mono_metadata_parse_type): treat void like any
13257         other type (instead of assigning NULL);
13258
13259 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13260
13261         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13262
13263 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13264
13265         * image.c (do_mono_image_open): added a cache for arrays.
13266
13267 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13268
13269         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13270         decode a single column from a row in a metadata table and changes
13271         to take advantage of it in the typedef locator (gives a nice speed up).
13272         Store offset info for function params.
13273
13274 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13275
13276         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13277
13278 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13279
13280         * assembly.c: how could mono_assembly_close () had ever worked?
13281         * metadata.c, metadata.h: provide offset info for local vars.
13282         Implement mono_type_size () to take care of alignment as well
13283         as size (it was mono_field_type_size in cli/class.c before).
13284
13285 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13286
13287         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13288
13289         * assembly.h (CORLIB_NAME): set to corlib.dll
13290
13291         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13292
13293 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13294
13295         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13296         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13297         tokentype.h: massive namespace cleanup.
13298
13299 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13300
13301         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13302
13303 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13304
13305         * metadata.c (mono_metadata_free_type): added check for type !=
13306         NULL (void) before calling mono_metadata_free_type()
13307
13308 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13309
13310         * metadata.h, row_indexes.h: added header with enumerations to use
13311         to index in the columns from tables in metadata and to decode coded
13312         tokens: we should start using this instead of embedding magic numbers
13313         all over the code.
13314
13315 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13316
13317         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13318         Move metadata_t info from cli_image_info_t to MonoImage, where
13319         it's easily accessible. Changed all the uses accordingly.
13320         Added the method and class caches to MonoImage.
13321         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13322         and mono_metadata_decode_value () signature to be more consistent
13323         with the other parse functions (and simplify code). Taken advantage
13324         of zero-length array allocation with GCC. Removed reduntant (and
13325         wrong) MonoFieldType struct and use MonoParam instead. Changed
13326         mono_metadata_parse_field_type () to use common code for parsing.
13327         Added mono_metadata_typedef_from_field () and
13328         mono_metadata_typedef_from_method () to lookup a typedef index from a
13329         field or method token.
13330         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13331
13332 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13333
13334         * metadata.c (mono_metadata_parse_field_type): Implement. 
13335         (do_mono_metadata_parse_type): Split engine from
13336         mono_metadata_parse_type, so that we can create smaller structures
13337         for things that just have one pointer to the MonoType (look at
13338         the MonoFieldType)
13339
13340 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13341
13342         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13343         as Jan Gray found out, it is incorrect. 
13344
13345 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13346
13347         * assembly.c: Implement asssembly loading.  This loads an image
13348         and loads all the referenced assemblies.  Come to think of it, we
13349         could always do lazy loading of the assemblies. 
13350
13351         * image.c (mono_image_open): Keep loaded images in a hashtable.
13352
13353         * image.h (MonoImage): Add reference count.
13354
13355 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13356
13357         * assembly.c (mono_assembly_open): Keep track of the file name in
13358         case the assembly has no ASSEMBLY table.
13359
13360         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13361         from get.c here.
13362
13363 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13364
13365         * metadata.c, metadata.h: decode local vars in method header
13366         parse function. Change callers accordingly.
13367
13368 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13369
13370         * metadata.h, cil-coff.h: protect against multiple inclusion.
13371         Added some new structures to hold information decoded from metadata:
13372         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13373         and relevant decoding/free functions.
13374         * metadata.c: implement decoding functions. Add warning for out of bounds
13375         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13376         all the info about a method signature and invocation. Remove check on
13377         uninitialized local var in parse_mh() and fix memory leak.
13378
13379 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13380
13381         * metadata.h: More macros.
13382
13383         * tokentype.h: New file.
13384
13385 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13386
13387         * assembly.c: added a consistency check and initialize
13388         some structures with g_new0().
13389         * metadata.c: fixed a couple more bugs in table size computation
13390         and add other checks for out-of bound access to metadata.
13391
13392 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13393
13394         * metatada.c: fix bugs computing table sizes. Spew a
13395         warning when index in string heap is out of bounds.
13396
13397 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13398
13399         * metadata.h: Add a couple of macros to manipulate tokens. 
13400
13401 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13402
13403         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13404         cli_section_tables).
13405
13406 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13407
13408         * metadata.c (mono_metadata_user_string): New function, provides
13409         access to the UserString heap. 
13410
13411 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13412
13413         * metadata.c: Add inline documentation.
13414
13415 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13416
13417         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13418         files. 
13419
13420 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13421
13422         * typeattr.h: New file, TypeAttribute flags. 
13423
13424 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13425
13426         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13427         mono_assembly_ensure_section): Section loading code.
13428         (load_section_tables): Load the sections.
13429
13430         * mono/metadata/metadata.c (mono_metadata_locate_token,
13431         mono_metadata_locate): Functions to locate the information
13432         definition given a token or a table and an index.
13433         (mono_metadata_compute_table_bases): New.
13434         (compute_size): New function to compute the sizes of the various
13435         tables.
13436
13437         * mono/metadata/metadata.h: Finish listing the different index
13438         types. 
13439
13440         * mono/metadata/pedump.c: Improve to dump new information.
13441
13442 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13443
13444         * mono/metadata/metadata.c: Entered all the tables matching
13445         Beta2. 
13446
13447         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13448