2005-01-06 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / metadata / ChangeLog
1 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
2
3         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
4         
5         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
6         fields from mb, not rmb. Fixes #71017.
7
8         * marshal.c (emit_ptr_to_str_conv): Add support for 
9         ByValTStr -> string conversion. Fixes #71015.
10
11         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
12
13         * mempool.c (mono_mempool_contains_addr): New helper function.
14
15 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
16
17         * metadata.c (mono_metadata_compute_size): Fix size calculation of
18         HasSematics encoded fields.
19         
20         * metadata.c (mono_type_to_unmanaged): Improve error message for 
21         invalid string marshalling.
22
23         * metadata.c: Fix warnings.
24         
25 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
26
27         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
28         profiler support.
29
30 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
31
32         * domain.c object.c domain-internals.h: Revert part of r38077 since the
33         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
34         tests.
35
36 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
37
38         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
39         so methods containing these can be AOTed.
40
41 2005-01-03  Martin Baulig  <martin@ximian.com>
42
43         * loader.c (find_method): Removed the hack for generic instances.
44         (method_from_memberref): If our parent is a generic instance, pass
45         its generic type definition to find_method() and then inflate the
46         method.
47         (mono_get_method_constrained): Pass the generic type definition to
48         find_method() and inflate the method later.
49
50         * class-internals.h (MonoStats): Added `generic_class_count'.
51
52         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
53         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
54
55         * reflection.c (mono_custom_attrs_from_params): Don't ignore
56         generic type definitions.
57
58 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
59
60         * loader.c icall.c: Fix warnings.
61
62 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
63
64         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
65         blittable types. Fixes #70864.
66
67 2004-12-29  Martin Baulig  <martin@ximian.com>
68
69         * icall.c
70         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
71
72         * reflection.c (mono_method_get_object): Create a
73         "System.Reflection.MonoGenericMethod" for inflated methods; don't
74         call mono_get_inflated_method().
75
76         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
77
78 2004-12-27  Martin Baulig  <martin@ximian.com>
79
80         * class-internals.h (MonoMethod): Added `is_inflated' flag.
81         (MonoMethodInflated): Added `inflated' field.
82
83         * class.c (mono_class_inflate_generic_method): Don't really
84         inflate the method here; just set the `is_inflated' flag in the
85         MonoMethod.
86         (mono_class_get_inflated_method): Actually inflate the method here
87         if it's not already inflated; we use the MonoMethodInflated's new
88         `inflated' field as a cache.
89
90 2004-12-26  Martin Baulig  <martin@ximian.com>
91
92         * class.c
93         (inflate_generic_class): Moved some code out of inflate_generic_type().
94         (mono_class_inflate_generic_method): If we're already inflated,
95         inflate the context and use the declaring method; ie. make sure
96         the declaring method of an inflated method is always the generic
97         method definition.
98         (mono_class_create_from_typedef): Create
99         `class->generic_container->context->gclass'.
100
101 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
102
103         * metadata-internals.h, marshal.c, reflection.c: More
104         MonoGHashTable->GHashTable.
105
106         * domain-internals.h, class.c: Change MonoGHashTable's into
107         GHashTables for some cases where no gc stuff is used
108
109         All users: update apis
110
111 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
112
113         * metadata.c (builtin_types): Make this `const'. Makes this get
114         put into the shareable section.
115         (mono_metadata_init): Casts to make gcc happy.
116
117 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
118
119         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
120
121 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
122
123         * icall.c: Added an internal call to retrieve the position and length
124         of assembly-level declarative security attributes (RequestMinimum, 
125         RequestOptional and RequestRefuse). This is used by the Assembly class
126         to re-create the corresponding permission sets.
127
128 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
129
130         * marshal.c: fix the stelemref wrapper to be type correct
131         (and faster).
132
133 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
134
135         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
136         to do key & 0x7fffffff. Hashtable already does this. It just
137         results in longer code.
138
139 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
140
141         * appdomain.c: Bump corlib version.
142         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
143         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
144         * reflection.c|h: Add functions to get declarative security infos
145         (blob position and length) for assemblies, classes and methods.
146
147 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
148
149         * reflection.c: sort the constant table (bug #70693).
150
151 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
152
153         * object-internals.h, threads.c, domain.c: add accessors for
154         the MonoThread and MonoDomain tls keys.
155
156 2004-12-18  Martin Baulig  <martin@ximian.com>
157
158         * class.c (inflate_generic_type): If we're inflating a generic
159         instance, set `ngclass->context->container = context->container';
160         ie. the container we inflated into.
161
162         * metadata.c (mono_metadata_parse_generic_param): Reflect above
163         inflate_generic_type() changes.
164
165 2004-12-17  Martin Baulig  <martin@ximian.com>
166
167         * class-internals.h
168         (MonoGenericClass): Replaced `MonoType *generic_type' with
169         `MonoClass *generic_class'.  Removed `dynamic_info'; if
170         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
171         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
172
173 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
174
175         * exception.c (mono_exception_from_token): New helper function.
176
177 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
178
179         * assembly.c (mono_assembly_load_with_partial_name): Call 
180         mono_assembly_loaded before invoking the preload hooks. Fixes
181         #70564.
182
183         * object-internals.h (MonoThread): Change culture_info and 
184         ui_culture_info into an array.
185
186         * threads.c: Cache culture info objects from more than one appdomain.
187
188         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
189         current UI culture.
190
191 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
192
193         * threads.h threads.c appdomain.c: Clear the culture_info field of
194         all threads during unloading if they point to an object in the dying
195         appdomain.
196
197 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
198
199         * culture-info.h (TextInfoEntry): New struct
200         * object-internals.h: sync with managed
201         * locales.c: fill the `text_info_data' field
202         * culture-info-tables.h: update
203
204 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
205
206         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
207         collector.
208
209 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
210
211         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
212         (ves_icall_ModuleBuilder_getMethodToken): Ditto
213
214 2004-12-12  Martin Baulig  <martin@ximian.com>
215
216         * mono-debug-debugger.c (write_type): If we're an enum and the
217         builtin types have already been initialized, call mono_class_init().
218
219 2004-12-11  Martin Baulig  <martin@ximian.com>
220
221         * metadata.c (mono_metadata_load_generic_params): Added
222         `MonoGenericContainer *parent_container' argument; automatically
223         compute `container->is_method'; pass the correct owner to
224         get_constraints().      
225
226         * reflection.c (compare_genericparam): Sort the GenericParam table
227         according to increasing owners. 
228
229 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
230
231         * profiler.c: allow disabling the default profiler.
232
233 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
234
235         * decimal.c, icall.c: allow disabling System.Decimal support.
236
237 2004-12-09  Marek Safar <marek.safar@seznam.cz>
238
239         * reflection.c: Add support for null attribute arguments.
240
241 2004-12-09  Martin Baulig  <martin@ximian.com>
242
243         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
244         names to get rid of compiler warnings.
245
246 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
247
248         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
249         mono_marshal_load_type_info (). Fixes #69625.
250         (mono_marshal_get_ptr_to_struct): Likewise.
251
252 2004-12-08  Martin Baulig  <martin@ximian.com>
253
254         * mono-debug.h: Bumped version number to 47.
255
256         * mono-debug-debugger.c
257         (mono_debugger_event_handler, mono_debugger_event): Take two
258         guint64 arguments insteed of a gpointer and a guint32.  
259
260 2004-12-08  Martin Baulig  <martin@ximian.com>
261
262         * debug-mono-symfile.h
263         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
264         `address' to `native_offset'.
265
266 2004-12-08  Martin Baulig  <martin@ximian.com>
267
268         * class.c (mono_class_create_from_typespec): Only inflate if we
269         either have `context->gclass' or `context->gmethod'.
270
271 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
272
273         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
274
275         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
276
277         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
278
279         * reflection.c (mono_assembly_get_object): Remove the workaround put
280         in for the release.
281         
282         * appdomain.c: Use the corlib_internal field from MonoAssembly.
283
284         * appdomain.c: Bump corlib version.
285
286         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
287         be visible in other appdomains.
288
289 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
290
291         * threads.c: Interlocked inc and dec for longs were messed up,
292         use a KISS based impl for this. Fixes 70234
293
294 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
295
296         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
297
298 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
299
300         * icall.c: fix to follow policy not to allow struct
301         arguments in icalls.
302
303 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
304
305         * process.c: make the patch that handles spaces in file paths work
306         on mono/windows too.
307
308 2004-12-06  Martin Baulig  <martin@ximian.com>
309
310         * class.c (mono_class_create_generic): Call
311         mono_class_setup_supertypes() if we're dynamic.
312         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
313
314 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
315
316         * object-internals.h: Add new fields to MonoThread.
317
318         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
319
320         * icall.c threads-types.h threads.c: Add new icalls.
321
322         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
323
324         * object-internals.h (MonoReflectionAssembly): Sync object layout with
325         managed side.
326
327         * appdomain.c: Bump corlib version.
328
329         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
330         internal assemblies. Fixes #69181.
331
332 2004-12-05  Martin Baulig  <martin@ximian.com>
333
334         * class.c (mono_class_inflate_generic_signature): Make this a
335         no-op if `context' is NULL or we don't have any type parameters;
336         also copy `sentinelpos'.        
337
338 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
339
340         * image.c: Add unbox_wrapper_cache.
341
342         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
343
344         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
345         function generator.
346         
347         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
348         Fixes #70173.
349
350         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
351         
352 2004-12-04  Martin Baulig  <martin@ximian.com>
353
354         * loader.c (mono_method_get_signature_full): New public function;
355         like mono_method_get_signature(), but with an additional
356         `MonoGenericContext *' argument.
357
358         * class.c (mono_class_inflate_generic_signature): Formerly known
359         as inflate_generic_signature(); make this public.
360
361 2004-12-04  Martin Baulig  <martin@ximian.com>
362
363         * metadata.c
364         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
365         instead of a `MonoGenericContainer *'.  
366         (mono_metadata_parse_array_full): Likewise.
367         (mono_metadata_parse_signature_full): Likewise.
368         (mono_metadata_parse_method_signature_full): Likewise.
369         (mono_metadata_parse_generic_inst): Likewise.
370         (mono_metadata_parse_generic_param): Likewise.
371         (mono_metadata_parse_mh_full): Likewise.
372         (mono_type_create_from_typespec_full): Likewise.
373
374 2004-12-03  Martin Baulig  <martin@ximian.com>
375
376         * class-internals.h (MonoGenericContainer): Replaced the
377         `MonoGenericContext * pointer with a `MonoGenericContext'
378         structure and made it the first element.
379
380 2004-12-03  Martin Baulig  <martin@ximian.com>
381
382         * class.c
383         (inflate_generic_type): Set the `context->container' when creating
384         a new MonoGenericContext.
385         (mono_class_inflate_generic_method): Likewise.
386         (mono_class_create_from_typespec): Just use `context->container'
387         to get the container.
388
389         * loader.c (method_from_methodspec): Set `context->parent' from
390         `context->container' - and if that's a method container, use its
391         parent.  Also set the `context->container' when creating a new
392         MonoGenericContext.
393         (mono_get_method_from_token): Use just `context->container' to get
394         the container.
395
396         * metadata.c (do_mono_metadata_parse_generic_class): Also set
397         `gclass->context->container'.
398
399         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
400         the `context->container' when creating a new MonoGenericContext.
401
402 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
403
404         * reflection.c (compare_genericparam): Sort params with identical
405         owner by their number. Fixes gen-111 on sparc.
406
407 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
408
409         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
410         around the domain changes.
411
412         * appdomain.c (mono_domain_unload): Handle the case when the thread
413         calling Unload is itself being aborted during unloading. Fixes #70022.
414
415         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
416
417         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
418         checkpoint_func as an icall so it gets a wrapper.
419         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
420         in the cross-appdomain wrappers too.
421
422         * threads.c (mono_thread_has_appdomain_ref): Make this public.
423
424         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
425
426         * reflection.c: Fix some memory leaks.
427         
428 2004-12-02  Martin Baulig  <martin@ximian.com>
429
430         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
431
432         * metadata.c (generic_class_cache): New static hashtable.
433         (mono_metadata_lookup_generic_class): New public method.
434
435 2004-12-02  Martin Baulig  <martin@ximian.com>
436
437         * class.c (mono_class_create_from_typedef): Call
438         mono_class_setup_parent() and mono_class_create_mono_type() before
439         parsing the interfaces.
440
441 2004-12-02  Martin Baulig  <martin@ximian.com>
442
443         * metadata.c (generic_inst_cache): New static hashtable.
444         (mono_metadata_lookup_generic_inst): New public function.
445         (mono_metadata_inflate_generic_inst): New public function.
446         (mono_metadata_parse_generic_inst): New public function.
447         (do_mono_metadata_parse_generic_class): Use the new
448         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
449         since this'll also use the cache.
450
451         * reflection.c (mono_reflection_bind_generic_method_parameters):
452         Use mono_metadata_lookup_generic_inst() to use the new cache.
453
454         * class.c (inflate_mono_type): Use
455         mono_metadata_inflate_generic_inst() to inflate a generic
456         instance; this'll also use the new cache.
457
458         * loader.c (method_from_methodspec): Use
459         mono_metadata_parse_generic_inst() and
460         mono_metadata_inflate_generic_inst() rather than parsing it
461         manually, so we can use the new cache.
462
463 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
464
465         * threads.c (wait_for_tids): Do not incorrectly free threads when 
466         the wait times out.
467
468 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
469
470         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
471         iter->args based on whether parameters are passed in registers (i.e.
472         MONO_ARCH_REGPARMS is defined)
473
474 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
475
476         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
477         the exception message. Fixes #70070.
478         (method_from_methodspec): Fix warnings.
479
480 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
481
482         * process.c: (complete_path) return the path quoted
483
484 2004-12-01  Martin Baulig  <martin@ximian.com>
485
486         * class-internals.h (MonoGenericInst): New structure.
487         (MonoGenericClass): Replaced `type_argc', `type_argv' and
488         `is_open' with `MonoGenericInst *inst'.
489         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
490         `is_open' with `MonoGenericInst *inst'.
491
492 2004-11-30  Martin Baulig  <martin@ximian.com>
493
494         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
495
496         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
497         to `generic_class_cache'.
498
499         * metadata.c
500         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
501         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
502         (mono_generic_inst_is_valuetype): Renamed to
503         mono_generic_class_is_valuetype().
504
505         * class-internals.h
506         (MonoGenericInst): Renamed to MonoGenericClass.
507         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
508         (MonoClass): Renamed `generic_inst' to `generic_class'.
509         (MonoGenericContext): Renamed `ginst' to `gclass'.
510
511         * object-internals.h
512         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
513
514         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
515         mono_reflection_generic_class_initialize().
516
517         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
518         now known as "System.Reflection.MonoGenericClass".
519         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
520
521 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
522
523         * class-internals.h: Added a flag field to MonoClass to cache the
524         declarative security attributes actions associated with the class.
525         * domain-internals.h: Added booleans to MonoJitInfo to cache the
526         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
527         applicable to the JITted method.
528         * reflection.c|h: Added functions to extract (as flags) which security
529         actions are available (declaratively) for a method, class or assembly.
530         * metadata.c|h: Added functions to search the declarative security
531         table in the metadata.
532         
533 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
534
535         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
536         EXPORTEDTYPES are already in the class name cache, so there is no
537         need to add extra code here to look at them. Just removes a bit of
538         cruft.
539
540         (ves_icall_System_Environment_get_TickCount): No need for #if
541         WINDOWS. We already have the code in io-layer.
542
543 2004-11-28  Martin Baulig  <martin@ximian.com>
544
545         * loader.c
546         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
547         Fixes gen-112.cs.
548
549 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
550
551         * assembly.c (do_mono_assembly_open): Instead of having a
552         conditional WITH_BUNDLE, incorporate support for bundles here, by
553         having a global `bundles' variable holding a pointer to the actual
554         bundles. 
555
556         (mono_register_bundled_assemblies): New API call used by the
557         bundle code. 
558
559         See mkbundle.1 for details.
560         
561 2004-11-27  Martin Baulig  <martin@ximian.com>
562
563         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
564         the vtable for generic methods.
565
566 2004-11-26  Martin Baulig  <martin@ximian.com>
567
568         * metadata.c
569         (mono_metadata_generic_method_hash): New public function.
570         (mono_metadata_generic_method_equal): Likewise.
571
572         * class-internals.h
573         (MonoGenericContainer): Added `GHashTable *method_hash'.
574
575         * reflection.c (ReflectionMethodBuilder): Added
576         `MonoGenericContainer *generic_container'.
577         (reflection_methodbuilder_to_mono_method): Don't create a new
578         MonoGenericContainer each time we're called.
579         (mono_reflection_bind_generic_method_parameters): Use
580         `container->method_hash' to cache the results so we don't create a
581         different method if we're called several times with the same
582         arguments.
583
584         * loader.c (method_from_methodspec): Use the new
585         `container->method_hash' here, too.
586
587 2004-11-26  Martin Baulig  <martin@ximian.com>
588
589         * class.c (inflate_generic_signature): Correctly compute
590         `res->has_type_parameters'.
591         (mono_class_vtable): Use the `has_type_parameters' flag to
592         determine whether we're a generic method.
593
594         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
595
596 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
597
598         * object.c (mono_runtime_run_main): Fix a small memory leak.
599
600 2004-11-25  Martin Baulig  <martin@ximian.com>
601
602         * class.c (set_generic_param_owner): Fixed the loop.
603
604 2004-11-25  Martin Baulig  <martin@ximian.com>
605
606         * object.c (mono_class_vtable): Don't create any JIT wrappers for
607         generic methods.
608
609 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
610
611         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
612         names. Fixes #69787.
613
614 2004-11-24  Martin Baulig  <martin@ximian.com>
615
616         * class.c (mono_class_create_generic_2): If we don't have a
617         `ginst->parent', inflate `gklass->parent' to get our parent.
618
619 2004-11-24  Martin Baulig  <martin@ximian.com>
620
621         * reflection.c (compare_genericparam): Correctly sort the
622         GenericParam table; fixes #69779.
623
624 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
625
626         * reflection.c: When writing a PE file, don't create a huge
627         buffer in memory. Just write the arrays we have to the file.
628         This reduces memory usage.
629
630         * metadata-internals.h: MonoDynamicStream pefile is no longer used
631         globally.
632
633 2004-11-17  Martin Baulig  <martin@ximian.com>
634
635         * class.c (mono_class_init): Don't setup `class->parent' for
636         dynamic instances; moved this to mono_class_generic_2().
637         (mono_class_create_generic): Also set `klass->inited' for dynamic
638         generic instances.
639         (mono_class_create_generic_2): Don't do anything for dynamic
640         generic instances.  Set `klass->parent' here and also call
641         mono_class_setup_parent() here. 
642
643         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
644         `MonoType *parent' argument; set `ginst->parent' before calling
645         mono_class_create_generic_2(), so we set the correct parent.
646
647 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
648
649         * reflection.c: allow getting attributes from ModuleBuilder
650         (used by ikvm).
651
652 2004-11-17  Martin Baulig  <martin@ximian.com>
653
654         * class.c (mono_class_create_from_typedef): If a type parameter is
655         inherited from an outer class, set its owner to that class.
656
657 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
658
659         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
660           for (int*) written size. This fixes bug #69592.
661
662 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
663
664         * icall.c: Added IsAuthenticodePresnet internal call.
665         * image.c|h: New function that check a MonoImage for an Authenticode
666         signature in the certificate PE data directory.
667         * security.c|h: New internal call to ask the runtime if an 
668         Authenticode signature seems referenced in the PE header.
669
670 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
671
672         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
673
674         * reflection.c (mono_image_create_pefile): Free the assembly streams
675         after writing out the assembly file.
676
677         * object.c (mono_runtime_run_main): Fix small memory leak.
678
679         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
680         property access modifiers. Fixes #69389.
681
682 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
683
684         * domain.c, object.c, object-internals.h, domain-internals.h,
685         object.h, marshal.c: keep dynamic code info per domain.
686
687 2004-11-15  Martin Baulig  <martin@ximian.com>
688
689         * class.c (mono_type_get_name_recurse): Put type arguments in
690         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
691         see bug #68387.
692
693 2004-11-15  Martin Baulig  <martin@ximian.com>
694
695         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
696         (mono_class_setup_vtable): When computing `the_cname' for a
697         generic instance, don't include the namespace since we'd otherwise
698         add it twice.
699
700 2004-11-15  Martin Baulig  <martin@ximian.com>
701
702         * class.c (mono_class_create_generic): Changed return type to void.
703         (mono_class_create_generic_2): New public function; setup
704         `class->method', `class->field' and `class->interfaces' here
705         instead of in mono_class_init().
706
707         * class.h (mono_class_create_generic): Moved to class-internals.h.
708
709 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
710
711         * reflection.c (mono_image_create_pefile): take a file HANDLE.
712         rather than writing to memory, write to this file. Right now,
713         we are just writting into a buffer, and copying that. However
714         we can avoid the buffer later.
715
716         (mono_dynamic_stream_reset): new function
717
718         * icall.c, object-internals.h: update for the above.
719
720 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
721
722         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
723         have been using gc'd memory. First it is slower, unlikely
724         the comment in the source code said, secondly, it increases
725         our footprint to do it in the gc.
726
727         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
728         the method so that it does not have to copy to managed code.
729
730 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
731
732         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
733
734 2004-11-12  Martin Baulig  <martin@localhost>
735
736         * reflection.c (mono_image_create_token): Allow generic method
737         definitions here, since they may appear in an `.override'; see
738         gen-98/gen-99 for an example.
739
740 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
741
742         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
743         #69365.
744
745         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
746         descriptive.
747
748 2004-11-11  Martin Baulig  <martin@ximian.com>
749
750         * class.c (mono_class_setup_vtable): In an explicit interface
751         implementation, the method name now includes the arity.
752
753 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
754
755         * object.c (mono_array_full_copy): Fix warning.
756
757 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
758
759         * appdomain.c: Removed look_for_method_by_name(). Use the new method
760         mono_class_get_method_from_name() instead.
761         
762         * class-internals.h: Added two new types of wrappers. 
763         Added MonoRemotingTarget enum. Added new trampoline function type, which
764         takes an additional MonoRemotingTarget value as parameter, so it is
765         possible to request a trampoline for a specific target.
766         
767         * class.c: Added new mono_class_get_method_from_name() method.
768         
769         * class.h: In MonoRemoteClass, we can have now to vtables, one for
770         general remoting sinks and one specific for cross domain calls.
771         
772         * debug-helpers.c: Added new wrapper names.
773         
774         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
775         of a remote class.
776         
777         * image.c: Porperly delete value objects form the remoting invoke hashtable.
778         
779         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
780         with several other methods (mono_marshal_get_xappdomain_dispatch,
781         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
782         and others) can generate a fast remoting wrapper for cross domain calls.
783         More information can be found in docs/remoting.
784         Other changes: Removed mono_find_method_by_name, and used
785         mono_class_get_method_from_name instead.
786         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
787         is stored in the remoting invoke hashtable.
788         
789         * marshal.h: published the new method for getting the xdomain wrapper,
790         and also added a method for getting the adequate wrapper for a given
791         method and target.
792         
793         * object-internals.h, object.c: Added a couple of methods for capying and
794         cloning arrays.
795         Modified mono_install_remoting_trampoline, which takes the new remoting
796         trampoline that has a remoting target as parameter.
797         mono_class_proxy_vtable now also takes a remoting target as parameter, and
798         will return the most suitable vtable for the target.
799         Added mono_remote_class_vtable, which returns the vtable of a remote class
800         (which can be the normal remoting vtable or the xdomain vtable).
801         
802         * threads.c: the xdomain invoke and dispatch wrappers must also be
803         protected against interruptions.
804
805 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
806
807         * icall.c: use memmove in BlockCopyInternal when the source and
808         destination arrays are the same.
809
810 2004-11-09  Martin Baulig  <martin@ximian.com>
811
812         * class-internals.h (MonoGenericContainer): Removed `method' and
813         `signature', replaced them with `is_method' and `is_signature'
814         flags.  Added `context'.
815
816         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
817         instead of a `MonoGenericContainer *'.
818
819         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
820         for dynamic type parameters.
821         (mono_metadata_load_generic_params): Setup `container->context'.
822
823         * reflection.c (mono_reflection_setup_generic_class): Setup
824         `tb->generic_container->context'.
825         (do_mono_reflection_bind_generic_parameters): Use
826         mono_class_inflate_generic_type() to correctly inflate types,
827         rather than using our own hack just for MONO_TYPE_VAR.
828
829 2004-11-09  Martin Baulig  <martin@ximian.com>
830
831         * class.c (mono_class_inflate_generic_method): Small fix; don't
832         crash here.
833
834         * icall.c
835         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
836         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
837         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
838         (ves_icall_Type_BindGenericParameters): Likewise.
839         (ves_icall_Type_get_IsGenericInstance): Likewise.
840         (ves_icall_Type_GetGenericParameterPosition): Likewise.
841         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
842         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
843         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
844
845 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
846
847         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
848         assembly versions and public key tokens. Fixes #69113.
849
850 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
851
852         * metadata.c: fix bug introduced with the type cache changes
853         on 2004-11-06.
854
855 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
856
857         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
858         the MonoClass pointer instead of the token in exception clauses.
859         * reflection.c: updates for the above and make the code not depend
860         on the structure of MonoExceptionClause.
861
862 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
863
864         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
865         Add support for dynamic assemblies. Fixes #69114.
866
867         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
868
869 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
870
871         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
872         since most only those methods use it. the code member of
873         MonoMethodPInvoke was dead, so that can be removed too. Also,
874         remove inline_count (again, not used), and move slot so that it
875         can share bits with some other flags. This saves 8 bytes in the
876         structure and gives us about 50 kb back for mcs helloworld.cs
877
878         * *.[ch]: Do naming changes for the above.
879
880         * loader.c (mono_method_get_header): Lazily init the header
881         on first access.
882         (mono_get_method_from_token): don't init the header here
883         (mono_free_method): the header may never be allocated
884
885         Overall, this saves 150 kb of unmanaged allocations
886         for mcs helloworld.cs. That accounts for 10% of the unmanaged
887         memory at runtime.
888         
889         * loader.c, loader.h (mono_method_get_header): new accessor.
890
891         * *.[ch]: use the above method. Prepares us to lazily load
892         the header.
893
894         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
895         three warnings, which are actual bugs (see 69206).
896
897         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
898         unused. Saves a cool 4 bytes / method.
899
900 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
901
902         * metadata.c (builtin_types): Add types for System.Object here.
903         (mono_metadata_parse_type_full): Cache MonoType*'s that are
904         for a class or valuetype from klass->this_arg or klass->byval_arg.
905
906         On mcs for a hello world, this gets us down from 21836 MonoType's
907         to 14560.
908
909         (mono_metadata_free_type): Account for the above change.
910
911 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
912
913         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
914         exception instead of asserting if name is null.
915         (ves_icall_System_AppDomain_GetData): Ditto.
916
917 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
918
919         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
920         EnumBuilder.
921
922         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
923         Return NULL when the domain does not have entry_assembly set.
924
925         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
926         Add a 'resource_modules' argument.
927         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
928
929         * reflection.c (mono_reflection_create_runtime_class): Move setting
930         of wastypebuilder here, so mono_get_type_object () returns a MonoType
931         for enums too.
932
933         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
934         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
935         Throw an ArgumentNullException if 'ptr' is null.
936
937         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
938         assemblies here. Fixes #69020.
939
940 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
941
942         * reflection.c (build_compressed_metadata): Fix the previous patch for
943         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
944         the stack.
945
946 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
947
948         * assembly.c (mono_assembly_names_equal): Allow a match if one of
949         the cultures is false. Fixes #69090.
950
951         * reflection.c (build_compressed_metadata): Fix invalid memory read 
952         detected by valgrind.
953         
954         * reflection.c (mono_reflection_get_type): Avoid triggering a 
955         TypeResolve multiple times for the same type. Fixes #65577.
956
957 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
958
959         * marshal.c: Avoid using ldftn to call managed functions. It is
960         much slower than just a call.
961
962         * reflection.c (mono_module_get_object): free the basename we
963         allocate here from glib.
964         
965         * reflection.c (ensure_runtime_vtable): make sure to free
966         overrides.  Also, we were allocating an array of MonoMethod not an
967         array of MonoMethod*.
968
969         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
970
971         * image.c (mono_image_close): free image->guid here.
972
973 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
974
975         * reflection.c: Fix some spec conformance issues with the PE file
976         structures so mcs compiled apps run on the Net 2.0 beta.
977
978 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
979
980         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
981         Implement this. Fixes #67264.
982
983         * debug-helpers.h debug-helpers.c marshal.c: Move 
984         mono_find_method_by_name to debug-helpers.c.
985
986 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
987
988         * object.c (mono_release_type_locks): type_initialization_hash is
989         a GHashTable.
990
991         * reflection.c object.c object-internals.h: Fix warnings.
992
993         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
994         without accessors. Fixes #61561.
995
996         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
997         application base from the root domain if not set. Fixes #65641.
998         (mono_runtime_init): Fix warning.
999
1000 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1001
1002         * appdomain.c: call mono_thread_pool_init.
1003         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1004         of worker threads based on the number of CPUs and the environment
1005         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1006         for non-windows (windows) systems.
1007
1008 2004-10-27  Chris Toshok  <toshok@ximian.com>
1009
1010         * mono-debug-debugger.c (write_class): don't call mono_class_init
1011         here, as even with the check for (!klass->init_pending), we get
1012         into a situation where we're hitting cycles in class
1013         initialization.  Fixes #68816.
1014
1015 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1016
1017         * image.c: Avoid overwriting values in the loaded_images_hash when an
1018         assembly is loaded multiple times. Fixes #61152.
1019
1020         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1021         so multiple satellite assemblies for the same name can be loaded.
1022         Fixes #68259.
1023
1024         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1025         not NULL.
1026
1027         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1028         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1029
1030         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1031         pending finalizers are not invoked after the appdomain has been 
1032         unloaded. Fixes #67862.
1033
1034 2004-10-22  Martin Baulig  <martin@ximian.com>
1035
1036         * mono-debug-debugger.c
1037         (mono_debugger_runtime_invoke): Don't box valuetypes.
1038
1039 2004-10-22  Chris Toshok  <toshok@ximian.com>
1040
1041         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1042         don't hide private methods.
1043
1044 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1045
1046         * icall.c: Allows the runtime to "share" (when known) the public key
1047         token of an assembly. This avoid the need to recalculate the token 
1048         (from the public key) in managed code.
1049
1050 2004-10-21  Chris Toshok  <toshok@ximian.com>
1051
1052         * debug-helpers.c (append_class_name): argh, revert last patch.
1053         
1054 2004-10-21  Chris Toshok  <toshok@ximian.com>
1055
1056         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1057         not '/', so that it matches what the debugger uses to look up
1058         methods.
1059
1060 2004-10-21  Martin Baulig  <martin@ximian.com>
1061
1062         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1063         public method; this is called each time an exception is thrown and
1064         allows the debugger to use exception catch points.
1065
1066 2004-10-21  Martin Baulig  <martin@ximian.com>
1067
1068         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1069         the stack pointer and the exception object in some struct and pass
1070         that to the debugger.
1071
1072 2004-10-21  Chris Toshok  <toshok@ximian.com>
1073
1074         * mono-debug-debugger.c (do_write_class): add instance/static
1075         event support.  We don't expose "raise" or "other" yet.
1076         (event_is_static): new method.
1077
1078 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1079
1080         * mono-debug-debugger.c
1081         (mono_debugger_handle_exception): Remove
1082         bogus return value for fussy compilers.
1083
1084 2004-10-20  Martin Baulig  <martin@ximian.com>
1085
1086         * mono-debug-debugger.c
1087         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1088         (mono_debugger_handled_exception): Likewise.
1089
1090 2004-10-20  Martin Baulig  <martin@ximian.com>
1091
1092         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1093         MONO_DEBUGGER_EVENT_EXCEPTION.
1094
1095         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1096         public function to send the debugger a notification for an
1097         exception and inform it about a catch/finally clause.
1098
1099 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1100
1101         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1102         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1103         fix 2.95 build. 
1104
1105         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1106
1107 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1108
1109         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1110         marshalled as [In,Out]. Fixes #58325.
1111
1112 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1113
1114         * reflection.c (mono_method_body_get_object): Implement some fields.
1115
1116 2004-10-12  Martin Baulig  <martin@ximian.com>
1117
1118         * reflection.c (mono_reflection_bind_generic_parameters): Small
1119         fix, correctly retrieve our parent from a generic instance.
1120
1121 2004-10-12  Martin Baulig  <martin@ximian.com>
1122
1123         * metadata.c (mono_metadata_generic_param_equal): We always have
1124         an owner.
1125
1126         * class.c
1127         (mono_class_from_generic_parameter): We need to have an owner.
1128         (my_mono_class_from_generic_parameter): Likewise.
1129
1130         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1131         mono_reflection_create_generic_class() and added a new
1132         mono_reflection_setup_generic_class().  
1133         (mono_reflection_initialize_generic_param): If we're a nested
1134         generic type and inherited from the containing class, set our
1135         owner to the outer class.
1136
1137 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1138
1139         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1140
1141         * reflection.c (mono_method_body_get_object): New function to create
1142         a MethodBody object.
1143
1144         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1145
1146 2004-10-11  Martin Baulig  <martin@ximian.com>
1147
1148         * metadata.c (_mono_metadata_type_equal): Renamed to
1149         do_mono_metadata_type_equal() and made static.
1150
1151 2004-10-11  Martin Baulig  <martin@ximian.com>
1152
1153         * appdomain.c: Bump corlib version number to 28.
1154
1155 2004-10-10  Martin Baulig  <martin@ximian.com>
1156
1157         * class-internals.h
1158         (MonoGenericInst): Added `MonoGenericContainer *container'.
1159         (MonoGenericMethod): Likewise.
1160         (MonoGenericContext): Likewise.
1161         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1162
1163         * metadata.c
1164         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1165         (do_mono_metadata_parse_generic_inst): Likewise.
1166         (mono_metadata_parse_type_full): New public method.  This is the actual
1167         mono_metadata_parse_type() implementation - with an additional
1168         `MonoGenericContainer *' argument.
1169         (mono_metadata_parse_array_full): Likewise.
1170         (mono_metadata_parse_signature_full): Likewise.
1171         (mono_metadata_parse_method_signature_full): Likewise.
1172         (mono_metadata_parse_mh_full): Likewise.
1173         (mono_type_create_from_typespec): Likewise.
1174         (mono_metadata_interfaces_from_typedef_full): New public method;
1175         this is similar to the other _full() methods, but we take a
1176         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1177         (mono_metadata_parse_generic_param): Take an additional
1178         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1179         from that container.
1180         (mono_metadata_generic_param_equal): New static method to compare
1181         two type parameters.
1182         (_mono_metadata_type_equal): New static method; takes an
1183         additional `gboolean signature_only' argument - if true, we don't
1184         compare the owners of generic parameters.
1185         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1186         with a TRUE argument - do a signature-only comparision.
1187
1188         * loader.c: Use the new _full() methods and pass the
1189         MonoGenericContainer to them.
1190
1191         * object-internals.h (MonoReflectionTypeBuilder): Added
1192         `MonoGenericContainer *generic_container' field.
1193         (MonoReflectionMethodBuilder): Likewise.
1194
1195 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1196
1197         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1198         case initial images of dynamic assemblies.
1199
1200         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1201
1202         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1203
1204         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1205         length of event->other array.
1206         (typebuilder_setup_events): Ditto.
1207
1208         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1209         'assembly_by_name' and add an 'assemblies' list.
1210
1211         * assembly.h assembly.c: Add a new search hook for determining whenever
1212         an assembly is already loaded. Use this instead of searching in the
1213         loaded_assemblies list.
1214
1215         * domain.c appdomain.c: Implement the new search hook so loaded 
1216         assemblies are now scoped by appdomain. Fixes #67727.
1217
1218 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1219
1220         * threads.c (mono_thread_attach): Initialize synch_lock field so
1221         mono_thread_detach works again.
1222
1223         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1224         'lib' too. Fixes #63130.
1225
1226 2004-10-06  Jackson Harper  <jackson@ximian.com>
1227
1228         * culture-info-tables.h: regenerated.
1229
1230 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1231
1232         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1233         implemented by other interfaces in the result. Fixes #65764.
1234         
1235         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1236         Handle unloadable modules without crashing.
1237
1238         * image.c (load_modules): Revert the previous patch since modules must
1239         have a fixed index inside the array.
1240         
1241         * image.c (load_modules): Don't include native modules in the modules
1242         array.
1243
1244 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1245
1246         * reflection.h: Add param_defaults field.
1247
1248         * reflection.c: Add support for parameter defaults in dynamic methods.
1249         Fixes #64595.
1250
1251         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1252         an empty string when a type has no namespace. Fixes #64230.
1253
1254 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1255
1256         * tabledefs.h: Added "internal" security actions to support non-CAS
1257         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1258         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1259
1260 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1261
1262         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1263         constructor of abstract class. Fixes #61689.
1264
1265 2004-10-04  Martin Baulig  <martin@ximian.com>
1266
1267         * class-internals.h (MonoGenericContainer): New type.
1268         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1269         `MonoGenericContainer *generic_container'.
1270         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1271         `MonoGenericContainer *generic_container'.
1272
1273         * metadata.c (mono_metadata_load_generic_params): Return a
1274         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1275         removed the `num' argument.
1276
1277 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1278
1279         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1280         for dynamic images.
1281
1282         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1283         machine fields.
1284
1285         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1286
1287         * reflection.c: Save pe_kind and machine values into the generated
1288         image file.
1289
1290         * appdomain.c: Bump corlib version number.
1291
1292         * object-internals.h: Reorganize layout of LocalBuilder.
1293
1294         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1295         New helper function.
1296
1297         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1298         created MonoType for dynamic types. Fixes #66180.
1299
1300 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1301
1302         * threadpool.c: the ares hashtable needs a critical section around it.
1303         this prevents some nasty segfaults
1304
1305 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1306
1307         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1308         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1309         bug 67324).
1310         
1311 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1312
1313         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1314         
1315 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1316
1317         * image.c: Always canonicalize image file names, to avoid loading
1318         the same assembly twice when referenced using a relative path.
1319
1320 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1321
1322         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1323
1324         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1325
1326         * marshal.c: Fix warnings.
1327
1328 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1329
1330         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1331         attempting to marshal the delegate_trampoline as the method_addr.
1332         This patch has a static hashtable of marshalled delegates so that 
1333         we can map delegate_trampoline addresses back to delegates.  This
1334         allows a delegate passed to managed code to be passed back into native
1335         code.  Fixes #67039
1336
1337 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1338
1339         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1340
1341         * reflection.c (method_encode_code): Align method headers properly.
1342         Fixes #66025.
1343
1344 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1345
1346         * marshal.c: In the runtime invoke wrapper, reset the abort
1347         exception if it is cached. This avoids the automatic rethrowal of 
1348         the exception after the catch of the wrapper. Also check for pending
1349         interruptions before calling the managed method. This is done using
1350         the new method emit_thread_force_interrupt_checkpoint, since the
1351         normal checkpoint method is ignored when running the invoke wrapper.
1352         * object.c: If the abort exception is rethrown, set the abort_exc
1353         field of the thread, so it will be rethrown aftere every catch.
1354         * threadpool.c: Only run an interruption checkpoint if what has been
1355         requested is a stop of the thread (aborts will be ignored).
1356         * threads.c: By default, a thread will now never be interrumped while
1357         running the runtime invoke wrapper (this ensures that runtime_invoke
1358         will always return to the caller if an exception pointer is provided).
1359         There is a new special method mono_thread_force_interruption_checkpoint()
1360         to force an interruption checkpoint even if running a protected
1361         wrapper, which is used by the same runtime invoke wrapper to do a check
1362         at a safe point.
1363
1364 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1365
1366         * object.c, object-internals.h: Implemented mono_release_type_locks,
1367         which releases the cctor locks held by a thread.
1368         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1369         by a thread. Added mono_thread_exit() method to be used to safely stop
1370         a thread.
1371
1372 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1373
1374         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1375         Move null check before dereference.  Avoid indexing beyond the end
1376         of the 'modules' array.
1377
1378 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1379
1380         * metadata-internals.h (MonoImage): Add module_count field.
1381         * image.c (load_modules): Set image->module_count.
1382         (mono_image_load_file_for_image): Use image->module_count.
1383         * reflection.c (mono_image_load_module): Append to image->modules array 
1384         of dynamic assembly.
1385         (mono_module_get_object): Fix loop to actually increment index.
1386         Use image->module_count.
1387         * assembly.c (mono_assembly_load_references): Use image->module_count.
1388         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1389         Likewise.
1390
1391 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1392
1393         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1394         Avoid assert on generic types.
1395
1396 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1397
1398         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1399
1400         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1401
1402         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1403         function to convert a MarshalSpec structure to its managed counterpart.
1404
1405         * reflection.c: Fix warnings.
1406         
1407         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1408         field.
1409
1410         * icall.c (mono_create_icall_signature): Fix build.
1411
1412 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1413
1414         * icall.c: Add MakePointType icall.
1415
1416         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1417         warnings.
1418
1419 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1420
1421         * threadpool.c: reuse allocated slots in the queue.
1422
1423 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1424
1425         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1426
1427         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1428
1429         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1430         previous change.
1431
1432         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1433         ThrowOnUnmappableChar.
1434
1435         * icall.c (ves_icall_Type_GetPacking): New icall.
1436
1437 2004-09-24  Martin Baulig  <martin@ximian.com>
1438
1439         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1440
1441 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1442
1443         * appdomain.c:
1444         (mono_domain_set): allow setting a domain that is being unloaded.
1445         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1446         being unloaded.
1447
1448 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1449
1450         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1451         the GetCustomAttributes icall.
1452
1453 2004-09-23  Martin Baulig  <martin@ximian.com>
1454
1455         * object-internals.h (MonoReflectionGenericParam): Replaced
1456         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1457         with `guint32 attrs'.
1458
1459 2004-09-23  Martin Baulig  <martin@ximian.com>
1460
1461         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1462
1463 2004-09-23  Martin Baulig  <martin@ximian.com>
1464
1465         * object-internals.h (GenericParameterAttributes): New enum.
1466
1467 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1468
1469         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1470         
1471         * class.c (init_events): Fill out event->other field.
1472
1473         * class.c: Fix warnings.
1474
1475         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1476
1477 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1478
1479         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1480         walk which doesn't supply the IL offset.
1481
1482 2004-09-22  Martin Baulig  <martin@ximian.com>
1483
1484         * reflection.c (mono_reflection_setup_internal_class): If we're
1485         System.ValueType, System.Object or System.Enum, set
1486         `klass->instance_size' and create the vtable.
1487         (mono_reflection_create_internal_class): If we're an enum type,
1488         get the base class from our current corlib.
1489
1490 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1491
1492         * reflection.h (MonoResolveTokenError): New type.
1493
1494         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1495         icall.
1496
1497         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1498
1499 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1500
1501         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1502         Support also calling constructors, but only for already allocated objects.
1503
1504 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1505
1506         * reflection.c (type_get_qualified_name): If the klass is null
1507         return the typename to avoid a NullRefEx.
1508         (encode_cattr_value): Get the qualified name of the boxed type,
1509         not the underlying enumtype.  Fixes #62984.
1510
1511 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1512
1513         * marshal.c: Fix problems with previous checkin.
1514
1515 2004-09-21    <vargaz@freemail.hu>
1516
1517         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1518         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1519
1520         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1521
1522 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1523
1524         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1525         should only return a type for pointers, arrays, and passbyref types.
1526         Fixes bug #63841.
1527
1528 2004-09-21  Martin Baulig  <martin@ximian.com>
1529
1530         * domain.c (mono_debugger_check_runtime_version): New public
1531         function.
1532
1533         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1534
1535 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1536
1537         * reflection.c: Added missing sort to the declarative security 
1538         attributes table. MS implementation stops seeing the attributes if the
1539         token number regress in the table (as shown by ildasm and permview).
1540
1541 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1542
1543         * object-internals.h (MonoReflectionModule): Add 'token' field.
1544         
1545         * reflection.c (mono_reflection_get_token): Add support for Module
1546         and Assembly.
1547         (mono_module_get_object): Set 'token' field.
1548         (mono_module_file_get_object): Set 'token' field.
1549
1550         * icall.c: Add new Assembly and Module icalls.
1551
1552         * appdomain.c: Bump corlib version.
1553
1554 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1555
1556         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1557         tokens of metadata objects.
1558
1559         * reflection.h reflection.c (mono_reflection_get_token): New function
1560         to obtain the token of a metadata object.
1561
1562         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1563
1564 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1565
1566         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1567         
1568         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1569
1570 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1571
1572         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1573         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1574         AssemblyBuilder to access the permissions set in the class lib.
1575         * reflection.c: Added security attributes encoding step in 
1576         mono_image_build_metadata.
1577         * tabledefs.h: Added new security actions defined in 2.0:
1578         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1579
1580 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1581
1582         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1583         macro parameter.
1584
1585 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1586  
1587         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1588           finalized. There where random SIGSEVs at program termination, when
1589           an object being finalized was trying to do a string comparison and
1590           the current culture was already finalized.
1591  
1592 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1593
1594         * threads.c: call thread_cleanup before finishing the thread if we get
1595         there.
1596
1597 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1598
1599         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1600         assemblies from the parent. Fixes #65665.
1601
1602 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1603
1604         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1605         modifiers.
1606
1607 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1608
1609         * reflection.h: add prototype for mono_get_dbnull_object
1610         * reflection.c: add prototypes for get_default_param_value_blobs 
1611         and mono_get_object_from_blob for fussier compilers
1612
1613 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1614  
1615         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1616         false deadlock checks in class initialization.
1617  
1618 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1619
1620         * image.c (mono_image_addref): Fix comment.
1621
1622         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1623         possible.
1624
1625 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1626
1627         * reflection.c (mono_param_get_objects): Modified to return
1628         ParameterInfo.DefaultValue object.
1629
1630         (get_default_param_value_blobs):
1631         (mono_get_object_from_blob):
1632         (mono_get_dbnull_object): New helper routines. 
1633
1634         * object.c (mono_get_constant_value_from_blob): New helper routine
1635         carved out from get_default_field_value ()
1636
1637         * object-internals.h (mono_get_constant_value_from_blob): Added
1638         function declaration.
1639
1640 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1641
1642         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1643         referenced assemblies. Fixes #62135.
1644
1645         * exception.h exception.c (mono_get_exception_file_not_found2): New
1646         helper function.
1647
1648 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1649
1650         * class.h class.c: Add mono_type_get_underlying_type ().
1651
1652 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1653
1654         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1655         Fix GetTypes() to support dynamically created assemblies.
1656
1657 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1658
1659         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1660         
1661         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1662         previous patch.
1663
1664         * reflection.h reflection.c loader.c: Allow dynamic construction of
1665         pinvoke methods. Fixes #65571.
1666         
1667         * reflection.c (mono_reflection_get_type): Revert previous change since
1668         it causes regressions.
1669
1670 2004-09-08  Martin Baulig  <martin@ximian.com>
1671
1672         * class.c (class_compute_field_layout): Don't call
1673         mono_class_layout_fields() for open generic instances.
1674
1675 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1676         * threads.c appdomain.c: fix typo in GC macro
1677
1678 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1679
1680         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1681         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1682
1683 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1684
1685         * image.c (mono_image_close): Applied patch from 
1686         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1687         assembly is loaded multiple times from data.
1688         
1689         * image.c (mono_image_open): Fix warning.
1690
1691 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1692
1693         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1694         once. Fixes #58334.
1695         
1696         * reflection.c (mono_reflection_create_runtime_class): Initialize
1697         klass->nested_classes. Fixes #61224.
1698
1699 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1700
1701         * threads.c: sched_yield() on exit, to allow threads to quit.
1702
1703 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1704
1705         * object.c (mono_unhandled_exception): Remove leftover debug code.
1706
1707 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1708
1709         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1710
1711 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1712
1713         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1714         
1715         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1716
1717 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1718
1719         * marshal.c (emit_marshal_array): Null terminate string arrays.
1720         
1721         * marshal.c (raise_auto_layout_exception): Fix warning.
1722
1723         * reflection.c (mono_param_get_objects): Initialize the default value
1724         with DBNull.Value, not null. Fixes #62123.
1725
1726 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1727
1728         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1729         throw an exception with a cute explanation.
1730
1731 2004-09-06  Dick Porter  <dick@ximian.com>
1732
1733         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1734         Close the new process's thread handle, as we don't use it.  The
1735         handle stays around forever otherwise.
1736
1737 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1738
1739         * object.c (arith_overflow): Fix warning.
1740
1741         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1742         calling conventions in method refs. Fixes #65352.
1743
1744         * reflection.c: Fix warnings.
1745
1746 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1747
1748         * icall.c: Add a new icall for Array.Clear
1749
1750 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1751
1752         * object.c: When allocating an array, we have to throw
1753         an overflow exception if any of the lengths are < 0.
1754
1755 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1756
1757         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1758         properly. Also move implementation of string array marshalling to 
1759         managed code. Fixes #42316.
1760
1761 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1762
1763         * assembly.c: provide more information when loading an assembly fails.
1764
1765 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1766
1767         * filewatcher.c: don't expect the development fam package to be
1768         installed.
1769
1770 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1771
1772         * marshal.c: Make a copy of the signature cookie since it will be
1773         freed by the caller.
1774         
1775         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1776
1777         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1778
1779         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1780         marshal specs.
1781
1782         * marshal.c: More refactoring.
1783         
1784         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1785         smaller functions.
1786
1787 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1788
1789         * object.c: In mono_message_invoke, fill the output parameter array after
1790           calling the managed method (it was done before the call). This fixes
1791           bug #59299.
1792
1793 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1794
1795         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1796         as well.
1797
1798 2004-09-02  Martin Baulig  <martin@ximian.com>
1799
1800         * class.c (mono_class_instance_size): Don't allow generic type
1801         definitions or open generic instances.
1802         (mono_class_array_element_size): If we're a value type, call
1803         mono_class_instance_size() on the original class.
1804
1805         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1806         handle generic instances.
1807
1808         * mono-debug-debugger.c (write_type): Handle generic instances
1809         like classes.
1810
1811 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1812
1813         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
1814         the allocation request fails. Fixes #65089.
1815
1816         * object.c (mono_runtime_free_method): Do not call mono_free_method.
1817         
1818         * object.c (mono_runtime_free_method): New function to free a dynamic
1819         method.
1820
1821         * marshal.c (mono_delegate_free_ftnptr): New function to free the
1822         delegate trampoline.
1823
1824         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
1825         with hasthis as dynamic,
1826
1827         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
1828
1829         * domain.c (mono_jit_info_table_remove): New function to remove an
1830         entry from the jit info table.
1831
1832         * class-internals.h (MonoMethod): Add 'dynamic' field.
1833
1834         * loader.c: Fix warnings.
1835
1836 2004-09-01  Martin Baulig  <martin@ximian.com>
1837
1838         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
1839         instead of mono_debugger_lock() because the latter one is a no-op
1840         unless running in the debugger.
1841
1842 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1843
1844         * class.c (class_compute_field_layout): Classes with auto-layout or
1845         reference fields are not blittable.
1846         
1847 2004-09-01  Dick Porter  <dick@ximian.com>
1848
1849         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
1850         mono_image_get_filename() to get the assembly location.
1851
1852         * icall.c:
1853         * metadata.h: Fix compile warnings
1854
1855 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1856
1857         * class.c (class_compute_field_layout): System.Object is blittable.
1858
1859         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
1860         as in/out. Fixes #59909.
1861
1862 2004-09-01  Martin Baulig  <martin@ximian.com>
1863
1864         * metadata.h (MONO_TYPE_ISREFERENCE): Call
1865         mono_metadata_generic_inst_is_valuetype() if we're a generic
1866         instance to check whether our underlying type is a reference type.
1867
1868 2004-09-01  Martin Baulig  <martin@ximian.com>
1869
1870         * metadata.c (mono_type_size): If we're a generic instance, call
1871         mono_class_value_size() for value types.
1872
1873 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
1874
1875         * marshal.c: Implement more custom marshalling functionality. Fixes
1876         #64915.
1877
1878 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1879
1880         * mono-debug.c, debug-mono-symfile.c: add some locking love.
1881
1882 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
1883
1884         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
1885
1886         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
1887
1888         * icall.c: Fix some warnings.
1889
1890         * threads.c (abort_appdomain_thread): Fix unref errors.
1891         (mono_thread_current): Fix THREAD_DEBUG define.
1892
1893 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
1894
1895         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
1896
1897         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
1898
1899 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
1900
1901         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
1902         string arrays.
1903
1904 2004-08-28  Martin Baulig  <martin@ximian.com>
1905
1906         * metadata.c
1907         (mono_metadata_generic_inst_is_valuetype): New public function.
1908
1909         * metadata.h (MONO_TYPE_ISSTRUCT): Call
1910         mono_metadata_generic_inst_is_valuetype() if we're a generic
1911         instance to check whether our underlying type is a valuetype.
1912
1913 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
1914
1915         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
1916         #63768.
1917
1918 2004-08-25  Martin Baulig  <martin@ximian.com>
1919
1920         * loader.c (mono_get_method_from_token): Abstract methods can also
1921         be generic and thus have type parameters.
1922
1923         * metadata-internals.h
1924         (MonoDynamicImage): Added `GPtrArray *gen_params'.
1925
1926         * reflection.c (mono_image_get_generic_param_info): Don't create a
1927         metadata row, just add an entry to the `gen_params' array.
1928         (build_compressed_metadata): Sort the `gen_params' array and then
1929         actually create the metadata.
1930
1931 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1932
1933         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
1934
1935 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
1936
1937         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
1938
1939 2004-08-24  Martin Baulig  <martin@ximian.com>
1940
1941         * class.cs (mono_class_is_subclass_of): Like an interface, a
1942         generic instance also derives from System.Object.
1943
1944 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
1945
1946         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
1947         custom modifiers to be in any order. Fixes #61990.
1948
1949 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
1950
1951         * object.c: Register mono_object_new_fast icall.
1952         
1953         * object.c (mono_class_get_allocation_ftn): Return to calling
1954         mono_object_new_fast, since it seems faster to compute the object 
1955         size in unmanaged code than passing it as a parameter.
1956
1957         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
1958
1959         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
1960         this function with Boehm as the oom handler, so we don't have to check
1961         the result of GC_malloc.
1962
1963         * object.c: Remove checks for oom.
1964
1965         * object.h object.c (mono_class_get_allocation_ftn): New function to
1966         return the icall which can be used to allocate an instance of a given
1967         class. 
1968
1969         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
1970
1971         * class-internals.h: Add 'enabled' field.
1972
1973 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
1974
1975         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
1976
1977 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
1978         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
1979         value 0x0010.
1980
1981 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
1982
1983         * appdomain.c: use the Tls function for appdomain too,
1984         at Zoltan's request. Actually return in mono_context_get
1985
1986         * appdomain.c, profiler.c, threads.c: use __thread
1987
1988 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
1989
1990         * appdomain.c threads.c: Call GC_CreateThread on windows.
1991
1992         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
1993         multiple libraries since this don't work on windows.
1994
1995 2004-08-18  Martin Baulig  <martin@ximian.com>
1996
1997         * class-internals.h
1998         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
1999         MonoMethodHeader.
2000
2001         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2002         MonoMethodNormal since we also need it for abstract and interface
2003         methods.
2004
2005         * reflection.c
2006         (build_compressed_metadata): Sort the GenericParam table.
2007         (mono_image_create_token): Added `gboolean create_methodspec'
2008         argument; this is false when generating a MethodImpl token.
2009         (reflection_methodbuilder_to_mono_method): Abstract and interface
2010         methods may also have generic parameters.
2011
2012 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2013
2014         * appdomain.c: thread local alloc
2015
2016 2004-08-17  Martin Baulig  <martin@ximian.com>
2017
2018         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2019
2020         * icall.c
2021         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2022         argument.
2023
2024         * class.c (mono_type_get_full_name): New public function.
2025         (mono_type_get_name): Don't include the type arguments.
2026
2027 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2028
2029         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2030         for inclusion into the mono executable.
2031
2032 2004-08-16  Martin Baulig  <martin@ximian.com>
2033
2034         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2035         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2036
2037 2004-08-14  Martin Baulig  <martin@ximian.com>
2038
2039         * class.c (dup_type): Also copy the `byref' field.
2040
2041 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2042
2043         * reflection.c (create_dynamic_mono_image): Revert the last change 
2044         since it breaks bootstrap.
2045
2046 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2047
2048         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2049
2050         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2051         not free them with g_free.
2052
2053 2004-08-11  Martin Baulig  <martin@ximian.com>
2054
2055         * reflection.c (mono_reflection_setup_internal_class): Also call
2056         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2057
2058 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2059
2060         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2061         called during default (first) AppDomain creation. Keep track of
2062         Evidence when loading assemblies.
2063
2064 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2065
2066         * opcodes.c, opcodes.h: reduce runtime relocations.
2067
2068 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2069
2070         * culture-info.h, locales.c: fixes and chages to sue the new
2071         optimized format of the locale data.
2072         * culture-info-tables.h: regenerated.
2073
2074 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2075         
2076         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2077
2078 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2079
2080         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2081         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2082         * domain-internals.h: icall declaration.
2083         * icall.c: icall registration.
2084         * object-internals.h: New fields in MonoAssembly for CAS.
2085
2086 2004-08-05  Duncan Mak  <duncan@ximian.com>
2087
2088         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2089         CEE_LDELEM_ANY.
2090
2091 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2092
2093         * reflection.c: fix to deal with object[] arrays in custom ctors
2094         (bug #62550).
2095
2096 2004-08-05  Martin Baulig  <martin@ximian.com>
2097
2098         * class.c (mono_class_array_element_size): Added support for
2099         generic instances and correctly handle "recursive" types.
2100
2101 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2102
2103         * assembly.c: Fix warnings.
2104
2105 2004-08-04  Martin Baulig  <martin@ximian.com>
2106
2107         * class.c
2108         (mono_type_get_name_recurse): Added `gboolean include_arity'
2109         argument specifying whether or not we should include the generic
2110         arity in the type name.
2111         (_mono_type_get_name): New static function.
2112         (mono_class_setup_vtable): If we're a generic instance, don't
2113         include the generic arity in the names of explicit method
2114         implementations.        
2115
2116 2004-08-03  Martin Baulig  <martin@ximian.com>
2117
2118         * class.c (mono_type_get_name_recurse): Enclose the generic type
2119         arguments in `<', '>'.
2120
2121 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2122
2123         * gc.c: make GC warning messages use the trace API, they are just
2124         noise to most of the users.
2125
2126 2004-08-03  Martin Baulig  <martin@ximian.com>
2127
2128         * debug-mono-symfile.c (read_string): Correctly read the string.
2129
2130 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2131
2132         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2133         
2134         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2135         icalls.
2136         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2137
2138 2004-07-30  Martin Baulig  <martin@ximian.com>
2139
2140         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2141         Reflect latest symbol writer changes.   
2142
2143 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2144
2145         * object.c: always create an object if null is passed
2146         to Invoke() where a valuetype is expected.
2147
2148 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2149
2150         * marshal.c (mono_marshal_init): make managed
2151         signatures match native ones better for 64bits.
2152
2153 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2154
2155         * appdomain.c: hack to build correctly the private bin path on windows.
2156         Fixes bug #61991.
2157
2158 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2159
2160         * assembly.c: Load mscorlib from the correct framework directory
2161           (mono/<version>/mscorlib.dll).
2162         * appdomain.h: Added prototypes for new functions.
2163         * internals.h: Added some prototypes.
2164         * domain.c: When initializing the runtime, get from the executable and
2165           the configuration files the runtime version that the app supports.
2166           Added support methods for reading app.exe.config. Added list of versions
2167           supported by the JIT. Added two new methods: mono_init_from_assembly,
2168           which initializes the runtime and determines the required version from
2169           the provided exe file, and mono_init_version, which initializes
2170           the runtime using the provided version.
2171         * icall.c: Get machine.config from version-specific directory.
2172         * reflection.c: When generating an image, embed the version number
2173           of the current runtime.
2174
2175 2004-07-28  Dick Porter  <dick@ximian.com>
2176
2177         * socket-io.c
2178         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2179         returned sockaddr size before creating the remote address object.
2180         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2181         61608.
2182
2183 2004-07-28  Dick Porter  <dick@ximian.com>
2184
2185         * locales.c (string_invariant_compare_char): Fix invariant char
2186         compares between upper and lower cases.  Fixes bug 61458.
2187
2188 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2189         
2190         * marshal.c: actually cache stelem.ref wrappers.
2191         
2192 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2193
2194         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2195         sections and remove the mono_cli_rva_map () function.
2196
2197 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2198
2199         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2200         by Geoff Norton (<gnorton@customerdna.com>).
2201
2202 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2203
2204         * class.c: fix class loads for pointer types (typeof(int) !=
2205         typeof(int*)).
2206
2207 2004-07-27  Martin Baulig  <martin@ximian.com>
2208
2209         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2210         reading the debugging information from an external ".mdb" file.
2211
2212 2004-07-24  Martin Baulig  <martin@ximian.com>
2213
2214         * reflection.c (mono_image_get_type_info): Only write a class
2215         layout entry if we actually have a size or a packing size.
2216
2217 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2218
2219         * reflection.c (type_get_fully_qualified_name): 
2220         insert cast to get type checking of ?: with non-gcc compilers
2221
2222 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2223
2224         * rand.c: use g_getenv for both lookups of
2225         MONO_EGD_SOCKET
2226
2227 2004-07-17  Martin Baulig  <martin@ximian.com>
2228
2229         * reflection.c (mono_reflection_bind_generic_method_parameters):
2230         Set `gmethod->reflection_info'.
2231
2232 2004-07-17  Martin Baulig  <martin@ximian.com>
2233
2234         * class.c (mono_class_create_from_typedef): Insert the newly
2235         created class into the hash table before computing the interfaces
2236         since we could be called recursively.
2237
2238 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2239
2240         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2241         function to implement stelem.ref in managed code
2242         * class-internals.h, debug-helpers.c: a new wrapper type
2243         for the above.
2244
2245 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2246
2247         * gc.c: allow GC handles to work even when no GC is compiled in.
2248         Fix part of bug #61134 (GetAddrOfPinnedObject).
2249
2250 2004-07-13  Peter Williams  <peter@newton.cx>
2251  
2252         * process.c (complete_path): Make sure we don't attempt to execute
2253         directories.
2254  
2255 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2256
2257         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2258           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2259           and will add/subtract the hour if needed
2260
2261 2004-07-12  Martin Baulig  <martin@ximian.com>
2262
2263         * reflection.c (mono_field_get_object): If we have
2264         `field->generic_info', take the attributes from
2265         `field->generic_info->generic_type'.    
2266
2267 2004-07-12  Martin Baulig  <martin@ximian.com>
2268
2269         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2270         This function must be called before initializing the runtime.
2271         (mono_debug_init_1): New function; call this after initializing
2272         the runtime, but before loading the assembly.  It tells the
2273         debugger to load corlib and the builtin types.
2274
2275         * mono-debug-debugger.c: Did some larger changes in the debugging
2276         code; support recursive class declarations, make sure we actually
2277         add all classes.
2278
2279 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2280
2281         * debug-helpers.c: undo my previous patch and fixed the real issue in
2282         ../mini/exceptions-x86.c
2283
2284 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2285
2286         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2287         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2288         called from other .cctors.
2289
2290 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2291
2292         * loader.c: Removed the mono_loader_wine_init hack now that we are
2293         doing a managed version of Windows.Forms.
2294
2295 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2296
2297         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2298         threadpool.c, threads.c: remove static data from rootset.
2299
2300 2004-07-09  Dick Porter  <dick@ximian.com>
2301
2302         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2303         Don't do any more processing if the matched length was 0.  It was
2304         increasing the size of the string before.  Fixes bug 61167.
2305
2306 2004-07-09  Dick Porter  <dick@ximian.com>
2307
2308         * socket-io.h:
2309         * socket-io.c
2310         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2311         Add support for SO_PEERCRED if its available.
2312
2313 2004-07-09  Peter Bartok <pbartok@novell.com>
2314         * loader.c: winelib.exe.so error message is now only displayed if
2315         MONO_DEBUG is set. To help us avoid questions when people are trying
2316         out the new Managed.Windows.Forms.
2317
2318 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2319
2320         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2321         for isinst and castclass wrappers.
2322
2323         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2324         to libmetadata from the JIT, so they could be used by the marshalling
2325         code and the interpreter.
2326
2327         * marshal.c: Register marshalling related JIT icalls here instead of
2328         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2329         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2330
2331         * metadata.h: Remove unneeded marshalling conversions.
2332
2333         * opcodes.c: Update for new opcodes.
2334         
2335 2004-07-08  Martin Baulig  <martin@ximian.com>
2336
2337         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2338         (mono_debug_get_domain_data): Make this function static.
2339
2340 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2341
2342         * gc.c, object.h: add nice GC handle API for embedders.
2343
2344 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2345
2346         * reflection.c: more changes for the new api
2347
2348         * object.c: When we reflect on a field w/ a constant value, it
2349         will not have a memory location, so we must access metadata. Also,
2350         allow easier reading of strings so that we can read them from
2351         the constant data.
2352
2353         * class.c (mono_class_layout_fields): no need for literal fields here.
2354
2355         * class-internals.h: api changes for const fields
2356
2357         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2358
2359 2004-07-06  Martin Baulig  <martin@ximian.com>
2360
2361         * mono-debug.h: Increment version number to 44.
2362
2363         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2364         now a gpointer, rewrote this whole method.
2365
2366         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2367         function.  Add information about the wrapper in a new "misc table".
2368
2369         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2370         for the new misc table.
2371
2372 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2373
2374         * metadata-internals.h image.c: Add a cache for helper signatures.
2375
2376         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2377
2378 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2379
2380         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2381         delegates from a delegate. Fixes #61033.
2382         
2383         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2384         marshalling of stringbuilder arrays. Fixes #59900.
2385
2386 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2387
2388         * icall.c: Add EnumBuilder:setup_enum_type icall.
2389
2390 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2391
2392         * icall.c: Added a new icall for the property version of
2393         OffsetOfStringData.
2394
2395 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2396
2397         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2398         it has a constant size across platforms.
2399
2400         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2401         stack trace.
2402
2403 2004-06-29  Martin Baulig  <martin@ximian.com>
2404
2405         * mono-debug.c (mono_debug_add_method): Protect the whole function
2406         in mono_debugger_lock(), not just parts of it.
2407
2408 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2409
2410         * reflection.c: make sure padding bytes in heaps are zeroed.
2411
2412 2004-06-24  David Waite  <mass@akuma.org>
2413
2414         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2415         image.c, loader.c, locales.c, marshal.c, metadata.c,
2416         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2417         string-icalls.c, threads.c: change to C90-style comments from C99 /
2418         C++ -style
2419
2420 2004-06-24  Dick Porter  <dick@ximian.com>
2421
2422         * threads.c
2423         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2424         return createdNew.  Fixes bug 60412.
2425
2426         * threads-types.h: 
2427         * icall.c: Add createdNew parameter to CreateMutex icall
2428
2429 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2430
2431         * reflection.c, object-internals.h: save default value in params.
2432
2433 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2434
2435         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2436         no need to build a new path combining that with the application base.
2437         Fixes bug #60442.
2438
2439 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2440
2441         * reflection.c: fixed minor standard compliance issues.
2442
2443 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2444
2445         * reflection.c: fixed issue with encoding some custom attributes
2446         (arrays in properties and fields, bug #60411).
2447
2448 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2449
2450         * reflection.c: fix start address when copying the public key token.
2451
2452 2004-06-23  Martin Baulig  <martin@ximian.com>
2453
2454         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2455         the `exc' object in a static object to put it into the GC's root set.
2456
2457 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2458
2459         * reflection.c: make mono_reflection_setup_internal_class ()
2460         callable a second time to setup a new parent class.
2461
2462 2004-06-23  Dick Porter  <dick@ximian.com>
2463
2464         * threads.c: Check for WAIT_IO_COMPLETION return values.
2465
2466 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2467
2468         * appdomain.c: Removed the g_free on the public key token. Now copy 
2469         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2470         * assembly.c: Added public key token string value when loading 
2471         assemblies. Fix bug #60439.
2472         * icall.c: Added missing informations (like public key) in 
2473         GetReferencedAssemblies. Fix #60519.
2474         * image.h: Changed definition for public key token from const char*
2475         public_tok_value to guchar public_key_token [17];
2476         * reflection.c: Updated for changes to public key token.
2477
2478 2004-06-22  Lluis Sanchez Gual
2479
2480         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2481         for the field in base classes.
2482
2483 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2484
2485         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2486         mark headers as not supported, they are installed only for use by the
2487         debugger.
2488
2489 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2490
2491         * *.c, *.h: avoid namespace pollution in public headers.
2492
2493 2004-06-21  Martin Baulig  <martin@ximian.com>
2494
2495         * exception.c (mono_get_exception_security): It's in
2496         "System.Security", not in "System".
2497
2498         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2499         the exception classes.
2500
2501 2004-06-21  Martin Baulig  <martin@ximian.com>
2502
2503         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2504         Protect the exception object from being finalized.
2505
2506 2004-06-21  Martin Baulig  <martin@ximian.com>
2507
2508         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2509         public function.
2510
2511 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2512
2513         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2514         if it was not loaded before. Fix parts of #60439.
2515
2516 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2517
2518         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2519         code that was broken since Ben's change: wrappers are now
2520         dependent on the method signature only again.
2521
2522 2004-06-21  Martin Baulig  <martin@ximian.com>
2523
2524         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2525         added interface support.
2526
2527 2004-06-21  Martin Baulig  <martin@ximian.com>
2528
2529         * class.c (mono_vtable_get_static_field_data): New public method.
2530
2531 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2532
2533         * filewatcher.c : Windows build fix to be compliant with API changes.
2534
2535 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2536
2537         * class.h, class.c: more accessors.
2538         * metadata.h, metadata.c: prepare for hiding MonoType and
2539         MonoMethodSignature: people should use the accessors from now on
2540         outside of the tree.
2541
2542 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2543
2544         * *.c, *.h: more API cleanups.
2545
2546 2004-06-18  Jackson Harper  <jackson@ximian.com>
2547
2548         * assembly.c: Trace loading assemblies.
2549         * loader.c: Trace loading native libraries.
2550         * mono-config.c: Trace loading config files.
2551         
2552 2004-06-18  Dick Porter  <dick@ximian.com>
2553
2554         * locales.c: Tell ICU the lengths of strings, it can cope with
2555         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2556
2557 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2558
2559         * image.c: swapped name/filename;
2560
2561 2004-06-18  Martin Baulig  <martin@ximian.com>
2562
2563         * mono-debug-debugger.c (write_class): Write the parent class at
2564         the end of the header.
2565
2566 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2567
2568         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2569
2570 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2571
2572         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2573         (bundle_obj): New conditional define.
2574         (BUILT_SOURCES): Remove.
2575         ($(bundle_srcs)): Make parallel-make safe.
2576         (libmonoruntime_la_LIBADD): Make unconditional.
2577         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2578         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2579
2580 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2581
2582         * culture-info-tables.h: It was inconsistent with the latest
2583           supp info files.
2584
2585 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2586
2587         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2588         be loaded.
2589
2590         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2591         with gcc 2.95.
2592
2593 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2594
2595         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2596         cleaned up public header threads.h.
2597
2598 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2599
2600         * Makefile.am, *.c, *.h: more API cleanups.
2601
2602 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2603
2604         * Makefile.am: removed monosn from compilation.
2605         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2606         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2607         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2608         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2609         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2610         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2611
2612 2004-06-15  Jackson Harper  <jackson@ximian.com>
2613
2614         * assembly.c: Make locales lower case when searching the GAC for
2615         assemblies. gacutil will always make locales lowercase when
2616         installing so this effectively makes them case insensitive.
2617         
2618 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2619
2620         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2621         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2622           parameter which allows to choose whether the wait can be interrupted or 
2623           not. Also added the method mono_monitor_enter(), which locks the monitor
2624           using an infinite wait and without allowing interruption.
2625           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2626           interrupted.
2627         * object.h: Added new fields in MonoThread. suspend_event holds the event
2628           used to susped/resume the thread. synch_lock is the lock object to use for
2629           modifying the thread state.
2630         * threads.c: Use the new synch_lock object for locking, instead of "this",
2631           which can generate deadlocks.
2632           Moved thread state change in Thread.Sleep and Thread.Join from managed
2633           to unmanaged code. This avoids a deadlock when the thread was suspended
2634           just after acquiring the thread lock.
2635           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2636           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2637           which is not fully implemented in the io-layer.
2638         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2639
2640 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2641
2642         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2643         threads-types.h: more API cleanups.
2644
2645 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2646
2647         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2648         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2649         threadpool.c, threads.c: first pass at the exported API cleanup.
2650
2651 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2652
2653         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2654
2655 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2656
2657         * icall.c: added internalGetHome.
2658
2659 2004-06-14  Dick Porter  <dick@ximian.com>
2660
2661         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2662         possible to return successfully when '.' or '..' were the only
2663         entries in a directory, but were skipped.  The MonoIOStat was not
2664         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2665         Fixes bug 59574.
2666
2667 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2668
2669         * reflection.c: make binaries run on .Net 1.1 by default.
2670
2671 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2672
2673         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2674
2675 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2676
2677         * marshal.c: keep track of struct size with explicit layout
2678         (bug #59979).
2679
2680 2004-06-12  Martin Baulig  <martin@ximian.com>
2681
2682         * mono-debug-debugger.c: Comment out a debugging g_message().
2683
2684 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2685
2686         * reflection.c, reflection.h: do not free custom attrs that are cached.
2687         * icall.c: use braces to make code clearer.
2688
2689 2004-06-11  Martin Baulig  <martin@ximian.com>
2690
2691         * class.h (MonoInflatedField): New type.
2692         (MonoClassField): Replaced `MonoType *generic_type' with
2693         `MonoInflatedField *generic_info'.
2694
2695         * icall.c
2696         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2697
2698 2004-06-11  Martin Baulig  <martin@ximian.com>
2699
2700         * reflection.c (mono_image_create_method_token): Correctly encode
2701         varargs methods.
2702
2703 2004-06-11  Martin Baulig  <martin@ximian.com>
2704
2705         * metadata.c (mono_metadata_parse_method_signature): When parsing
2706         a MethodDef which has VarArgs, also set sentinelpos if we don't
2707         have any parameters.
2708
2709 2004-06-11  Martin Baulig  <martin@ximian.com>
2710
2711         * verify.c (mono_method_verify): In CEE_CALL, use
2712         mono_method_get_signature() to get the method's signature, unless
2713         we're a PInvoke method.
2714
2715 2004-06-10  Jackson Harper  <jackson@ximian.com>
2716
2717         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2718         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2719         logical name as the supplied path is just a prefix to the gac not
2720         the direct path to it.
2721         
2722 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2723
2724         * reflection.c: make the token for a created method match
2725         the token of the MethodBuilder it was created from
2726         (IKVM requires this behaviour now).
2727
2728 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2729
2730         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2731         reflection.c, socket-io.c: leak fixes.
2732
2733 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2734
2735         * icall.c: handle sentinel pos in vararg methods in position different
2736         from 0.
2737
2738 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2739
2740         * culture-info-tables.h: freshly generated.
2741
2742 2004-06-09  Martin Baulig  <martin@ximian.com>
2743
2744         * loader.c (mono_get_method_constrained): Call `mono_class_init
2745         (constrained_class)'.   
2746
2747 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2748
2749         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2750         any methods. Fixes #59629.
2751
2752 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2753
2754         * culture-info-tables.h: reflecting locale-builder updates.
2755
2756 2004-06-08  Dick Porter  <dick@ximian.com>
2757
2758         * object.h:
2759         * locales.c: Fixed compile warnings, including a real bug in
2760         CompareInfo_internal_compare.
2761         
2762 2004-06-08  Dick Porter  <dick@ximian.com>
2763
2764         * locales.c
2765         (ves_icall_System_Globalization_CompareInfo_internal_index):
2766         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2767         Double-check the resuls of usearches, because ICU currently
2768         ignores most of the collator settings here.  Fixes bug 59720.
2769         
2770 2004-06-08  Dick Porter  <dick@ximian.com>
2771
2772         * locales.c
2773         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2774         Fix memory leak and segfault-causing typo.  No idea how this one
2775         lasted so long without being noticed.
2776
2777 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2778
2779         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2780         any methods. Fixes #59629.
2781
2782 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2783
2784         * assembly.c:
2785         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2786         own the critical section before). Removed dead code (that's done
2787         in the preload hook).
2788
2789         (mono_assembly_load_with_partial_name): call the preload hook.
2790
2791 2004-06-08  Martin Baulig  <martin@ximian.com>
2792
2793         * metadata.c (mono_metadata_signature_alloc): Default
2794         `sentinelpos' to -1.
2795
2796         * reflection.c (mono_image_get_array_token): Likewise.
2797
2798 2004-06-08  Martin Baulig  <martin@ximian.com>
2799
2800         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2801
2802         * metadata.c (mono_metadata_parse_method_signature): When parsing
2803         a MethodDef which has VarArgs, set sentinelpos.
2804
2805         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2806         `gint16' since we're using -1 for non-varargs methods.
2807
2808         * reflection.c
2809         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
2810         (method_encode_signature): Added varargs support.
2811         (method_builder_encode_signature): Likewise.
2812         (mono_image_get_varargs_method_token): New static method.
2813         (mono_image_create_method_token): New public method; this is
2814         called via an icall instead of mono_image_create_token() when
2815         calling a varargs method.       
2816
2817 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
2818
2819         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
2820
2821 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2822
2823         * culture-info-tables.h : Reflecting the latest locale-builder that
2824           fixed empty array representation ({} to {0}).
2825
2826 2004-06-07  Jackson Harper  <jackson@ximian.com>
2827
2828         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
2829         looking up extra gac paths. This allows MONO_GAC_PATH to act
2830         exactly like a prefix.
2831         
2832 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2833
2834         * reflection.c (mono_reflection_type_from_name): Make a copy of the
2835         type name before modifying it. Fixes #59405.
2836
2837 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2838
2839         * culture-info.h: added fields for "all datetime patterns".
2840         * locales.c: (  ves_icall_System_Globalization_CultureInfo
2841           _construct_datetime_format ()): fill xxx_patterns fields.
2842         * object.h: added fields for "all datetime patterns" to
2843           MonoDateTimeFormatInfo.
2844         * culture-info-tables.h: reflecting locale-builder updates.
2845
2846 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2847
2848         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
2849         the event has no add and remove methods. Fixes #59629.
2850
2851 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
2852
2853         * object.c: Fixed possible integer overflow when allocating large
2854         strings.
2855
2856 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2857
2858         * culture-info-tables.h: reflecting locale-builder updates.
2859
2860 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2861
2862         * culture-info-tables.h: reflecting locale-builder updates.
2863
2864 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
2865
2866         * culture-info-tables.h: reflecting locale-builder updates.
2867
2868 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
2869
2870         * threads.c: Made Thread.Sleep abortable.
2871
2872 2004-06-02  Martin Baulig  <martin@ximian.com>
2873
2874         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
2875
2876         * debug-mono-symfile.h: Bumped symbol file version number to 37.
2877
2878 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
2879
2880         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
2881
2882 2004-05-30  Jackson Harper  <jackson@ximian.com>
2883
2884         * reflection.c: Do not hardcode assembly versions or public key
2885         tokens anymore. All of this except the corlib section was dead
2886         code anyways.
2887         
2888 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
2889
2890         * object.c (mono_runtime_invoke_array): Automatically create boxed
2891         objects for byref valuetypes if needed. Fixes #59300.
2892         
2893         * object.c (mono_method_return_message_restore): Handle 
2894         MONO_TYPE_OBJECT as well.
2895
2896 2004-05-28  Jackson Harper  <jackson@ximian.com>
2897
2898         * reflection.c: The modified type encoding was causing build
2899         problems. Reverted for now.
2900         
2901 2004-05-28  Jackson Harper  <jackson@ximian.com>
2902
2903         * reflection.c/h: Take an assembly ref so that we dont create
2904         fully qualified names when encoding types in the same assembly as
2905         the custom attribute being emitted.
2906         * appdomain.c: Increment version number.
2907         
2908 2004-05-26  Duncan Mak  <duncan@ximian.com>
2909
2910         * icall.c
2911         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
2912         Set the full version number (major, minor, build, revision).
2913
2914 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
2915
2916         * marshal.c (emit_struct_conv): increment src/dst after blit
2917         (mono_marshal_get_managed_wrapper,
2918         mono_marshal_get_native_wrapper): make sure we have marshalling
2919         info before marshalling params (info computation affects
2920         blittable)
2921
2922         * class.c (class_compute_field_layout): correctly deal with
2923         blittable
2924         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
2925         value types (as per what windows dows by default)
2926         (mono_class_setup_mono_type): System.ValueType is blittable
2927         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
2928         blittable
2929
2930         * marshal.c (mono_marshal_load_type_info): flag types  as
2931         non-blittable if the native layout doesn't match the managed
2932         layout
2933
2934 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2935
2936         * appdomain.c: don't add stuff in the private search path that is
2937         above the application base. If application base is not set, there's
2938         no private search path.
2939
2940 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
2941
2942         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
2943         byref struct arguments in native->managed marshalling.
2944
2945 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
2946
2947         * marshal.c (mono_marshal_get_runtime_invoke): correctly
2948         cache methods using signature (special case for methods
2949         that are value type or string class)
2950         
2951         * image.c (mono_image_close): clean up allocated GSList's
2952         in runtime_invoke_cache.
2953
2954 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2955
2956         * mono-config.c: set the correct path for mono_cfg_dir on windows when
2957         there's no MONO_CFG_DIR environment variable defined.
2958
2959 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2960
2961         * threads.c: windows version must be >= 0x0500 to include OpenThread.
2962
2963 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
2964
2965         * threadpool.c: Really wait for 500ms after the async call, even if the wait
2966           is interrumped.
2967         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
2968           before waiting for it, and call CloseHandle after the wait to unref it.
2969           This will make sure that handles are not disposed too early.
2970
2971 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2972
2973         * appdomain.c:
2974         * appdomain.h:
2975         * icall.c: removed
2976         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
2977         needed now.
2978
2979         * object.c: se the application_base only for the domain that runs
2980         Main. Fixes bug #59216,
2981
2982 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2983
2984         * appdomain.c:
2985         * object.c: only the domain in which Main is run have
2986         SetupInformation.ConfigurationFile set, so moved a few lines from
2987         appdomain.c to object.c.
2988
2989 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2990
2991         * appdomain.c: we tried to load [name].(dll|exe), but according
2992         to bug #57710, we must also try [culture]/[name].(dll|exe) and
2993         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
2994         There's a test case attached to bug #58922.
2995
2996 2004-05-27  Dick Porter  <dick@ximian.com>
2997
2998         * icall.c:
2999         * file-io.c: Implemented icalls for locking and unlocking regions
3000         in a file.
3001         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3002         FALSE on error (fixes both compiler warning and real bug.)
3003
3004 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
3005
3006         * culture-info-tables.h: reflecting locale-builder updates.
3007
3008           (Added missing ChangeLog entry for 05/26)
3009
3010 2004-05-27  Jackson Harper  <jackson@ximian.com>
3011
3012         * locales.c: Fix some cut and paste errors.
3013         
3014 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3015
3016         * mono-config.c: set the correct path for config. directory on windows.
3017
3018 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3019
3020         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3021           on win32.
3022
3023 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3024
3025         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3026         from pinvoke functions.
3027         
3028         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3029
3030 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3031
3032         * culture-info-tables.h: reflecting locale-builder updates.
3033
3034 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3035
3036         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3037         #59086.
3038
3039 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3040
3041         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3042         * icall.c: Modified icalls for RNG.
3043         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3044         Windows (CryptoAPI).
3045
3046 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3047
3048         * locales.c: Fix build.
3049
3050 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3051
3052         * culture-info-tables.h: reflecting locale-builder updates.
3053
3054 2004-05-25  Jackson Harper  <jackson@ximian.com>
3055
3056         * locales.c: When creating the current culture use the $LANGs
3057         specific culture. So DateTimeFormat and NumberFormat entries are created.
3058         
3059 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3060
3061         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3062         a char array as parameter.
3063
3064 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3065
3066         * image.c: In mono_image_open(), always use an absolute path name to
3067           look for already loaded images.
3068
3069 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3070
3071         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3072         missing in the windows build (like older cygwin include files).
3073
3074 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3075
3076         * icall.c: Fixed check for possible integer overflow in Buffer_
3077         BlockCopy icall. Replaced comments style // by /* */.
3078
3079 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3080
3081         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3082         
3083         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3084         check after MONO_VTADDR. Fixes pinvoke2.exe.
3085
3086         * marshal.h marshal.c metadata.h: Add beginnings of support for
3087         ftnptr -> delegate marshalling.
3088
3089 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3090
3091         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3092         * threads.c: Fix warnings.
3093
3094 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3095
3096         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3097         * icall.c: Registered icalls for Suspend and Resume.
3098         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3099           Thread.Abort.
3100         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3101         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3102         * process.c: Use WaitForSingleObjectEx.
3103         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3104           checkpoints.
3105         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3106           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3107           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3108           background threads. Added basic support for Abort in Windows.
3109           Start new threads using a managed delegate invoke wrapper. This wrapper
3110           has an interruption checkpoint that is needed since an interruption
3111           can be requested before the thread leaves the unmanaged code that starts 
3112           the thread.
3113         * marshal.c: Added interruption checkpoint after every native call, and
3114           also before managed calls for wrappers called from unmanaged code to
3115           go into managed code.
3116         * object.h: Added new field in MonoThread to keep track of interruption
3117           requests.
3118
3119 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3120
3121         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3122         calls.
3123
3124 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3125
3126         * appdomain.c:
3127         * assembly.c:
3128         * gc.c:
3129         * locales.c:
3130         * mono-config.c:
3131         * rand.c: getenv -> g_getenv (windows!)
3132
3133         * process.c: complete_path is also used on non-windows platforms.
3134
3135 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3136
3137         * icall.c: new signature for Process_Start.
3138
3139         * process.[ch]: new signature for Process_Start. If we're on windows
3140         and UseShellExecute is false, we have to search for the program by
3141         ourselves if we don't get a full path.
3142
3143 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3144
3145         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3146         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3147
3148 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3149
3150         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3151         Fixes bug #58373.
3152
3153 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3154
3155         * process.c: use double quotes to quote program name and arguments on
3156         windows. Fixes bug #58575.
3157
3158 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3159
3160         * file-io.c: don't return "." and ".." when using windows Find*File.
3161
3162 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3163
3164         * marshal.c: Don't pass wrappers to message init because method 
3165         addressed used to lookup metadata. part of remoting[2|3] fix.
3166
3167 2004-05-15  Jackson Harper  <jackson@ximian.com>
3168
3169         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3170         path is essentially the same as MONO_PATH except that it points to
3171         GACs instead of lib directories.
3172         * loader.h: The user gac is gone so we dont need function to
3173         enable/disable it.
3174         * mono-config.c: user gac option is now gone.
3175         
3176 2004-05-15  Jackson Harper  <jackson@ximian.com>
3177
3178         * culture-info.h: Make defines more consistent, add calendar data
3179         to the culture info table.
3180         * culture-info-tables.h: Add basic calendar data. Basically
3181         everyone gets default gregorian until all the data is
3182         updated.
3183         * locales.c: Use the new consistent defines. Set calendar data for
3184         culture info objects.
3185         * object.h: add a field for calendar data to CultureInfo
3186         
3187 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3188
3189         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3190         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3191         a signature.
3192         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3193         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3194         an extra param that is the pointer of the method to invoke. The IL for
3195         the invoke method is no longer specific to the method, but to the
3196         signature of the method. Thus, we can share the same code for multiple
3197         methods. This reduces the number of methods that have to be compiled.
3198
3199 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3200
3201         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3202
3203         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3204
3205         * icall.c: Optimize Buffer.BlockCopy.
3206
3207 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3208
3209         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3210         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3211         quote). Changed them to "MMMM yyyy".
3212
3213 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3214
3215         * rand.c
3216         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3217
3218 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3219
3220         * reflection.h: Updated after changes to managed structures.
3221
3222         * appdomain.c: Bump corlib version.
3223
3224 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3225
3226         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3227         windows.
3228
3229 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3230
3231         * Makefile.am: link to ../os/libmonoos.la on windows.
3232
3233         * assembly.c:
3234                 -If MONO_DEBUG, warn about non-existing directories in
3235                 MONO_PATH.
3236                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3237                 compile time variable.
3238                 -Removed init_default_path and call mono_set_rootdir from
3239                 libmonoos.a instead (windows only).
3240
3241         * assembly.h: declare mono_assembly_getrootdir().
3242
3243         * domain.c:
3244         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3245
3246         * loader.c: s/getenv/g_getenv/
3247
3248 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3249
3250         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3251
3252         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3253
3254         * metadata.h: Add new marshalling conversions.
3255
3256         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3257         function.
3258
3259         * reflection.c (mono_reflection_get_type): Lookup the type in all
3260         modules of a multi-module assembly. Fixes #58291.
3261
3262 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3263
3264         * threads.c: Before aborting a background, set the StopRequested
3265         state.  This avoids throwing the Abort exception.
3266         In mono_thread_manage, don't continue with the shutdown until all
3267         aborted threads have actually stopped.
3268
3269 2004-05-10  Jackson Harper  <jackson@ximian.com>
3270
3271         * locales.c: Remove the modifier from culture names.
3272         
3273 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3274
3275         * Makefile.am: monosn is not installed any more. It has been deprecated
3276         in favor of sn.
3277
3278 2004-05-07  Jackson Harper  <jackson@ximian.com>
3279
3280         * locales.c
3281         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3282         Fix array construction, add bailout if the length is 0.
3283
3284 2004-05-07  Dick Porter  <dick@ximian.com>
3285
3286         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3287         machine doesn't have a DNS entry.  Patch by Urs Muff
3288         (umuff@quark.com), fixes bug 57928.
3289
3290 2004-05-06  Jackson Harper  <jackson@ximian.com>
3291
3292         * reflection.c: Handle null PublicTokens properly. alloc mem for
3293         assembly names culture so we dont crash when freeing it.
3294         
3295 2004-05-06  Jackson Harper  <jackson@ximian.com>
3296
3297         * assembly.c: Check the usergac when loading with partial names.
3298         
3299 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3300
3301         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3302         does nothing for now (not required for Linux/Windows) but the class
3303         library can call it (and a newer or modified runtime could need it).
3304         * icall.c: Registred icall.
3305
3306 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3307
3308         * loader.c: prints a message on module loading error we set MONO_DEBUG
3309         environment variable.
3310
3311 2004-05-05  Jackson Harper  <jackson@ximian.com>
3312
3313         * appdomain.c: Handle PublicKeyToken=null properly.
3314         
3315 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3316
3317         * environment.c|h: Added icall ves_icall_System_Environment_
3318         GetOSVersionString to get the current OS version as a string.
3319         * icall.c: Registred icall.
3320
3321 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3322
3323         * object.c: in mono_object_get_virtual_method(), take into account that
3324         non-virtual methods don't have a slot in the vtable. Check needed when
3325         the object is a proxy.
3326
3327 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3328
3329         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3330         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3331
3332         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3333
3334         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3335         passed when a valuetype is expected.
3336
3337         * object.c (mono_unhandled_exception): Only set the exit code if the
3338         exception happens in the main thread. Fixes thread5.exe.
3339
3340         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3341         invalid names. Fixes #58047.
3342
3343 2004-05-03  Jackson Harper  <jackson@ximian.com>
3344
3345         * assembly.c: This line was committed accidently and is unneeded.
3346         
3347 2004-05-03  Jackson Harper  <jackson@ximian.com>
3348
3349         * icall.c: Add new icall for Assembly::LoadWithPartialName
3350         * assembly.c/.h: new function that probes the GAC to load partial
3351         assembly names by Paolo Molaro.
3352         
3353 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3354
3355         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3356         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3357         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3358         full type name.
3359
3360 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3361
3362         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3363         * reflection.c: fix bug when parsing a full type name and Version is not
3364         the last thing in the string.
3365
3366 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3367
3368         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3369         crashes when it is freed.
3370
3371 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3372
3373         * assembly.c: print the compat warning to stderr.
3374
3375 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3376
3377         * assembly.c (mono_assembly_load_references): Add a compatibility
3378         hack to run old applications that might be still referencing the
3379         3300-based assemblies, only do this for System.xxx.
3380
3381 2004-05-01  Jackson Harper  <jackson@ximian.com>
3382
3383         * appdomain.c: If the culture is neutral we set it to "".
3384         
3385 2004-04-29  Jackson Harper  <jackson@ximian.com>
3386
3387         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3388
3389 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3390  
3391         * string-icalls.c: added low overhead function for copying chars
3392         * icall.c: added needed icall for the above function
3393  
3394 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3395
3396         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3397         Environment.GetLogicalDrives.
3398
3399 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3400
3401         * rand.c: try and talk to egd or prngd
3402         for random bytes if opening devices fail.
3403
3404 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3405
3406         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3407         alignment for the type using the native alignment of its members 
3408         instead of using klass->min_align.
3409
3410         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3411
3412 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3413
3414         * file-io.c:
3415         * socket-io.c: added check for sys/aio.h.
3416
3417 2004-04-28  Dick Porter  <dick@ximian.com>
3418
3419         * threads.c: Don't abort a thread thats already aborting, when
3420         terminating everything.
3421
3422 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3423
3424         * icall.c: added 2 new async calls for Socket.
3425
3426         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3427         IO on *nix systems.
3428
3429         * threadpool.c: removed unused variable.
3430
3431 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3432
3433         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3434
3435 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3436
3437         * locales.c: put back string_invariant_tolower () and
3438         string_invariant_toupper ().
3439
3440 2004-04-26 David Waite <mass@akuma.org>
3441
3442         * file-io.h:
3443         * socket-io.h:
3444         * threads.h:
3445         * unicode.h: remove comma from end of enumeration declarations
3446
3447 2004-04-26 David Waite <mass@akuma.org>
3448
3449         * debug-mono-symfile.h:
3450         * decimal.c:
3451         * mono_debug.h:
3452         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3453
3454
3455 2004-04-26  Jackson Harper  <jackson@ximian.com>
3456
3457         * appdomain.c: Increment version number.
3458         
3459 2004-04-26  Jackson Harper  <jackson@ximian.com>
3460
3461         * appdomain.c: Set assembly references public token value when
3462         PublicKeyToken is specified, not the hash_value. Free public token
3463         values when free assembly name data. Previously the public key
3464         token was hex decoded, however we are using hex encoded public key
3465         tokens, so this is not neccasary.
3466         * assembly.c: Lookup assemblies in the gac if their public token
3467         value is set. Add function to allow enabling user gac
3468         lookups. Specify whether or not the assembly was loaded from the
3469         GAC. Compare full assembly names when checking the cache for
3470         assemblies (Temporarily disabled see comment in code). Remove
3471         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3472         specifies trace-loader they get extra info to stdout on the
3473         loading of assemblies.
3474         * image.h: Add a field for an assembly references public token
3475         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3476         whether an assembly has been loaded from the GAC.
3477         * image.c: Remove a corlib -> mscorlib name mapping.
3478         * loader.h: Add function to enable/disable the user gac.
3479         * mono-config.c: Check if the usergac is enabled in the config
3480         file.
3481         * icall.c: New icall to determine whether or not an assembly has
3482         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3483         * tabldefs.h: Add constant for assemblyref flag that specifies a
3484         full public key is used instead of a public token.
3485         * reflection.c: Remove mscorlib -> corlib mappings. Set
3486         PublicTokenValue instead of hash value. This value is a hex
3487         string so it does not need to be expanded.
3488
3489 2004-04-26  Martin Baulig  <martin@ximian.com>
3490
3491         * mono-debug-debugger.c (mono_debugger_initialize): Set
3492         `mono_debugger_initialized' before calling mono_debug_lock().
3493
3494 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3495
3496         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3497           InternalToUpper/InternalToLower.
3498         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3499           removed invariant culture shortcut.  This is now done in managed code.
3500         * locales.c: (string_invariant_toupper/tolower) removed.
3501
3502 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3503
3504         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3505         Added Poll internal call.
3506
3507         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3508         call for Poll. Select was too heavy for polling a single socket.
3509
3510         * threadpool.[ch]: added mono_threadpool_cleanup.
3511         * threads.c: use it. Don't use Thread_Abort on windows.
3512
3513 2004-04-23  Martin Baulig  <martin@ximian.com>
3514
3515         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3516
3517 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3518
3519         * icall.c: Registred new icalls for key pair protection and added an
3520         icall for Environment.GetFolderPath on Windows.
3521         * security.c|h: Added new icalls for key pair protection.
3522
3523 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3524
3525         * socket-io.c: don't display the non-supported family warning for known
3526         families. Now this is not displayed on windows when checking support
3527         for IPv4/IPv6.
3528
3529 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3530
3531         * class.c: don't display the layout warning for static fields.
3532
3533 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3534
3535         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3536         * locales.c, locales.h: Added new icalls for culture-specific
3537         Char.ToLower and Char.ToUpper.
3538
3539 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3540
3541         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3542         by David Waite.
3543
3544 2004-04-20  Martin Baulig  <martin@ximian.com>
3545
3546         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3547         of the type name before passing it to mono_reflection_type_from_name().
3548
3549 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3550
3551         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3552         encodings here. Fixes #56965.
3553
3554 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3555
3556         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3557         fix test on strstr result not that I can see anything that
3558         relies on the result.
3559
3560 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3561
3562         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3563         Fixes #57081.
3564
3565         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3566
3567         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3568         function to determine which marshalling to use for strings. Fixes
3569         #56965.
3570
3571         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3572
3573         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3574
3575 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3576
3577         * icall.c: #include mono-config.h
3578
3579 2004-04-15  Jackson Harper  <jackson@ximian.com>
3580
3581         * culture-info-tables.h: Fix date formats for en-US culture.
3582         
3583 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3584
3585         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3586         ThreadPool.SetMinThreads.
3587         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3588         ThreadPool.SetMinThreads.
3589
3590 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3591
3592         * mono-config.c: also load the .config file in the directory
3593         where the assembly was found.
3594
3595 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3596
3597         * assembly.c: load per-assembly config files.
3598         * icall.c: decrapified code to get the config dir and moved to
3599         mono-config.c.
3600         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3601         per-assembly config files. When doing a dll map lookup give precedence
3602         to the per-assembly data.
3603
3604 2004-04-14  Martin Baulig  <martin@ximian.com>
3605
3606         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3607         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3608         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3609
3610         * mono-debugger-debugger.c: While the debugger is locked, remember
3611         whether the symbol tables have changes and send one single
3612         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3613
3614 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3615
3616         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3617
3618         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3619         function.
3620
3621         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3622         account when marshalling string arrays. Fixes #56965.
3623
3624 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3625
3626         * icall.c: Add new icalls mapping for security.
3627         * security.c|h: Add internal calls for WindowsIdentity,
3628         WindowsImpersonationContext and WindowsPrincipal.
3629
3630 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3631
3632         * class.c: Added comment to ensure the System.MonoDummy class
3633         is removed when no longer necessary
3634
3635 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3636
3637         * appdomain.c: Pass arguments to the bootstraping exceptions to
3638         minimize JITed methods at boot
3639
3640         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3641         second string to be null.
3642
3643         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3644         Change the protocol to minimize the JIT methods at startup.  Now
3645         it Returns the internal codepage, if the value of "int_code_page"
3646         is 1 at entry, and we can not compute a suitable code page
3647         number, returns the code page as a string.
3648
3649 2004-04-13  Jackson Harper  <jackson@ximian.com>
3650
3651         * culture-info-tables.h: Fix number of decimal digits for all
3652         english locales.
3653
3654 2004-04-13  Jackson Harper  <jackson@ximian.com>
3655
3656         * icall.c: Clairfy out of sync error message. It is not always
3657         your corlib that is out of sync.
3658
3659 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3660
3661         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3662         properties when only the set accessor is overriden. Fixes #55874.
3663
3664 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3665
3666         * assembly.c (mono_assembly_load_references): Make this thread safe.
3667         Fixes #56327.
3668
3669 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3670
3671         * monosn.c: Add missing initialization calls.
3672
3673 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3674
3675         * locales.c:
3676         ves_icall_System_Globalization_CultureInfo_construct_number_format
3677         Fix g_assert so it compiles on fussier compilers re int/ptr
3678         mismatch
3679
3680 2004-04-08  Dick Porter  <dick@ximian.com>
3681
3682         * socket-io.h:
3683         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3684         53992.  Also rearrange the code so that the internal calls return
3685         an error value and exceptions are thrown from managed code.
3686
3687         * icall.c: Add type info to the socket icalls.
3688
3689 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3690
3691         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3692         owes me a beer.
3693
3694 2004-04-07  Martin Baulig  <martin@ximian.com>
3695
3696         * class.c (mono_class_from_generic_parameter): Don't default
3697         `klass->parent' to `mono_defaults.object_type'.
3698
3699 2004-04-07  Martin Baulig  <martin@ximian.com>
3700
3701         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3702         `param->pklass->reflection_info'.       
3703
3704 2004-04-07  Jackson Harper  <jackson@ximian.com>
3705
3706         * culture-info-tables.h: Fix date separator symbol.
3707         
3708 2004-04-07  Martin Baulig  <martin@ximian.com>
3709
3710         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3711         from System.Type to System.MonoType.
3712
3713 2004-04-07  Martin Baulig  <martin@ximian.com>
3714
3715         * reflection.h
3716         (MonoReflectionGenericParam): Added `has_reference_type' and
3717         `has_value_type' fields.
3718
3719         * reflection.c (mono_image_get_generic_param_info): Encode the
3720         correct flags if we have the `class' or `struct' constraint.
3721
3722 2004-04-07  Martin Baulig  <martin@ximian.com>
3723
3724         * reflection.h
3725         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3726
3727 2004-04-07  Jackson Harper  <jackson@ximian.com>
3728
3729         * appdomain.c: Revert extra patches, just wanted to bump the
3730         version number.
3731         
3732 2004-04-07  Jackson Harper  <jackson@ximian.com>
3733
3734         * Makefile.am: Add culture-info private headers.
3735         * icall.c: Add new icalls for contructing locales.
3736         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3737         * locales.h: Declare new culture info construction methods.
3738         * object.h: Add new fields used to avoid the CultureMap to
3739         MonoCultureInfo.
3740         * culture-info.h: Definition of structs used in the culture info
3741         tables.
3742         * culture-info-tables.h: Autogenerated tables that contain culture
3743         info data. This file was generated with the locale-builder tool.
3744         * appdomain.c: Incement corlib version number.
3745         
3746 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3747
3748         * appdomain.c: (mono_runtime_init) move mono_thread_init
3749         to before mono_object_new calls so critical sections
3750         are initialized before use.
3751
3752 2004-04-07  Martin Baulig  <martin@ximian.com>
3753
3754         * icall.c
3755         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3756         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3757         (ves_icall_MonoGenericParam_initialize): Removed.
3758         (monogenericparam_icalls): Removed.
3759         (generictypeparambuilder_icalls): Added new table for
3760         System.Reflection.Emit.GenericTypeParameterBuilder.
3761
3762         * reflection.c
3763         (mono_reflection_define_generic_parameter): Removed.
3764         (mono_reflection_initialize_generic_parameter): This is now called
3765         from GenericTypeParameterBuilder's .ctor.
3766
3767 2004-04-06  Martin Baulig  <martin@ximian.com>
3768
3769         * class.c (mono_class_init): Don't inflate nested classes in a
3770         generic instance.
3771         (mono_type_get_name_recurse): Include the generic arguments for
3772         generic instances and generic type declarations.
3773         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3774         (_mono_class_get_instantiation_name): Removed.
3775         (mono_class_create_generic): Always use `gklass->name' as our name.
3776
3777         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3778
3779         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3780         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3781         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3782         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3783         closed generic methods here.
3784
3785         * reflection.c
3786         (mono_reflection_generic_inst_get_nested_types): Removed.
3787         (inflate_mono_method): Copy the generic parameters from the
3788         MonoMethodHeader into out MonoGenericMethod.
3789
3790 2004-04-06  Martin Baulig  <martin@ximian.com>
3791
3792         * row-indexes.h
3793         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3794
3795         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3796
3797         * reflection.c (build_compressed_metadata): If we have any entries
3798         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3799         set the header version to 1.1.
3800
3801 2004-04-06  Martin Baulig  <martin@ximian.com>
3802
3803         * class.c (mono_class_init): If we're a generic instance,
3804         initialize our nested classes, too.
3805         (_mono_class_get_instantiation_name): Deal with the new `!%d'
3806         suffix. 
3807
3808 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3809
3810         * process.c: quote the argument passed to the shell on windows.
3811
3812 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
3813
3814         * threads.c (mono_alloc_special_static_data): Allow this to be
3815         called during startup.
3816
3817 2004-04-02  Martin Baulig  <martin@ximian.com>
3818
3819         * icall.c
3820         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
3821
3822 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
3823
3824         * icall.c: Fix build.
3825
3826 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
3827
3828         * Makefile.am: Added security.c|h.
3829         * icall.c: Added icall for get_UserName;
3830         * security.c: New file for security related icalls. Added function
3831         get_UserName for System.Environment (fix #56144).
3832         * security.h: New. Header file for security.c
3833
3834 2004-04-02  Dick Porter  <dick@ximian.com>
3835
3836         * icall.c: Deleted the icalls that were obsoleted some time ago
3837         by the ICU string code, and which were mixed into the icall
3838         rearranging.  Fixes bug 55969.
3839
3840         * string-icalls.h: 
3841         * string-icalls.c: Deleted the code that those icalls reference.
3842
3843 2004-04-01  Martin Baulig  <martin@ximian.com>
3844
3845         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
3846
3847         * class.c (mono_class_from_generic_parameter): Don't set 
3848         TYPE_ATTRIBUTE_INTERFACE.
3849         (my_mono_class_from_generic_parameter): Likewise.
3850
3851 2004-04-01  Martin Baulig  <martin@ximian.com>
3852
3853         * loader.c (find_method): Added an optional `MonoClass *ic'
3854         argument to search in a specific interface.
3855         (mono_get_method_constrained): New public function.
3856
3857 2004-04-01  Martin Baulig  <martin@ximian.com>
3858
3859         * reflection.c (mono_image_get_generic_field_token): Use the
3860         `handleref' cache here.
3861
3862 2004-04-01  Martin Baulig  <martin@ximian.com>
3863
3864         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
3865
3866         * reflection.c (create_generic_typespec): Use the `typespec' hash
3867         here, not the `typeref' one.    
3868
3869 2004-04-01  Martin Baulig  <martin@ximian.com>
3870
3871         * class.c (mono_class_inflate_generic_type): Moved the
3872         functionality into a new static inflate_generic_type() which
3873         returns NULL if it didn't do anything.  Only increment the
3874         `mono_stats.inflated_type_count' if we actually inflated
3875         something.
3876         (mono_class_get_full): Check the classes type to see whether we
3877         need to inflate it; also inflate MONO_TYPE_(M)VAR.
3878
3879 2004-04-01  Jackson Harper  <jackson@ximian.com>
3880
3881         * reflection.c: Set culture for assembly references.
3882         
3883 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
3884
3885         * reflection.[ch], icall.[ch], Fix support for pinning variables.
3886
3887 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3888
3889         * assembly.c:
3890         (do_mono_assembly_open): the critical section also covers
3891         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
3892
3893 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3894
3895         * threads.c:
3896         (mono_manage_threads): abort the background threads when finishing.
3897         Fixes bug #47232.
3898
3899 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3900
3901         * gc.c: only close the done_event handle if there was no timeout.
3902         C-ified comments.
3903
3904 2004-03-30  Martin Baulig  <martin@ximian.com>
3905
3906         * icall.c (icall_entries): It's called "System.Activator", not
3907         "System.Activation".    
3908
3909 2004-03-30  Martin Baulig  <martin@ximian.com>
3910
3911         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
3912         (mono_class_create_from_typespec): Likewise.
3913
3914 2004-03-30  Martin Baulig  <martin@ximian.com>
3915
3916         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
3917         `has_ctor_constraint' and `initialized'.
3918
3919 2004-03-30  Martin Baulig  <martin@ximian.com>
3920
3921         * reflection.c (encode_new_constraint): New static function to add
3922         the constructor constraint attribute to a type parameter.
3923         (encode_constraints): Call encode_new_constraint() if necessary.
3924
3925         * reflection.h
3926         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
3927
3928         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
3929         
3930 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
3931
3932         * reflection.c, icall.c: add support for pinning variables. 
3933
3934 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
3935
3936         * marshal.c (mono_marshal_get_managed_wrapper):
3937         init bool local with zero rather than null.
3938
3939 2004-03-29  Martin Baulig  <martin@ximian.com>
3940
3941         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
3942         the "official" behavior here.
3943         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
3944
3945 2004-03-29  Martin Baulig  <martin@ximian.com>
3946
3947         * icall.c: Reflect latest API changes.
3948
3949 2004-03-29  Martin Baulig  <martin@ximian.com>
3950
3951         * loader.c (mono_get_method_from_token): Also call
3952         mono_metadata_load_generic_params () for abstract and interface
3953         methods; replace the type arguments in the method signature with
3954         the ones which are loaded from the metadata.
3955
3956 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
3957
3958         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
3959         of the lock is not the current thread. MS.NET don't do it, in spite of
3960         what the documentation says. See bug #56157.
3961
3962 2004-03-28  Martin Baulig  <martin@ximian.com>
3963
3964         * class.c (mono_class_init): Don't call init_properties() and
3965         init_events() for generic instances; set `prop->parent' when
3966         inflating properties.
3967
3968         * reflection.c (mono_generic_inst_get_object): Call
3969         `mono_class_init (ginst->klass)'.
3970         (mono_type_get_object): Only create a MonoGenericInst if your
3971         generic type is a TypeBuilder.
3972         (do_mono_reflection_bind_generic_parameters): Only set
3973         `ginst->is_dynamic' if our generic type is a TypeBuilder.
3974
3975 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
3976
3977         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
3978         Fixes #56091.
3979
3980 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3981
3982         * icall.c: added Kill_internal icall.
3983         * process.[ch]: added Kill_internal icall.
3984
3985 2004-03-25  Martin Baulig  <martin@ximian.com>
3986
3987         * class.h (MonoStats): Added `generic_instance_count',
3988         `inflated_method_count', `inflated_type_count' and
3989         `generics_metadata_size'.       
3990
3991 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3992
3993         * reflection.c: no warnings now.
3994
3995 2004-03-25  Martin Baulig  <martin@ximian.com>
3996
3997         * class.c (mono_class_get_full): New public function; does a
3998         mono_class_get(), but also takes a `MonoGenericContext *'.
3999
4000         * loader.c (mono_field_from_memberref): Renamed to
4001         `field_from_memberref', made static and added `MonoGenericContext *'
4002         argument.
4003         (mono_field_from_token): Added `MonoGenericInst *' argument.
4004         (method_from_memberef): Likewise.
4005         (mono_get_method_from_token): Likewise.
4006         (mono_get_method_full): New public function; does a
4007         mono_get_method(), but also takes a `MonoGenericContext *'.
4008
4009         * verify.c (mono_method_verify): Get the method's generic context
4010         and pass it to mono_field_from_token(), mono_get_method_full() and
4011         mono_class_get_full().
4012
4013 2004-03-25  Martin Baulig  <martin@ximian.com>
4014
4015         * class.c (mono_class_inflate_generic_type): Take a
4016         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4017         `MonoGenericMethod *'.
4018
4019 2004-03-25  Martin Baulig  <martin@ximian.com>
4020
4021         * loader.h (MonoMethodInflated): Store the MonoGenericContext
4022         instead of the MonoGenericMethod here.
4023
4024 2004-03-25  Martin Baulig  <martin@ximian.com>
4025
4026         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4027         each time we create a new MonoGenericInst, we also create a new
4028         context which points back to us.
4029
4030         * class.c (inflate_method): Use `ginst->context' instead of
4031         creating a new context.
4032
4033         * loader.c (method_from_memberref): Use
4034         `klass->generic_inst->context' instead of creating a new context.
4035
4036 2004-03-25  Martin Baulig  <martin@ximian.com>
4037
4038         * class.h (MonoGenericContext): New struct.
4039         (MonoGenericMethod): Removed `generic_inst'.
4040
4041         * class.c (mono_class_inflate_generic_method): Take a
4042         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4043
4044 2004-03-25  Martin Baulig  <martin@ximian.com>
4045
4046         * loader.h (MonoMethodInflated): New typedef.
4047
4048         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4049         `generic_param_count' consume just 30 bits, added `is_inflated'
4050         and `has_type_parameters' flags (one bit each).
4051
4052         * class.c (mono_class_inflate_generic_method): Create a
4053         MonoMethodInflated instead of a MonoMethodNormal and set
4054         `is_inflated' in the method signature.
4055
4056         * class.h (MonoGenericMethod): Removed `generic_method'.
4057
4058 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4059
4060         * image.c: Make sure the name of a MonoImage is always an absolute path.
4061           This fixes bug #54415.
4062
4063 2004-03-24  Martin Baulig  <martin@ximian.com>
4064
4065         * class.c (mono_class_setup_vtable): If we're a generic instance,
4066         use our generic type's vtable size.
4067
4068 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4069
4070         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4071         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4072         problems.
4073
4074 2004-03-23  Martin Baulig  <martin@ximian.com>
4075
4076         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4077         `MonoEvent *events'.
4078
4079         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4080         (typebuilder_icalls): Added "get_event_info"; calls
4081         mono_reflection_event_builder_get_event_info(). 
4082
4083         * reflection.c (mono_reflection_generic_inst_initialize): Added
4084         `MonoArray *events'.
4085         (mono_reflection_event_builder_get_event_info): New function.
4086
4087 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4088
4089         * object.h: add mono_type_initialization_init
4090
4091         * object.c (mono_runtime_class_init): 
4092         implement class constructor synchronization rules
4093         to cope with threading issues.  
4094         add mono_type_initialization_init
4095
4096         * appdomain.c (mono_runtime_init): call 
4097         mono_type_initialization_init
4098
4099         * class.h: removing initializing field from MonoVTable
4100
4101 2004-03-23  Martin Baulig  <martin@ximian.com>
4102
4103         * class.c (my_mono_class_from_generic_parameter): Use
4104         `param->name' if it's not NULL. 
4105
4106 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4107
4108         * class.c: do not insert non-virtual methods in the vtable.
4109         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4110         that means the method is non-virtual. This never would have
4111         happened before.
4112
4113 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4114
4115         * profiler.c: Added lock for accessing coverage_hash.
4116
4117 2004-03-22  Martin Baulig  <martin@ximian.com>
4118
4119         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4120         `method->method->signature->generic_param_count != 0' to make it
4121         work for interface methods.
4122
4123 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4124
4125         * process.c: quote the string passed to the shell using g_shell_quote.
4126
4127 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4128
4129         * threads.c:
4130         (mono_threads_manage): don't remove the finalizer thread and self
4131         from the threads hash table so that mono_thread_manage can be called
4132         more than once.
4133
4134 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4135
4136         * process.c: quote the arguments when UseShellExecute is true. Fixes
4137         bug #55790.
4138
4139 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4140
4141         * threads.c: set mono_thread_detach as a cleanup routine for every
4142         thread. This way it's always executed upon thread termination, either
4143         aborted or finished normally. No more xsp hangs!
4144
4145 2004-03-17  Martin Baulig  <martin@ximian.com>
4146
4147         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4148         `int count_nested' and a `MonoType **nested'.
4149
4150         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4151         most of the functionality into a new static
4152         do_mono_reflection_bind_generic_parameters() and don't take a
4153         `MonoType *nested_in' argument any more.  Don't compute nested
4154         types here.
4155         (mono_reflection_generic_inst_get_nested_types): New public method
4156         to get nested types.
4157
4158         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4159         we're a nested class.
4160
4161         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4162         mono_reflection_generic_inst_get_nested_types() to compute the
4163         nested types.
4164
4165 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4166
4167         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4168         descriptive error message under windows.
4169         
4170 2004-03-17  Martin Baulig  <martin@ximian.com>
4171
4172         * class.c (dup_type): Added `const MonoType *original' argument;
4173         copy the attrs from the original type.
4174
4175 2004-03-17  Martin Baulig  <martin@ximian.com>
4176
4177         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4178         `m->generic_inst_cache' here.
4179
4180 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4181
4182         * exception.h exception.c: Add stack_overflow_exception.
4183
4184 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4185
4186         * threadpool.c:
4187         (overlapped_callback): call SetEvent *after* invoking the callback.
4188         No need to call CloseHandle.
4189
4190 2004-03-16  Martin Baulig  <martin@ximian.com>
4191
4192         * reflection.c (mono_image_get_fieldref_token): Take a
4193         `MonoReflectionField *' instead of a `MonoClassField *' and a
4194         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4195
4196 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4197
4198         * appdomain.c: don't add the culture to the filename we're looking for
4199         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4200
4201 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4202
4203         * locales.c: don't ignore symbols when doing case insensitive compares.
4204         Thanks Dick! Fixes bug #54046.
4205
4206         * threads.c: surround 'threads' usage with enter/leave in
4207         mono_thread_manage.
4208
4209 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4210
4211         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4212         implicitly marshalled as [Out]. Fixes #55450.
4213
4214         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4215         an exception.
4216
4217 2004-03-16  Martin Baulig  <martin@ximian.com>
4218
4219         * class.c (mono_class_from_generic_parameter): Use the actual
4220         parameter name. 
4221
4222 2004-03-16  Martin Baulig  <martin@ximian.com>
4223
4224         * reflection.c (type_get_signature_size): New static function.
4225         Compues the size of the type in a method signature.
4226         (method_get_signature_size): New static function; calls
4227         type_get_signature_size() to compute the actual size of the
4228         method's signature.
4229         (method_encode_signature): Use method_get_signature_size() to get
4230         the signature's size rather than using `nparams * 10'.
4231
4232 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4233
4234         * file-io.h: define here WapiOverlapped on windows. I don't want the
4235         regular OVERLAPPED one.
4236
4237         * file-io.c:
4238         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4239         Disabling AIO on windows.
4240
4241 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4242
4243         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4244         bug #55385.
4245
4246 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4247
4248         * appdomain.c: upgraded corlib version.
4249
4250         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4251         and BeginWrite. Allow opening files for asynchrnous operations.
4252
4253         * file-io.h: new struct that maps FileStreamAsyncResult.
4254         * icall.c: added new icalls.
4255         * process.[ch]: support setting child process environment variables
4256         and use the SHELL or COMSPEC when UseShellExecute is true.
4257
4258         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4259         callback for async. IO is here and also BindHandle.
4260
4261         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4262         from here.
4263
4264 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4265
4266         * reflection.c (create_custom_attr): Allow len == 0.
4267
4268         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4269         computation on big-endian machines.
4270
4271 2004-03-13  Martin Baulig  <martin@ximian.com>
4272
4273         * class.h (MonoGenericInst): Added `int count_ifaces'.
4274
4275         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4276         `ginst->count_ifaces' instead `klass->interface_count' since we
4277         may get called before the vtable is created.
4278
4279         * loader.c (mono_method_get_param_names): If we're a generic
4280         instance, return and don't initialize the class.
4281
4282         * reflection.c (mono_reflection_setup_generic_class): Don't call
4283         ensure_runtime_vtable().
4284         (mono_reflection_bind_generic_parameters): Set
4285         `ginst->count_ifaces'.
4286
4287 2004-03-11  Jackson Harper <jackson@ximian.com>
4288
4289         * icall.c:
4290         * unicode.c:
4291         * unicode.h: Remove unused System.Char icalls.
4292         
4293 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4294
4295         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4296         code when we P/Invoke the first library in Windows.Forms, instead
4297         of when we first open the assembly.
4298
4299         * assembly.c: Drop the lookup from here.
4300
4301 2004-03-10  Martin Baulig  <martin@ximian.com>
4302
4303         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4304         class for properties, fields and events.  Finally fixes #54945.
4305
4306 2004-03-10  Martin Baulig  <martin@ximian.com>
4307
4308         * metadata.c (mono_metadata_class_equal): New static function;
4309         checks whether two generic instances or two generic parameters are
4310         equal.
4311         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4312         compare classes.        
4313
4314 2004-03-10  Martin Baulig  <martin@ximian.com>
4315
4316         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4317
4318         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4319         argument and write it into the `reflection_info' field.
4320
4321         * icall.c
4322         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4323         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4324
4325 2004-03-09  Jackson Harper  <jackson@ximian.com>
4326
4327         * char-conversions.h: use 8 bits for numeric data its all we need
4328         * icall.c: numeric data is only 8 bits now.
4329
4330 2004-03-09  Martin Baulig  <martin@ximian.com>
4331
4332         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4333
4334         * class.c (init_properties, init_events): Initialize the new
4335         `parent' field.
4336
4337         * reflection.c (typebuilder_setup_properties): Likewise.
4338         (typebuilder_setup_events): Likewise.
4339
4340         * reflection.h (MonoEventInfo): Replaced `parent with
4341         `declaring_type' and `reflected_type'.
4342
4343         * icall.c (ves_icall_get_property_info): Distinguish between
4344         declaring and reflected type.
4345         (ves_icall_get_event_info): Likewise.
4346
4347 2004-03-09  Martin Baulig  <martin@ximian.com>
4348
4349         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4350         (ves_icall_Type_GetField): Correctly set field->klass.
4351
4352 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4353
4354         * loader.h: Fix warning.
4355
4356 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4357
4358         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4359         library routine if present.  Notice that it will still continue
4360         executing even if its missing, for those working on the Gtk#
4361         edition of Windows.Forms.
4362
4363         * assembly.c (do_mono_assembly_open): If loading the
4364         System.Windows.Forms call mono_loader_wini_init.
4365
4366 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4367
4368         * class.h: Added MonoRemoteClass struct.
4369         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4370         function for MonoStrings.
4371         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4372         Added internal call for getting the proxy type.
4373         * marshal.c: Get the type of transparent proxies from its remote_class.
4374         Added methods that generate the IL for type checks and casts:
4375         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4376         mono_marshal_get_proxy_cancast.
4377         * marshal.h: Declaration of the previous new methods.
4378         * object.c: Added new moethods for creating and updating MonoRemoteClass
4379         instances: mono_remote_class, mono_upgrade_remote_class, 
4380         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4381         * verify.c: FIx transparent_proxy_fields layout.
4382         * appdomain.c: Bump corlib version.
4383
4384 2004-03-04  Jackson Harper  <jackson@ximian.com>
4385
4386         * icall.c: Add icall to access char conversion tables.
4387         * char-conversions.h: Character conversion tables.
4388         * Makefile.am: Add char-conversions.h private header file.
4389         
4390 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4391
4392         * appdomain.c (unload_thread_main): Increase unloading timeout to
4393         10 sec as a temporary workaround for Nant problems.
4394
4395 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4396
4397         * gc.c: Add checks for GC_enable and GC_disable.
4398
4399         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4400         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4401         (bug #54988).
4402         
4403 2004-02-27  Martin Baulig  <martin@ximian.com>
4404
4405         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4406         `MonoReflectionType *' instead of a `MonoType *'.
4407
4408 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4409
4410         * gc.c (run_finalize): Avoid finalizing the object representing the
4411         finalizer thread.
4412         (finalizer_thread): Fix warning.
4413
4414 2004-02-25  Martin Baulig  <martin@ximian.com>
4415
4416         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4417         argument for nested types.
4418         (mono_class_create_generic): Added support for nested generictypes.
4419
4420         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4421         `GList *nested'.
4422
4423         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4424
4425         * reflection.c (method_encode_signature): Increase the minimum
4426         value of `size' from 10 to 11.
4427         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4428         and `MonoType **types' arguments instead of the `MonoArray
4429         *types'; added `MonoType *nested_in'.  Recursively instantiate
4430         nested classes. 
4431
4432 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4433
4434         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4435         stack_overflow_ex members which are used by exception handling.
4436
4437         * appdomain.c (mono_runtime_init): Initialize the new members.
4438
4439         * gc.c (mono_gc_enable): New helper function.
4440         * gc.c (mono_gc_disable): New helper function.
4441
4442 2004-02-23  Martin Baulig  <martin@ximian.com>
4443
4444         * icall.c: I must have been really stupid - make it actually work
4445         this time ;-)
4446
4447 2004-02-23  Martin Baulig  <martin@ximian.com>
4448
4449         * loader.c (method_from_memberref): Only inflate the method if
4450         it's in another klass.
4451
4452 2004-02-23  Martin Baulig  <martin@ximian.com>
4453
4454         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4455         (mono_class_init): If we're a generic instance and an interface,
4456         compute `class->interface_id'; also create `class->interfaces'
4457         here and inflate them.
4458
4459         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4460         `ginst->is_open'.
4461         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4462
4463         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4464
4465 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4466
4467         * reflection.c (method_encode_code): Improved the error message
4468         generated by the exception.
4469
4470 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4471
4472         * icall.c: Martin did not do what he said in the ChangeLog for
4473         2004-02-18, but put back the changes for properties and events.
4474         Commenting those changes out again and adding comment to bug #54518.
4475         
4476         * process.c: removed warning.
4477
4478 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4479
4480         * marshal.c (emit_struct_conv): Print an error message instead of
4481         asserting when a type does not have the StructLayout attribute.
4482
4483 2004-02-20  Martin Baulig  <martin@ximian.com>
4484
4485         * reflection.c (mono_type_get_object): Also use the cache for
4486         generic instances.
4487         (mono_reflection_bind_generic_parameters): Always compute
4488         `ginst->ifaces'.        
4489
4490 2004-02-20  Martin Baulig  <martin@ximian.com>
4491
4492         * class.h (MonoGenericMethod): Removed `klass'.
4493
4494         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4495         *klass' argument.
4496
4497 2004-02-20  Martin Baulig  <martin@ximian.com>
4498
4499         * reflection.c (method_encode_methodspec): Actually use the
4500         uninflated signature for the memberref.
4501
4502 2004-02-20  Martin Baulig  <martin@ximian.com>
4503
4504         * class.h (MonoGenericMethod): Removed `declaring'.
4505
4506         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4507         is NULL, compute it here.
4508
4509 2004-02-20  Martin Baulig  <martin@ximian.com>
4510
4511         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4512
4513         * metadata.c (mono_metadata_generic_inst_hash): New method.
4514         (mono_metadata_generic_inst_equal): New method.
4515
4516         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4517         `klass->image->generic_inst_cache' cache to avoid creating
4518         duplicate MonoGenericInst's.
4519
4520         * class.c (mono_class_inflate_generic_type): Use the cache.
4521
4522 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4523
4524         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4525
4526 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4527
4528         * icall.c: added Socket.WSAIoctl icall.
4529
4530         * socket-io.[ch]: implemented
4531         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4532
4533 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4534
4535         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4536
4537 2004-02-18  Urs C Muff  <umuff@quark.com>
4538
4539         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4540         this work on PPC and other big-endian architectures.
4541
4542         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4543         fields with an underscore to make sure they're only accessed by
4544         the read32() macro.
4545
4546 2004-02-18  Martin Baulig  <martin@ximian.com>
4547
4548         * icall.c: Put the klass->refclass changes back for methods and
4549         fields, but not for properties and events.  We're currently not
4550         distinguishing between DeclaringType and ReflectedType for
4551         properties and events, that's what caused the regressions.
4552
4553 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4554
4555         * object.c:
4556         (mono_async_result_new): the handle can be NULL.
4557
4558         * threadpool.c: Use an event instead of a semaphore, don't initialize
4559         it until needed. This saves quite a few semaphores from being created
4560         when using the threadpool.
4561
4562 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4563
4564         * object.c (mono_string_is_interned_lookup): Fix interning of long
4565         strings. Fixes #54473.
4566
4567         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4568
4569         * icall.c: Revert the klass->refclass changes since they introduce
4570         regressions (bug #54518).
4571
4572 2004-02-18  Martin Baulig  <martin@ximian.com>
4573
4574         * class.c (mono_class_init): If we're a generic instance and don't
4575         come from a TypeBuilder, inflate our members here.
4576         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4577         (mono_class_create_generic): New public method.
4578         (mono_class_initialize_generic): Removed.
4579         (get_instantiation_name): Renamed to
4580         _mono_class_get_instantiation_name() and made it public.
4581
4582 2004-02-18  Martin Baulig  <martin@ximian.com>
4583
4584         * class.c (mono_class_inflate_generic_type): Clear the new
4585         instance's `nginst->klass' when inflating a generic instance.
4586         (mono_class_is_subclass_of): Added (basic) support for generic
4587         instances.
4588
4589 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4590
4591         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4592         MonoMempool to hold compiled native code.
4593
4594 2004-02-17  Martin Baulig  <martin@ximian.com>
4595
4596         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4597         `properties'.
4598
4599         * reflection.c (mono_reflection_generic_inst_initialize): Added
4600         `MonoArray *properties' argument.
4601
4602         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4603
4604 2004-02-17  Martin Baulig  <martin@ximian.com>
4605
4606         * icall.c (ves_icall_Type_GetFields): Renamed to
4607         ves_icall_Type_GetFields_internal() and added a
4608         `MonoReflectionType *rtype' argument; pass it to
4609         mono_field_get_object() to set the field's "reflected" type.
4610         (ves_icall_Type_GetConstructors): Likewise.
4611         (ves_icall_Type_GetEvents): Likewise.
4612         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4613         argument; pass it to mono_method_get_object() to set the method's
4614         "reflected" type.       
4615
4616 2004-02-17  Martin Baulig  <martin@ximian.com>
4617
4618         * class.h (MonoDynamicGenericInst): New type.
4619         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4620
4621         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4622         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4623         (ves_icall_MonoGenericInst_GetFields): New interncall.
4624
4625         * class.c (mono_class_from_generic): Don't call
4626         mono_class_initialize_generic() if this is a dynamic instance;
4627         ie. it's being created from a TypeBuilder.
4628         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4629         `class->byval_arg.type'.
4630
4631         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4632         to `inflate_method' and made static.
4633         (mono_reflection_inflate_field): Removed.
4634         (mono_reflection_generic_inst_initialize): New public method.
4635
4636         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4637         `ctors' and `fields'; added `initialized'.
4638
4639 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4640
4641         * debug-helpers.c (mono_method_full_name): Fix output for empty
4642         namespaces.
4643
4644 2004-02-12  Martin Baulig  <martin@ximian.com>
4645
4646         * class.h (MonoClassField): Added `MonoType *generic_type'.
4647
4648         * reflection.c (mono_image_get_fieldref_token): Added support for
4649         instantiated generic types.
4650         (field_encode_inflated_field): Removed.
4651         (mono_image_get_inflated_field_token): Removed.
4652         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4653
4654         * reflection.h (MonoReflectionInflatedField): Removed.
4655
4656 2004-02-12  Martin Baulig  <martin@ximian.com>
4657
4658         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4659         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4660
4661         * reflection.c (mono_image_get_methodspec_token): Take a
4662         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4663         (mono_image_create_token): Check whether we have a
4664         `method->signature->gen_method' and call
4665         mono_image_get_methodspec_token() if appropriate.
4666         (inflated_method_get_object): Removed.
4667         (mono_reflection_bind_generic_method_parameters): Return a
4668         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4669         (mono_reflection_inflate_method_or_ctor): Likewise.
4670
4671         * reflection.h (MonoReflectionInflatedMethod): Removed.
4672
4673 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4674
4675         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4676         for custom valuetype marshalling.
4677
4678         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4679
4680 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4681
4682         * icall.c: fixed WSAGetLastError_internal name.
4683
4684 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4685
4686         * threads.c (mono_thread_attach): Allow this to be called multiple
4687         times for a thread.
4688         
4689         * threads.c (build_wait_tids): Do not wait for ourselves.
4690
4691         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4692         appdomain list is empty.
4693
4694         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4695         memory returned by mono_string_builder_to_utf16, since it points into
4696         managed memory. Thanks to Bernie Solomon for noticing this.
4697
4698         * icall.c: Add AppDomainSetup icalls.
4699
4700         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4701
4702         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4703         types.
4704
4705         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4706         custom attributes to the method_aux struct. Also fix array indexes etc.
4707
4708         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4709         
4710 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4711
4712         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4713         (both static and runtime) and reduce startup time.
4714
4715 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4716
4717         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4718         AsAny marshalling conversion instead of crashing.
4719
4720         * marshal.c: Fix warnings.
4721
4722 2004-02-09  Martin Baulig  <martin@ximian.com>
4723
4724         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4725
4726         * reflection.h (MonoReflectionInflatedMethod): Removed the
4727         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4728
4729         * reflection.c (method_encode_methodspec): Removed the `method'
4730         argument; we get it from `gmethod->declaring'.
4731         (inflated_method_get_object): Removed the `declaring' argument.
4732
4733 2004-02-09  Martin Baulig  <martin@ximian.com>
4734
4735         * class.h (MonoGenericMethod): New type.
4736         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4737         `generic_method'.
4738
4739         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4740         a `MonoGenericMethod *gen_method' one.
4741
4742         * class.c (mono_class_inflate_generic_type): Take an additional
4743         `MonoGenericMethod * argument.  This is only non-NULL if we're
4744         inflating types for a generic method.   
4745         (mono_class_inflate_generic_signature): Renamed to
4746         inflate_generic_signature() and made static; take a
4747         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4748         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4749         instead of a `MonoGenericInst *' one.
4750         (mono_class_inflate_generic_method): Likewise.
4751
4752         * reflection.c (encode_generic_method_sig): Take a
4753         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4754         (method_encode_methodspec): Likewise.
4755         (inflated_method_get_object): Likewise. 
4756
4757         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4758         field with a `MonoGenericMethod *gmethod' one.  
4759
4760 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4761
4762         * class.h (mono_class_has_parent): add parens to expansion
4763         so you can ! this.
4764
4765 2004-02-08  Martin Baulig  <martin@ximian.com>
4766
4767         * image.h (MonoImage): Removed `generics_cache'.
4768
4769         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4770         instead of a `MonoType *' argument; removed the `inflate_methods'
4771         argument.  Don't inflate methods here.
4772
4773         * loader.c (find_method): If it's a generic instance, call
4774         mono_class_init() on the `sclass->generic_inst->generic_type'.
4775
4776         * metadata.c (mono_type_size): Make this work on uninitialized
4777         generic instances; call it on the `ginst->generic_type's class.
4778
4779         * reflection.c (mono_reflection_bind_generic_parameters): Call
4780         mono_class_from_generic() to create the `ginst->klass'.
4781
4782 2004-02-08  Martin Baulig  <martin@ximian.com>
4783
4784         * class.h (MonoClass): Changed type of `generic_inst' from
4785         `MonoType *' to `MonoGenericInst *'.
4786
4787 2004-02-08  Martin Baulig  <martin@ximian.com>
4788
4789         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4790         mono_type_get_object(), this is now creating a `MonoGenericInst'
4791         for MONO_TYPE_GENERICINST.
4792         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4793         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4794
4795         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4796         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4797         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4798         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4799         and reflected type.
4800
4801         * reflection.h (MonoReflectionInflatedMethod): Removed
4802         `declaring_type' and `reflected_type'.
4803
4804 2004-02-08  Martin Baulig  <martin@ximian.com>
4805
4806         * class.h (MonoGenericInst): Added `MonoType *parent' and
4807         `MonoType **ifaces'.
4808
4809         * reflection.h (MonoReflectionGenericInst): Removed `klass',
4810         `parent' and `interfaces'.
4811
4812         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4813         `MonoType *' argument and return a `MonoType *'.
4814
4815         * icall.c
4816         (ves_icall_MonoGenericInst_GetParentType): New interncall.
4817         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
4818
4819 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4820
4821         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
4822         valuetype marshalling.
4823
4824 2004-02-06  Martin Baulig  <martin@ximian.com>
4825
4826         * class.c
4827         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
4828         (my_mono_class_from_generic_parameter): Likewise.
4829
4830 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4831
4832         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
4833         contents of the symbol files lazily.
4834
4835         * object.h (MonoThread): Add 'name' and 'name_len' fields.
4836
4837         * threads.h threads.c icall.c: New icalls for getting and setting the
4838         threads name.
4839
4840 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
4841
4842         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
4843         Raise an exception when the domain is not found.
4844
4845 2004-02-03  Martin Baulig  <martin@ximian.com>
4846
4847         * reflection.c (mono_image_get_methodspec_token): Use the
4848         uninflated signature; fixes gen-33.
4849
4850 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
4851
4852         * gc.c threads.c: Make the finalizer thread a normal managed thread so
4853         the finalizer code can use thread functionality.
4854
4855         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
4856         the finalizer thread.
4857
4858         * threads.c: Make some functions more robust.
4859
4860         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
4861
4862         * metadata.h: Add new marshalling conventions.
4863
4864         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
4865         stringbuilder marshalling. Fixes #53700.
4866
4867         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
4868
4869         * reflection.c (mono_image_get_type_info): Save declarative security
4870         info.
4871
4872         * reflection.c (mono_image_get_field_info): Handle uninitialized 
4873         unmanaged fields as well.
4874
4875         * appdomain.c: Bump corlib version.
4876
4877 2004-02-01  Martin Baulig  <martin@ximian.com>
4878
4879         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
4880         method type arguments.  
4881
4882 2004-01-30  Duncan Mak  <duncan@ximian.com>
4883
4884         * marshal.h: Add prototype for
4885         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
4886         and
4887         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
4888         fix the build.
4889
4890 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
4891
4892         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
4893         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
4894
4895 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4896
4897         * marshal.c (mono_marshal_get_native_wrapper): Add support for
4898         custom marshalling of valuetypes.
4899
4900         * marshal.c: Fix some warnings.
4901
4902 2004-01-29  Martin Baulig  <martin@ximian.com>
4903
4904         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
4905         for generic method parameters.
4906
4907         * reflection.c (method_encode_methodspec): Write the uninflated
4908         signature into the methodspec table.
4909         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
4910         is always the uninflated method.
4911         (reflection_methodbuilder_to_mono_method): Copy the generic
4912         parameters from the MethodBuilder into `header->gen_params'.
4913
4914 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4915
4916         * class.c (mono_class_from_generic_parameter): Fix warning.
4917
4918 2004-01-27  Martin Baulig  <martin@ximian.com>
4919
4920         * class.c (mono_class_from_generic_parameter): Don't create
4921         `klass->methods' here.  
4922
4923 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
4924
4925         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
4926         extension since it does not work with libraries named lib<FOO>.dll.so.
4927
4928 2004-01-25  Martin Baulig  <martin@ximian.com>
4929
4930         * class.c (mono_class_inflate_generic_type): Added support for
4931         MONO_TYPE_GENERICINST.
4932
4933         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
4934         inflate methods on open constructed types.      
4935
4936 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4937
4938         * object.c: fire ProcessExit event in the root AppDomain after running
4939         Main. Fixes bug #53299.
4940
4941 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
4942
4943         * socket-io.c: include the new socket-wrappers.h header.
4944         Use the wrappers instead of the unix socket functions to make the code
4945         more clear.
4946
4947 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
4948
4949         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
4950
4951         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4952         Fixes #22532.
4953
4954 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
4955
4956         * reflection.c (mono_image_create_pefile): Handle the case when the
4957         entry point is not a MethodBuilder.
4958
4959         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4960         field to ReflectionMethod since it is not allways a builder.
4961
4962         * reflection.c (type_get_fully_qualified_name): New helper function to
4963         return the fully qualified name of a type.
4964
4965         * reflection.c (encode_marshal_blob): Always emit the fully qualified
4966         type name for custom marshallers.
4967
4968         * reflection.c (mono_marshal_spec_from_builder): Ditto.
4969
4970         * class.c (mono_class_setup_vtable): If a parent class already 
4971         implements an interface, use the implementing methods from that class.
4972         Fixes #53148.
4973
4974 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4975
4976         * threadpool.c: just return instead of ExitThread to allow for thread
4977         clean up earlier.
4978
4979 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
4980
4981         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
4982         when closing resource modules.
4983
4984         * reflection.c (mono_image_create_pefile): Handle the case when the
4985         entry point is not a MethodBuilder.
4986
4987         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4988         field to ReflectionMethod since it is not allways a builder.
4989
4990 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
4991
4992         * marshal.c (mono_marshal_get_managed_wrapper): 
4993         mono_marshal_alloc takes native int so CONV_I
4994         the arg for 64bits.
4995
4996 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
4997
4998         * reflection.c (fixup_cattrs): New function to fixup the methoddef
4999         tokens in the cattr table. Fixes #53108.
5000
5001 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5002
5003         * loader.c: don't trim ".dll" before looking up in the config file.
5004         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5005
5006 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5007
5008         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
5009         Return the module which contains the resource as well.
5010         (ves_icall_System_Reflection_Module_Close): New icall.
5011
5012         * appdomain.c: Bump corlib version number.
5013
5014         * image.c (mono_image_addref): New public function.
5015
5016         * assembly.c: Call mono_image_addref.
5017
5018         * reflection.c (mono_module_get_object): Increase reference count of 
5019         the image.
5020
5021         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5022         Fixes #22532.
5023
5024         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5025         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5026         proper exceptions on DllImport problems.
5027
5028 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5029
5030         * class.c, metadata.c: eliminate CSIZE macro.
5031
5032 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5033
5034         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5035         * object.h: Added async_callback field in MonoAsyncResult.
5036         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5037         * verify.c: Added async_callback in MonoAsyncResult layout.
5038
5039 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5040
5041         * reflection.c (mono_reflection_get_custom_attrs): Add support
5042         for Modules.
5043
5044 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5045
5046         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5047         marshalling.
5048         (mono_marshal_method_from_wrapper): Add null pointer check.
5049
5050 2004-01-16  Martin Baulig  <martin@ximian.com>
5051
5052         * debug-mono-symfile.h: Set version number to 36 and reflect
5053         latest symbol writer changes.
5054
5055 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5056
5057         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5058         multi-dimensional arrays.
5059         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5060         (mono_class_from_mono_type): Use bounded_array_class_get.
5061         
5062         * class.c (mono_bounded_array_class_get): New function which takes
5063         a 'bounded' bool argument to distinguish vectors from one dimensional
5064         arrays.
5065
5066         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5067         bounded_array_class_get if the array has bounds.
5068
5069         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5070         Search modules loaded using AssemblyBuilder:AddModule as well.
5071
5072 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5073
5074         * appdomain.c: increased corlib version.
5075         * filewatcher.c: removed g_print.
5076         * icall.c:
5077         (get_property_info): only allocate what is actually requested.
5078         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5079
5080 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5081
5082         * Makefile.am: added filewatcher.[ch]
5083         * filewatcher.[ch]: FileSystemWatcher runtime support.
5084         * icall.c: added new FSW icalls.
5085
5086 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5087
5088         * string-icalls.c: fix stringbuilder regression as suggested by
5089         Iain McCoy <iain@mccoy.id.au>.
5090
5091 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5092
5093         * process.c (process_read_stringtable_block): Recognize '007f' as
5094         a language neutral stringtable block.
5095
5096 2004-01-12  Patrik Torstensson
5097
5098         * object.h (MonoStringBuilder) : Changed layout to support our
5099         new stringbuilder class.
5100         * marshal.c: Change marshalling to support the new layout of 
5101         string builder.
5102         * appdomain.c: increased version number because new layout of
5103         string builder.
5104
5105 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5106
5107         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5108         assembly name as an string instead of an AssemblyName, since it is
5109         easier to extract info from it.
5110
5111         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5112         the culture subdirectories too. Fixes #52231.
5113
5114 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5115
5116         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5117         It takes 2 new parameters with an optional name for the method to look
5118         for and case ignoring info.
5119
5120         * threadpool.c: removed unused variable.
5121
5122 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5123
5124         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5125         It takes 2 new parameters with an optional name for the property to look
5126         for and case ignoring info.
5127         Fixes bug #52753.
5128
5129 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5130
5131         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5132         Fix #52451.
5133
5134 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5135
5136         * appdomain.c:
5137         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5138         Fixes bug #52630.
5139
5140 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5141
5142         * reflection.c: Add support for more than one unmanaged resource.
5143
5144         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5145         in field->def_value, as done in all other cases.
5146
5147         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5148         TypeBuilders.
5149
5150         * reflection.c (mono_reflection_create_runtime_class): Remove 
5151         errorneous assignment to klass->element_class, since it is already
5152         done in mono_reflection_setup_internal_class.
5153
5154 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5155
5156         * gc.c: added missing LeaveCriticalSection.
5157         * icall.c: indented a couple of lines.
5158         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5159         if we call EndInvoke inside a callback. Fixes bug #52601.
5160
5161 2004-01-07  Martin Baulig  <martin@ximian.com>
5162
5163         * mono-debug-debugger.h
5164         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5165
5166 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5167
5168         * appdomain.c: Use messages in NotImplementedException.
5169
5170         * exception.c (mono_get_exception_not_implemented): Now this takes
5171         a message argument.
5172
5173         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5174         exception instead of g_asserting an aborting when something is not
5175         implemented.
5176
5177         Add some inline docs.
5178
5179 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5180
5181         * reflection.h: Update after changes to object layout.
5182
5183         * reflection.c: Implement saving of unmanaged aka win32 resources.
5184
5185         * appdomain.c: Bump version number.
5186
5187         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5188         Handle missing domains gracefully.
5189
5190 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5191
5192         * file-io.c : On Windows, there are much more invalid_path_chars.
5193
5194 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5195
5196         * class.h, object.c: prepare for GetType () speedup.
5197
5198 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5199
5200         * profiler.c: workaround for --profile null reference exception on
5201           cygwin. Patch by Patrik Torstensson.
5202
5203 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5204
5205         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5206         make work for unaligned access.
5207
5208 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5209
5210         * class.c: small cleanup (class->fields [i] -> field).
5211         * image.c: check address of metadata is valid.
5212
5213 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5214
5215         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5216         search the list of loaded assemblies.
5217
5218         * reflection.c (mono_reflection_type_from_name): Use 
5219         mono_assembly_loaded instead of mono_image_loaded.
5220
5221         * reflection.c: Fix warnings.
5222
5223 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5224
5225         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5226         is dynamic. This is needed since an assembly can contain both dynamic and
5227         non-dynamic images.
5228
5229         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5230         assembly->dynamic.
5231
5232         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5233
5234         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5235         to store modules loaded using AddModule.
5236
5237         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5238         on Modules.
5239
5240         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5241
5242         * reflection.c (mono_image_fill_export_table_from_module): New function to
5243         fill out the EXPORTEDTYPES table from a module.
5244
5245         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5246         into a separate function. Also handle loaded non-dynamic modules.
5247
5248         * reflection.c (mono_image_basic_init): Fix memory allocation.
5249
5250         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5251
5252         * assembly.c (mono_assembly_load_references): Make this public.
5253
5254 2003-12-19  Martin Baulig  <martin@ximian.com>
5255
5256         * class.c (mono_class_initialize_generic): Made this static, take
5257         a `MonoGenericInst *' instead of a `MonoClass *'.
5258         (mono_class_from_generic): Call mono_class_initialize_generic()
5259         unless we're already initialized or being called from
5260         do_mono_metadata_parse_generic_inst().
5261
5262         * class.h (MonoGenericInst): Added `initialized' and
5263         `init_pending' flags.
5264
5265         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5266         `mono_class_init (gklass)' or mono_class_initialize_generic()
5267         here; set `generic_inst->init_pending' while parsing the
5268         `type_argv'.
5269
5270 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5271
5272         * locales.c: include string.h for memxxx prototypes
5273
5274 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5275
5276         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5277         constructor when accessing literal fields.
5278
5279 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5280
5281         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5282
5283         * reflection.c (assembly_add_resource_manifest): New function to fill
5284         the MANIFESTRESOURCE table.
5285
5286         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5287
5288         * reflection.h: Update to changes in class layout.
5289
5290         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5291         Reenable call to mono_runtime_is_shutting_down ().
5292
5293         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5294         determine if the runtime is shutting down.
5295
5296 2003-12-16  Jackson Harper <jackson@ximian.com>
5297
5298         * icall.c: comment out call to mono_runtime_is_shutting_down to
5299         fix build.
5300         
5301 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5302
5303         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5304         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5305
5306 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5307
5308         * reflection.c: move definition of swap_with_size
5309         to before its first call
5310
5311 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5312
5313         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5314
5315         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5316         icall.
5317
5318         * object.c: Fix warnings.
5319
5320         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5321         members if FlattenHierarchy is set.
5322
5323         * reflection.c (mono_image_add_decl_security): New function to emit
5324         declarative security.
5325
5326         * reflection.h reflection.c: Add support for declarative security.
5327
5328         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5329         
5330 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5331
5332         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5333         
5334         * appdomain.c verify.c: Moved corlib version checking into its own
5335         function in appdomain.c since it needs to create vtables etc.
5336
5337 2003-12-13  Patrik Torstensson <p@rxc.se>
5338
5339         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5340         instead of unwrapped server.
5341
5342 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5343
5344         * verify.c (check_corlib): Fix field index.
5345
5346 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5347
5348         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5349         GetGacPath icall.
5350
5351 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5352
5353         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5354         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5355         cope with sizeof(size_t) != sizeof(guint32).
5356
5357 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5358
5359         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5360         in case of failure.
5361
5362 2003-12-10  Mark Crichton <crichton@gimp.org>
5363
5364         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5365         in managed code.
5366
5367         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5368
5369 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5370
5371         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5372         marked as deleted.
5373
5374 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5375
5376         * verify.c (check_corlib): Handle the case when the version field is 
5377         initialized by a static constructor.
5378
5379 2003-12-08  Patrik Torstensson  <p@rxc.se>
5380
5381     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5382
5383 2003-12-08  Martin Baulig  <martin@ximian.com>
5384
5385         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5386         a MonoReflectionGenericParameter, also take the parameter index
5387         and name as arguments.
5388         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5389         (ves_icall_MonoGenericParam_initialize): New interncall.
5390         (ves_icall_Type_make_byref_type): New interncall.
5391
5392         * reflection.h (MonoReflectionGenericParam): Derive from
5393         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5394         `index' fields.
5395
5396         * reflection.c (mono_reflection_define_generic_parameter): Create
5397         and return a new MonoReflectionGenericParam; don't initialize the
5398         constraints here.
5399         (mono_reflection_initialize_generic_parameter): New public method;
5400         initializes the constraints and creates the `param->pklass'.
5401
5402 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5403
5404         * reflection.h reflection.c: Use the new fields 'num_types', 
5405         'num_fields' and 'num_methods' to track the number of types etc.
5406
5407         * verify.c (check_corlib): Check corlib version number.
5408
5409 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5410
5411         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5412         function works on all methods.
5413
5414 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5415
5416         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5417         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5418         the custom_type_info flag of the transparent proxy.
5419         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5420         objects that supports IRemotingTypeInfo.
5421         * object.h: Added custom_type_info field in transparent proxy.
5422
5423 2003-12-06  Martin Baulig  <martin@ximian.com>
5424
5425         * class.c (mono_class_create_from_generic): Removed.
5426         (mono_class_from_generic): Check `ginst->klass' before doing
5427         anything else.  This is important to fully support "recursive"
5428         generic types.
5429
5430         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5431         empty `generic_inst->klass' before doing anything else.
5432
5433 2003-12-06  Dick Porter  <dick@ximian.com>
5434
5435         * verify.c: 
5436         * object.h:
5437         * icall.c:
5438         * locales.c: Use C structs to access class fields.  Don't do a
5439         conversion between MonoString and UChar because both are
5440         platform-endian UTF-16.  Compare now takes startindex and count
5441         parameters.  Add a char overload for IndexOf.  Speed up the
5442         invariant string IndexOf.
5443
5444 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5445
5446         * Makefile.am (monosn_LDADD): Fix parallel build.
5447
5448 2003-12-04  Martin Baulig  <martin@ximian.com>
5449
5450         * icall.c
5451         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5452         (ves_icall_Type_make_array_type): New interncall.       
5453
5454 2003-12-04  Martin Baulig  <martin@ximian.com>
5455
5456         * locales.c: also change it in the !HAVE_ICU case.
5457
5458 2003-12-04  Dick Porter  <dick@ximian.com>
5459
5460         * icall.c:
5461         * locales.c: construct_compareinfo is now in CompareInfo, not
5462         CultureInfo.
5463
5464 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5465
5466         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5467         image->files array.
5468
5469         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5470         table as well.
5471
5472         * assembly.c (mono_assembly_load_references): Only load references
5473         once.
5474
5475         * class.c (mono_class_from_name): Avoid linear search of the 
5476         EXPORTEDTYPE table.
5477
5478         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5479
5480 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5481
5482         * image.h (MonoImage): Add 'field_cache' field.
5483
5484         * loader.c (mono_field_from_token): Cache field lookups.
5485         
5486         * reflection.c (mono_module_get_object): Fix name property.
5487
5488         * icall.c (ves_icall_get_enum_info): Update after changes to 
5489         mono_metadata_get_constant_index ().
5490
5491         * icall.c: Get rid of get_type_info icall, use a separate icall for
5492         each type property to avoid needless memory allocations. Fixes #51514.
5493
5494         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5495         to avoid needless binary searches.
5496
5497         * class.c (class_compute_field_layout): Move the initialization of
5498         field->def_value to mono_class_vtable ().
5499
5500         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5501         non-corlib types.
5502
5503         * object.c (mono_object_allocate): Make it inline.
5504
5505         * object.c (mono_object_allocate_spec): Make it inline.
5506         
5507 2003-12-02  Dick Porter  <dick@ximian.com>
5508
5509         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5510         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5511
5512 2003-12-01  Dick Porter  <dick@ximian.com>
5513
5514         * threads.c: Fix signature and call in CreateMutex and
5515         CreateEvent.
5516
5517 2003-12-01  Dick Porter  <dick@ximian.com>
5518
5519         * icall.c: 
5520         * locales.c: Implement string compares and searching
5521
5522         * object.h: Add extra Thread field
5523
5524 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5525
5526         * reflection.c (fixup_method): Add support for MonoCMethod.
5527
5528 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5529
5530         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5531
5532         * reflection.c (assembly_name_to_aname): Allow extra characters in
5533         assembly names. Fixes #51468.
5534
5535 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5536
5537         * exception.c (mono_exception_from_name_domain): New helper function.
5538
5539         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5540         exception object in the correct domain.
5541
5542         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5543         formatting + make a copy a the input data.
5544
5545         * loader.c (mono_get_method_from_token): Methods which contain
5546         native code do not have entries in the ImplMap.
5547
5548         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5549         Thanks to Gonzalo for spotting this.
5550         
5551         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5552         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5553
5554         * assembly.h (mono_assembly_load_from): Split the second part of 
5555         assembly loading into a new public function.
5556
5557         * exception.h (mono_get_exception_bad_image_format): New function.
5558
5559 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5560
5561         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5562         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5563         
5564         * icall.c: Add new icall for creating dynamic methods.
5565
5566         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5567
5568         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5569
5570         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5571         create a dynamic method.
5572
5573         * reflection.c (resolve_object): New helper function.
5574
5575         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5576         which manipulate it so they can also work on dynamic methods.
5577
5578         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5579         creating the MonoReflectionMethodAux structure if it is not needed.
5580         
5581         * reflection.h verify.c: Update after changes to object layout.
5582
5583         * reflection.c (method_builder_encode_signature): Fix compilation on
5584         gcc 2.95.x.
5585
5586 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5587
5588         * appdomain.h: Added support for context static fields. Added static_data
5589           field to MonoAppContext and renamed thread_static_fields to a more
5590           generic special_static_fields in MonoAppDomain, since it can now contain
5591           context static fields.
5592         * domain.c: Updated hashtable name.
5593         * object.c: Replaced field_is_thread_static() for a more generic
5594           field_is_special_static() which also checks for context static attribute.
5595           In mono_class_vtable(), added support for static context fields.
5596         * threads.c: Changed methods that manage thread static fields to more
5597           generic methods so they can be reused both for thread and context static
5598           data.
5599         * threads.h: Declared some new methods.
5600
5601 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5602
5603         * reflection.h: Update after changes to the managed types.
5604
5605         * reflection.c (encode_custom_modifiers): New helper function.
5606
5607         * reflection.c (method_encode_signature): Emit custom modifiers.
5608
5609         * reflection.c (field_encode_signature): Emit custom modifiers.
5610
5611 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5612
5613         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5614
5615         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5616         implementation.
5617
5618         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5619         icall.
5620
5621         * object.c (mono_field_get_value_object): New function.
5622
5623         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5624         specific.
5625
5626 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5627
5628         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5629         return a preallocated out-of-memory exception instance.
5630
5631         * object.c (out_of_memory): Use the new function.
5632
5633         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5634         flag is before the custom modifiers. Fixes #49802.
5635
5636 2003-11-16  Martin Baulig  <martin@ximian.com>
5637
5638         * class.c (mono_class_is_open_constructed_type): Implemented the
5639         MONO_TYPE_GENERICINST case.
5640
5641 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5642
5643         * assembly.c (mono_assembly_fill_assembly_name): New function to
5644         fill out the MonoAssemblyName structure.
5645         (mono_assembly_open): Use the new function.
5646
5647         * icall.c (fill_reflection_assembly_name): New helper function.
5648
5649         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5650         new function.
5651
5652         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5653
5654 2003-11-15  Martin Baulig  <martin@ximian.com>
5655
5656         * class.c (mono_class_is_open_constructed_type): New public
5657         function; checks whether a type is an open constructed type,
5658         ie. whether it still contains type parameters.
5659         (mono_class_inflate_generic_type): If we're a type parameter and
5660         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5661         type.
5662
5663         * class.h (MonoGenericInst): Added `guint32 is_open'.
5664
5665         * loader.c (method_from_methodspec): Check whether we're an open
5666         or closed constructed type and set `ginst->is_open'.
5667
5668         * reflection.c (mono_reflection_bind_generic_parameters): Check
5669         whether we're an open or closed constructed type and set
5670         `ginst->is_open'.
5671         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5672         from open constructed types.
5673
5674 2003-11-15  Martin Baulig  <martin@ximian.com>
5675
5676         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5677         a generic instance (instead of a generic type declaration) with
5678         unbound generic parameters, bind them to our actual types.
5679
5680 2003-11-14  Martin Baulig  <martin@ximian.com>
5681
5682         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5683
5684         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5685         an interface type, populate `res->interfaces' with instantiated
5686         versions of all the interfaces we inherit.
5687
5688 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5689
5690         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5691         when MONO_PATH is set but doesn't contain the install dir.
5692
5693 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5694
5695         * icall.c:
5696         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5697         it's also implemented in base classes. Fixes bug #50927.
5698
5699 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5700
5701         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5702         if this method is called from a finalizer. Fixes #50913.
5703
5704 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5705
5706         * threads.c: Implement VolatileRead/VolatileWrite
5707
5708         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5709
5710 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5711
5712         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5713         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5714         2.95.3.
5715
5716         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5717         from Peter Ross (pro@missioncriticalit.com).
5718         
5719 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5720
5721         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5722
5723 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5724
5725         * assembly.c (mono_assembly_load_references): Disable check because it
5726         triggers on older corlibs which lots of people have.
5727
5728 2003-11-12  Jackson Harper  <jackson@ximian.com>
5729
5730         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5731         load corlib.dll if mscorlib.dll is not found.
5732         * assembly.h: Remove corlib name define.
5733         * class.c:
5734         * domain.c:
5735         * image.c: Change corlib name to mscorlib.
5736         
5737 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5738
5739         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5740
5741 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5742
5743         * appdomain.h: Added loader_optimization here to sync with the C#
5744         code, and add disallow_binding_redirects field.
5745
5746 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5747
5748         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5749
5750         * reflection.c (mono_image_build_metadata): Fix crash on modules
5751         with no types.
5752
5753         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5754
5755         * icall.c (ves_icall_get_method_info): Return callingConvention as
5756         well.
5757
5758         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5759         namespaces from the EXPORTEDTYPE table as well.
5760
5761         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5762         from all modules inside the assembly.
5763         
5764 2003-11-11  Martin Baulig  <martin@ximian.com>
5765
5766         * reflection.c (mono_reflection_bind_generic_parameters): Make
5767         this work for interfaces.
5768
5769 2003-11-11  Martin Baulig  <martin@ximian.com>
5770
5771         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5772
5773 2003-11-11  Martin Baulig  <martin@ximian.com>
5774
5775         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5776         "MonoInflatedMethod" and "MonoInflatedCtor".
5777
5778 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5779
5780         * reflection.c (resolution_scope_from_image): Use the assembly table
5781         from the manifest module, since other modules don't have it.
5782
5783         * debug-helpers.c (mono_type_full_name): New helper function.
5784
5785         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5786
5787         * image.c (mono_image_load_file_for_image): New public function which
5788         is a replacement for the load_file_for_image in class.c.
5789
5790         * assembly.c (mono_assembly_load_module): A wrapper for the function
5791         above which does assembly association and reference loading too.
5792
5793         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5794
5795 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5796
5797         * appdomain.c: not all of the attributes for the full assembly name
5798         are required and the order doesn't matter. Fixes bug #50787.
5799
5800 2003-11-10  Dick Porter  <dick@ximian.com>
5801
5802         * locales.c: Use platform-endian UTF16
5803
5804 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5805
5806         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5807         
5808 2003-11-10  Martin Baulig  <martin@ximian.com>
5809
5810         * metadata.c
5811         (mono_metadata_load_generic_params): Make this actually work.
5812
5813         * reflection.c (mono_reflection_bind_generic_parameters): If our
5814         parent is a generic instance, pass all the `types' to it, no
5815         matter whether it has the same number of type parameters or not.
5816
5817 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5818
5819         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5820
5821         * assembly.c (mono_assembly_load_references): Move the image<->assembly
5822         assignment code to this function so it gets called recursively for all
5823         modules.
5824
5825         * image.c (load_modules): Remove the assembly assignment since it is
5826         now done by mono_assembly_load_references.
5827         
5828         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5829         Add 'module' argument.
5830         (mono_module_get_types): New helper function.
5831         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
5832
5833 2003-11-08  Martin Baulig  <martin@ximian.com>
5834
5835         * class.c (mono_class_inflate_generic_method): Interface method
5836         don't have a header.
5837
5838         * reflection.c (mono_image_get_methodspec_token): Take an
5839         additional `MonoGenericInst *' argument instead of reading it from
5840         the header; this is necessary to support interfaces.
5841         (mono_image_create_token): Pass the `MonoGenericInst *' from the
5842         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
5843         (inflated_method_get_object): Take an additional `MonoGenericInst *'
5844         argument.
5845
5846         * reflection.h (MonoReflectionInflatedMethod): Added
5847         `MonoGenericInst *ginst'.
5848
5849 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
5850
5851         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
5852
5853 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
5854
5855         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
5856
5857 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
5858
5859         * reflection.c 
5860         (reflection_methodbuilder_from_method_builder):
5861         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
5862         initialize a ReflectionMethodBuilder structure.
5863         (mono_image_get_methodbuilder_token):
5864         (mono_image_get_ctorbuilder_token): New functions to emit memberref
5865         tokens which point to types in another module inside the same assembly.
5866
5867         * reflection.c: Use the new helper functions.
5868         
5869         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
5870
5871         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
5872         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
5873
5874         * reflection.c (resolution_scope_from_image): Emit a moduleref if
5875         neccesary.
5876
5877         * reflection.c (mono_image_build_metadata): Emit metadata only for the
5878         current module. Emit the manifest only for the main module.
5879
5880         * reflection.c (mono_image_create_token): Add assertion when a 
5881         memberref needs to be created.
5882
5883         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
5884
5885         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
5886         larger buffer for the custom attribute blob. Fixes #50637.
5887         
5888 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5889
5890         * threadpool.c: notify listener on async processing handles after
5891         invoking the async callback. Thanks to Zoltan.
5892
5893 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5894
5895         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
5896         avoid code duplication.
5897
5898         * reflection.h (MonoDynamicImage): New type which is currently unused,
5899         but will be used through the ref.emit code in place of 
5900         MonoDynamicAssembly.
5901
5902         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5903         object layout.
5904
5905         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
5906         a MonoDynamicImage instead of just a MonoImage.
5907         
5908         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
5909         icalls to ModuleBuilder but keep their semantics, so they will work
5910         with moduleb->assemblyb. This will change later.
5911         
5912 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5913
5914         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5915         object layout.
5916
5917         * reflection.c (mono_image_build_metadata): Avoid creation of a default
5918         main module, since it is now done by the managed code.
5919
5920 2003-11-03  Martin Baulig  <martin@ximian.com>
5921
5922         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
5923         `ginst->klass' here.
5924         (method_encode_methodspec): Don't use the `ginst->generic_method's
5925         klass if it's a generic instance, use `ginst->klass' in this case.
5926
5927 2003-11-03  Martin Baulig  <martin@ximian.com>
5928
5929         * reflection.c (mono_image_get_generic_method_param_info):
5930         Removed, use mono_image_get_generic_param_info() instead.
5931         (mono_image_get_type_info): Write the GenericParam table before
5932         the Method table.  This is neccessary because in the GenericParam
5933         table, type parameters of the class (ie. '!0' etc.) must come
5934         before the ones from its generic methods (ie. '!!0' etc).
5935
5936 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5937
5938         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
5939
5940 2003-11-02  Martin Baulig  <martin@ximian.com>
5941
5942         * reflection.c (create_generic_typespec): Take a
5943         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
5944         the generic parameters from it.
5945
5946 2003-11-02  Martin Baulig  <martin@ximian.com>
5947
5948         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
5949         instead of a `MonoClassField *' since we just need the type.
5950         (create_generic_typespec): New static function.  Creates a
5951         TypeSpec token for a generic type declaration.
5952         (mono_image_get_generic_field_token): New static function.
5953         (mono_image_create_token): If we're a FieldBuilder in a generic
5954         type declaration, call mono_image_get_generic_field_token() to get
5955         the token.
5956
5957 2003-11-02  Martin Baulig  <martin@ximian.com>
5958
5959         * reflection.h
5960         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
5961         `MonoReflectionGenericInst *declaring_type' and
5962         `MonoReflectionGenericInst *reflected_type' fields.
5963
5964         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
5965         `MonoReflectionGenericInst *declaring_type' and a
5966         `MonoReflectionGenericInst *reflected_type' argument instead of a
5967         single `MonoReflectionGenericInst *type' one.  Set
5968         `res->declaring_type' and `res->reflected_type' from them.
5969         (mono_reflection_inflate_field): Likewise.      
5970
5971 2003-11-02  Martin Baulig  <martin@ximian.com>
5972
5973         * class.c (mono_class_setup_vtable): Don't store generic methods
5974         in the vtable.  
5975
5976 2003-11-02  Martin Baulig  <martin@ximian.com>
5977
5978         * reflection.h (MonoReflectionGenericInst): Added
5979         `MonoReflectionType *declaring_type'.
5980
5981         * reflection.c (mono_reflection_bind_generic_parameters): Use
5982         `if (tb->parent)' instead of `klass->parent'.
5983
5984 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
5985
5986         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
5987         with an empty ASSEMBLY table.
5988
5989         * reflection.c (mono_image_build_metadata): Avoid using the same loop
5990         variable in the inner and outer loops.
5991
5992 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
5993
5994         * metadata.h (mono_metadata_make_token): Put parentheses around macro
5995         argument.
5996
5997         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
5998         
5999         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
6000         icalls. Instead, do everything in managed code. This is needed since
6001         it is hard to restore the original domain etc. in unmanaged code in the
6002         presence of undeniable exceptions.
6003
6004         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
6005         New icalls to push and pop appdomain refs.
6006
6007 2003-10-31  Martin Baulig  <martin@ximian.com>
6008
6009         * class.c (inflate_generic_type): Renamed to
6010         mono_class_inflate_generic_type() and made it public.
6011
6012         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6013         New interncall.
6014
6015         * loader.c (mono_field_from_memberref): Also set the retklass for
6016         typespecs.
6017
6018         * fielder.c (mono_image_get_inflated_field_token): New static
6019         method; creates a metadata token for an inflated field.
6020         (mono_image_create_token, fixup_method): Added support for
6021         "MonoInflatedField".
6022         (fieldbuilder_to_mono_class_field): New static function.
6023         (mono_reflection_inflate_field): New public function.
6024
6025         * reflection.h
6026         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6027         (MonoReflectionInflatedField): New typedef.     
6028
6029 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6030
6031         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6032         for Solaris and other platforms without s6_addr16
6033
6034 2003-10-30  Martin Baulig  <martin@ximian.com>
6035
6036         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6037         argument instead of two.
6038         (mono_class_inflate_generic_signature): Likewise.
6039         (inflate_generic_header): Likewise.
6040         (mono_class_inflate_generic_method): Likewise.  In addition, if
6041         `ginst->klass' is set, it becomes the new `method->klass'.
6042
6043         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6044         field.
6045
6046         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6047         first byte. [FIXME]
6048         (method_encode_methodspec): If we have generic parameters, create
6049         a MethodSpec instead of a MethodRef.
6050         (fixup_method): Added support for "MonoInflatedMethod" and
6051         "MonoInflatedCtor".
6052         (mono_image_create_token): Added support for "MonoInflatedMethod"
6053         and "MonoInflatedCtor".
6054         (inflated_method_get_object): New static function; returns a
6055         managed "System.Reflection.MonoInflatedMethod" object.
6056         (mono_reflection_bind_generic_method_parameters): Return a
6057         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6058         (mono_reflection_inflate_method_or_ctor): Likewise.
6059         (mono_image_get_generic_method_param_info): Initialize unused
6060         fields to zero.
6061         (mono_image_get_generic_param_info): Likewise.
6062
6063         * reflection.h (MonoReflectionInflatedMethod): New public
6064         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6065         "S.R.MonoInflatedCtor" classes.
6066
6067         * loader.c (method_from_memberref): If we're a TypeSpec and it
6068         resolves to a generic instance, inflate the method.
6069
6070 2003-10-28  Dick Porter  <dick@ximian.com>
6071
6072         * object.c (mono_runtime_run_main): Convert command-line arguments
6073         into utf8, falling back to the user's locale encoding to do so.
6074
6075 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6076
6077         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6078         at this time.
6079
6080         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6081
6082         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6083         up icalls at method definition time. Partially fixes #33569.
6084
6085 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6086
6087         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6088         marshalling of arrays. Fixes #50116.
6089
6090         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6091
6092         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6093         points to a vtable in the dying appdomain.
6094
6095         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6096         listeners into unmanaged code inside the lock.
6097
6098         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6099         domains and add some comments.
6100
6101 2003-10-25  Martin Baulig  <martin@ximian.com>
6102
6103         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6104
6105         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6106
6107         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6108         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6109         currently parsing.  Create the generic class and store it in
6110         `generic_inst->klass' before parsing the type arguments.  This is
6111         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6112         for an example.
6113         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6114         to support recursive typespec entries.
6115
6116         * class.c (mono_class_setup_parent): If our parent is a generic
6117         instance, we may get called before it has its name set.
6118         (mono_class_from_generic): Splitted into
6119         mono_class_create_from_generic() and mono_class_initialize_generic().
6120
6121 2003-10-25  Martin Baulig  <martin@ximian.com>
6122
6123         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6124         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6125         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6126         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6127
6128         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6129         (create_typespec): Likewise.
6130         (mono_reflection_bind_generic_parameters): Return a
6131         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6132         (mono_reflection_inflate_method_or_ctor): New public function.
6133
6134         * reflection.h (MonoReflectionGenericInst): New typedef.        
6135
6136 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6137
6138         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6139         inside the domain lock. Fixes #49993.
6140         
6141         * object.c (mono_class_vtable): When typed allocation is used, 
6142         allocate vtables in the GC heap instead of in the mempool, since the
6143         vtables contain GC descriptors which are used by the collector even
6144         after the domain owning the mempool is unloaded.
6145
6146         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6147
6148         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6149         reflect what it does. Also invalidate mempools instead of freeing
6150         them if a define is set.
6151
6152         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6153         of the appdomain.
6154         
6155         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6156         hold the finalizable objects in this domain.
6157
6158         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6159         appdomain.
6160
6161         * appdomain.c (mono_domain_set): New function to set the current
6162         appdomain, but only if it is not being unloaded.
6163
6164         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6165         appdomain which is being unloaded.
6166         
6167         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6168         unloading of the root appdomain.
6169
6170         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6171         icall to execute a method in another appdomain. Intended as a 
6172         replacement for InternalSetDomain, which can confuse the code 
6173         generation in the JIT.
6174
6175         * appdomain.c (mono_domain_is_unloading): New function to determine
6176         whenever an appdomain is unloading.
6177
6178         * appdomain.c (mono_domain_unload): New function to correctly unload
6179         an appdomain.
6180
6181         * assembly.c (mono_assembly_load_references): Check that an assembly
6182         does not references itself.
6183
6184         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6185         domain manually, it asks the finalizer thread to do it, then waits for
6186         the result. Also added a timeout.
6187
6188         * icall.c: Register the new icalls.
6189
6190         * threads.h threads.c: Export the mono_gc_stop_world and 
6191         mono_gc_start_world functions.
6192         
6193         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6194         function to fill out the mempool with 0x2a.
6195
6196 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6197
6198         * reflection.h (MonoReflectionMethodAux): New structure to store
6199         information which is rarely used, thus is not in the MonoMethod
6200         structure.
6201
6202         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6203         store the aux info.
6204
6205         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6206         and marshalling info into the aux structure.
6207
6208         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6209         from the aux structure.
6210
6211         * loader.c (mono_method_get_param_names): Retrieve the param names from
6212         the aux structure.
6213         
6214 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6215
6216         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6217         warning.
6218
6219 2003-10-21  Dick Porter  <dick@ximian.com>
6220
6221         * socket-io.c
6222         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6223         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6224
6225 2003-10-21  Martin Baulig  <martin@ximian.com>
6226
6227         * reflection.c (mono_reflection_bind_generic_parameters):
6228         `klass->parent' is NULL for interfaces.
6229
6230 2003-10-21  Martin Baulig  <martin@ximian.com>
6231
6232         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6233
6234 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6235
6236         * exception.c (mono_exception_from_name_msg): New helper function for
6237         creating exceptions and initializing their message field.
6238
6239         * exception.c: Simplify functions using the new helper.
6240
6241         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6242         New function.
6243
6244         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6245         mono_raise_exception, since otherwise gcc doesn't generate the function
6246         epilog for raise_exception, confusing the stack unwinding in the JIT.
6247         Fixes #45043.
6248
6249         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6250         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6251         Fixes #49499.
6252
6253 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6254
6255         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6256         utf8.
6257
6258 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6259
6260         * icall.c: Removed GetUninitializedObject method because
6261           AllocateUninitializedClassInstance does the same.
6262
6263 2003-10-18  Martin Baulig  <martin@ximian.com>
6264
6265         * class.c (inflate_generic_signature): Renamed to
6266         mono_class_inflate_generic_signature() and made it public.
6267         (my_mono_class_from_generic_parameter): New static function; if we
6268         don't already have the generic parameter's MonoClass, create a
6269         very simple one which is just used internally in the runtime and
6270         not passed back to managed code.
6271
6272         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6273
6274         * metadata.h (MonoMethodSignature): Moved the
6275         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6276         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6277
6278         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6279         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6280         interncall on the MonoMethod class, not on MethodInfo.
6281         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6282         calling mono_reflection_bind_generic_method_parameters() directly.
6283
6284         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6285         return the already computed `method->signature'.
6286         (method_from_methodspec): New static function to load a method
6287         from a MethodSpec entry.
6288         (mono_get_method_from_token): Call the new method_from_methodspec()
6289         for MethodSpec tokens.  
6290         (mono_get_method_from_token): If we're a generic method, load the
6291         type parameters.
6292
6293         * reflection.c (mono_image_get_memberref_token): Allow
6294         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6295         table.
6296         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6297         (mono_image_create_token): First check whether it's a generic
6298         method (so we'd need to create a MethodSpec), then do the other
6299         two alternatives.
6300         (mono_reflection_bind_generic_method_parameters): Return a
6301         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6302         called directly from the interncall.
6303
6304 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6305
6306         * reflection.c (load_public_key): Move loading of the public key
6307         into managed code.
6308
6309         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6310
6311         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6312         fields.
6313
6314         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6315         culture, hash_alg and public_key. Fixes #49555.
6316
6317 2003-10-17  Martin Baulig  <martin@ximian.com>
6318
6319         * class.h (MonoGenericInst): Moved this declaration here and added
6320         `MonoMethod *generic_method'.
6321
6322         * icall.c
6323         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6324         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6325
6326         * metadata.c (mono_metadata_type_equal): Two types of
6327         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6328         index; ie. don't compare the address of the `MonoGenericParam'
6329         structure.
6330         (mono_metadata_load_generic_params): Removed the `MonoMethod
6331         *method' argument.
6332
6333         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6334         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6335
6336         * reflection.c (method_encode_signature): Encode the number of
6337         generic parameters.
6338         (encode_generic_method_sig): New static function.
6339         (method_encode_methodspec): New static function; creates an entry
6340         in the MethodSpec table for a generic method.
6341         (mono_image_get_methodspec_token): New static function.
6342         (mono_image_create_token): Call mono_image_get_methodspec_token()
6343         for generic methods.
6344         (mono_reflection_bind_generic_method_parameters): New public
6345         function.  Instantiates a generic method.
6346
6347 2003-10-16  Martin Baulig  <martin@ximian.com>
6348
6349         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6350         *gen_params' here from MonoMethodHeader.
6351
6352         * metadata.c (mono_metadata_parse_method_signature): If we have
6353         generic parameters, initialize `method->gen_params' and then set
6354         the correct `type->data.generic_param' in all the parameters.
6355
6356 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6357
6358         * threads.c (mono_threads_get_default_stacksize): New function to 
6359         return the default stacksize.
6360
6361         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6362         termination of the finalizer thread, since the previous method had
6363         race conditions. Fixes #49628.
6364
6365         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6366         as for the other managed threads.
6367
6368 2003-10-16  Martin Baulig  <martin@ximian.com>
6369
6370         * class.c (inflate_generic_signature): Copy `generic_param_count'
6371         and `gen_params'.
6372
6373         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6374         New interncall.
6375
6376         * metadata.c (mono_metadata_parse_method_signature): Actually set
6377         the `method->generic_param_count' here.
6378         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6379
6380 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6381
6382         * object.h: Add a new field to TypedRef to simplify the implementation
6383         of the REFANY opcodes in the JIT.
6384
6385         * icall.c: Make use of the new field.
6386
6387         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6388         dynamically.
6389
6390 2003-10-15  Martin Baulig  <martin@ximian.com>
6391
6392         * class.c (mono_class_from_gen_param): Renamed to
6393         mono_class_from_generic_parameter() and moved most of the
6394         functionality from mono_reflection_define_generic_parameter()
6395         here; ie. we create a "real" class here.
6396         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6397         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6398         previously been called.
6399
6400         * class.h (MonoGenericParam): Moved the declaration of this struct
6401         here from metadata.h and added `MonoMethod *method'.
6402
6403         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6404         interncall.
6405
6406         * loader.c (mono_get_method_from_token): If we have any generic
6407         parameters, call mono_metadata_load_generic_params() to read them
6408         from the MONO_TABLE_GENERICPAR.
6409
6410         * metadata.c (mono_metadata_load_generic_params): Added
6411         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6412
6413         * metadata.h (MonoMethodSignature): Replaced
6414         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6415         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6416
6417         * reflection.c (mono_reflection_define_generic_parameter): Moved
6418         most of the functionality into the new
6419         mono_class_from_generic_parameter(); set the `method' field if
6420         we're a method parameter.       
6421
6422 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6423
6424         * marshal.c (emit_struct_conv): if native size is 0
6425         emit no code.
6426
6427 2003-10-14  Martin Baulig  <martin@ximian.com>
6428
6429         * icall.c: The generics API has changed in the spec since it was
6430         added to System.Type; these modifications make it match the spec
6431         again.
6432         (ves_icall_Type_GetGenericParameters): Renamed to
6433         `ves_icall_Type_GetGenericArguments'.
6434         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6435         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6436         `ves_icall_MonoType_get_HasGenericArguments'.
6437         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6438         `ves_icall_MonoType_get_IsGenericParameter'.
6439         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6440         this is no interncall anymore.
6441         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6442         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6443
6444 2003-10-14  Martin Baulig  <martin@ximian.com>
6445
6446         * reflection.c (mono_reflection_bind_generic_parameters): Also
6447         inflate generic methods if we're reading the class from IL.
6448
6449 2003-10-13  Martin Baulig  <martin@ximian.com>
6450
6451         * reflection.c (mono_reflection_define_generic_parameter): This
6452         method isn't called directly from the icall anymore; take a
6453         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6454         method generic parameters.
6455         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6456         (method_builder_encode_signature): Encode generic parameters.
6457         (mono_image_get_method_info): Write generic params to the
6458         MONO_TABLE_GENERICPARAM table.
6459
6460         * reflection.h (MonoReflectionMethodBuilder): Added
6461         `MonoArray *generic_params'.
6462
6463         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6464
6465         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6466         wrapper for mono_reflection_define_generic_parameter().
6467         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6468
6469 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6470
6471         * marshal.h: Add missing function to fix build.
6472
6473         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6474         the SetLastError pinvoke attribute.
6475
6476         * marshal.c (mono_marshal_set_last_error): New helper function called
6477         by the generated code.
6478         
6479         * marshal.c (mono_mb_emit_branch): New helper function.
6480
6481         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6482
6483         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6484         classes as parameters and return values of delegates. Fixes #29256. 
6485
6486 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6487
6488         * locales.c: use gint32 in non HAVE_ICU case
6489
6490 2003-10-11  Martin Baulig  <martin@ximian.com>
6491
6492         * mono-debug.c (mono_debug_add_method): Added a workaround for
6493         bug #48591.
6494
6495 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6496
6497         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6498         delegates passed to native code must use the STDCALL calling 
6499         convention. Fixes #35987.
6500
6501 2003-10-10  Martin Baulig  <martin@ximian.com>
6502
6503         * class.c (inflate_generic_type): If we're inflating for a generic
6504         type instance (and not for a generic method), return
6505         MONO_TYPE_MVAR unchanged.
6506
6507 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6508
6509         * string-icalls.c: Join ignores null strings in the source array.
6510         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6511         * threads.c: GetAvailableTheads is slightly more accurate.
6512
6513 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6514
6515         * threads.h threads.c : add mono_threads_set_default_stacksize
6516         and pass default to CreateThread calls.
6517
6518 2003-10-09  Dick Porter  <dick@ximian.com>
6519
6520         * icall.c:
6521         * locales.h:
6522         * locales.c: Internal calls for constructing CultureInfo and
6523         related objects from libicu (if its available.)
6524
6525 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6526
6527         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6528
6529 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6530
6531         * threadpool.c: added an argument to async_invoke_thread that is the
6532         item to process, pass the MonoAsyncResult to the thread start function
6533         when creating a new thread. This way we don't need to acquire any lock
6534         when we're creating a new thread. Readded a semaphore for faster
6535         response times (instead of that Sleep i added).
6536
6537 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6538
6539         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6540         get daylight change dates better on Windows, fix handling
6541         of platforms without tm_gmtoff.
6542
6543 2003-10-06  Martin Baulig  <martin@ximian.com>
6544
6545         * class.c (inflate_generic_method): Renamed to
6546         mono_class_inflate_generic_method() and made public.
6547         (mono_class_init): Don't inflate the generic methods here.
6548         (mono_class_from_generic): Added `gboolean inflate_methods'
6549         argument.  Inflate the methods here.
6550
6551         * loader.c (mono_method_get_param_names): Ignore instances of
6552         generic types for the moment.
6553
6554         * reflection.c (fixup_method): Added support for inflated methods.
6555         (mono_image_create_token): Use mono_image_get_methodref_token()
6556         for inflated methods.
6557         (mono_custom_attrs_from_param): Ignore instances of generic types
6558         for the moment.
6559         (mono_reflection_bind_generic_parameters): New public function.
6560         Moved all the functionality from
6561         ves_icall_Type_BindGenericParameters() here and added support for
6562         dynamic types.
6563         (mono_reflection_define_generic_parameter): Initialize
6564         `klass->methods' here.
6565
6566         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6567         functionality into mono_reflection_define_generic_parameter().
6568         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6569         TypeBuilder, return that TypeBuilder.
6570
6571 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6572
6573         * appdomain.c: removed mono_delegate_semaphore.
6574
6575         * threadpool.c:
6576         (mono_thread_pool_add): moved hash table creation inside and the thread 
6577         creation outside of the critical region.
6578         (mono_thread_pool_finish): removed obsolete code.
6579         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6580         continue or exit the thread depending on the queue.
6581
6582 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6583
6584         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6585         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6586         handle more bool marshalling options
6587
6588 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6589
6590         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6591         arrays of structs. Also add a more descriptive error message when
6592         a structure member is marshalled as LPArray.
6593
6594 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6595
6596         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6597         marshalling arrays of complex types. Fixes #29098. Also remove an
6598         usused and incomplete function.
6599
6600 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6601
6602         * gc.c: report heap_size - free_bytes as total memory allocated
6603         (bug#49362).
6604
6605 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6606
6607         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6608         fix timezone handling problems on Windows.
6609         
6610         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6611         asserts when the year is outside the range handled by ms the functions.
6612
6613         * class.c (setup_interface_offsets): If the class is an interface,
6614         fill out its interface_offsets slot.
6615
6616 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6617
6618         * threadpool.c: mark threadpool threads as background.
6619
6620 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6621
6622         * decimal.c - define DECINLINE to nothing if not using GCC
6623
6624 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6625
6626         * assembly.c: More refcount fixes.
6627
6628 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6629
6630         * string-icalls.c: if we're not trimming, return the same string.
6631         When not splitting, don't create a new string.
6632
6633 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6634
6635         * image.c:
6636         (mono_image_open): increment the ref_count inside the critical section.
6637
6638 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6639
6640         * image.c (mono_image_open): Fix reference counting bug.
6641
6642 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6643
6644         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6645         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6646         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6647         mono_lookup_pinvoke_call throws.        
6648
6649 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6650
6651         * reflection.c (mono_reflection_parse_type): Fix #49114.
6652
6653         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6654         temporary workaround for cygwin header problem.
6655
6656         * object.c (mono_object_isinst): Synchronize this with the code
6657         generated by the JIT for casts.
6658
6659 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6660
6661         * reflection.c (encode_type): Fix #38332.
6662
6663 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6664
6665         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6666         the original method from the wrapper method.
6667
6668 2003-09-25  Martin Baulig  <martin@ximian.com>
6669
6670         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6671         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6672         (ves_icall_Type_get_IsGenericInstance): New interncall.
6673
6674 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6675
6676         * object.c: fix cast warning in big endian code.
6677
6678 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6679
6680         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6681         
6682 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6683
6684         * assembly.c: don't call check_env from mono_assembly_load. It's
6685         already done once in mono_assemblies_init and may cause headaches when
6686         multiple threads are loading assemblies.
6687
6688 2003-09-19  Martin Baulig  <martin@ximian.com>
6689
6690         * reflection.c (mono_reflection_define_generic_parameter): Don't
6691         allocate `klass->methods', set `klass->flags' to
6692         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6693
6694 2003-09-18  Martin Baulig  <martin@ximian.com>
6695
6696         * class.c (mono_class_init): Don't create `class->methods' if it's
6697         already initialized.
6698
6699         * metadata.c (mono_metadata_load_generic_params): Make this
6700         actually work.
6701
6702         * reflection.c (mono_reflection_define_generic_parameter): Set
6703         parent class and interfaces from the constraints.
6704
6705         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6706         to keep this struct in sync with the declaration in TypeBuilder.cs.
6707
6708 2003-09-17  Martin Baulig  <martin@ximian.com>
6709
6710         * metadata.h (MonoType): Replaced the data's `int type_param'
6711         field with `MonoGenericParam *generic_param'.
6712         (MonoGenericParam): Added `MonoClass *klass'.
6713
6714         * class.c (mono_class_from_gen_param): Removed the
6715         `MonoImage *image' and `int type_num' arguments.
6716
6717         * metadata.c (mono_metadata_parse_generic_param): New static
6718         method; creates a MonoGenericParam which just contains the index.
6719         (do_mono_metadata_parse_type): Call
6720         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6721         MONO_TYPE_MVAR.
6722
6723         * reflection.c (mono_image_typedef_or_ref): Generic type
6724         parameters may be in the same assembly, but never use a typedef
6725         for them.
6726         (mono_reflection_define_generic_parameter): We're now creating a
6727         "real" class for the type parameter; it's now safe to call
6728         mono_class_from_mono_type() on the class'es type, it'll do the
6729         right thing.
6730
6731 2003-09-16  Martin Baulig  <martin@ximian.com>
6732
6733         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6734         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6735         the `symfile' data structure must be fully initialized before it
6736         gets added to the table.
6737
6738 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6739
6740         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6741
6742         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6743         class init trampolines.
6744
6745 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6746
6747         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6748         to the built-in profiler to turn off time and allocation profiling
6749         respectively.
6750
6751 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6752
6753         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6754         g_direct_equal.
6755
6756         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6757         in human readable form.
6758
6759 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6760
6761         * reflection.c icall.c: Fixed warnings.
6762
6763         * image.c (load_class_names): Use a temporary hash table to hold the
6764         namespaces in order to avoid doing many string comparisons.
6765
6766         * image.h: Fix typo.
6767
6768         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6769         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6770         since the NULL case is short-circuited inside g_hash_table_lookup, 
6771         leading to better performance.  
6772
6773         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6774         obtain the first custom attribute for a given index. Depends on the
6775         CustomAttribute table being sorted by the parent field.
6776
6777         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6778         for better performance.
6779
6780 2003-09-07  Martin Baulig  <martin@ximian.com>
6781
6782         * class.c (mono_class_init): If we're a generic instance, inflate
6783         all our methods instead of loading them from the image.
6784         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6785
6786 2003-09-07  Martin Baulig  <martin@ximian.com>
6787
6788         * mono-debug-debugger.c: Added support for constructors.
6789
6790 2003-09-06  Martin Baulig  <martin@ximian.com>
6791
6792         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6793         New interncall.
6794
6795         * reflection.c (mono_reflection_setup_generic_class): Call
6796         ensure_runtime_vtable() to create the vtable.
6797
6798 2003-09-05  Martin Baulig  <martin@ximian.com>
6799
6800         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6801         MONO_TYPE_MVAR.
6802
6803 2003-09-04  Martin Baulig  <martin@ximian.com>
6804
6805         * reflection.c (mono_reflection_define_generic_parameter): Generic
6806         parameters start with zero.
6807
6808 2003-09-04  Martin Baulig  <martin@ximian.com>
6809
6810         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6811
6812         * reflection.h (MonoReflectionGenericParam): New typedef.
6813         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
6814         the generic parameters from the managed TypeBuilder.
6815
6816         * reflection.c (mono_reflection_define_generic_parameter): New function.
6817         (mono_reflection_create_runtime_class): Encode generic parameters.
6818         (mono_reflection_setup_generic_class): New function; this is
6819         called after adding adding all generic params to the TypeBuilder.
6820         (encode_type): Added MONO_TYPE_VAR.
6821
6822 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
6823
6824         * class.h class.c (mono_class_needs_cctor_run): Moved this method
6825         here from the JIT.
6826
6827         * assembly.h assembly.c: Moved the AOT loading code into an assembly
6828         load hook.
6829
6830 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
6831
6832         * reflection.h reflection.c class.h class.c: Delete duplicate 
6833         definition of mono_type_get_name () from reflection.c and export the
6834         one in class.c.
6835
6836         * class.c: Class loading fixes from Bernie Solomon 
6837         (bernard@ugsolutions.com).
6838
6839         * reflection.c: Endianness fixes from Bernie Solomon 
6840         (bernard@ugsolutions.com).
6841         
6842 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
6843
6844         * assembly.h assembly.c: Define a file format version for AOT
6845         libraries.
6846         
6847         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
6848
6849         * appdomain.h (MonoJitInfo): New field to determine whenever the
6850         code is domain neutral.
6851         
6852 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
6853
6854         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
6855
6856 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
6857
6858         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
6859         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
6860         Avoid caching the result since strings must be domain specific. Fixes
6861         #48050.
6862
6863 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
6864
6865         * marshal.c (mono_marshal_init): Make this callable multiple times
6866         since it is hard to find a correct place to call it.
6867
6868         * object.c (mono_runtime_class_init): Execute static constructors in
6869         the correct appdomain.
6870
6871         * image.c (build_guid_table): Handle the case when multiple images have
6872         the same GUID.
6873
6874 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6875
6876         * icall.c: added a couple of icalls for System.Web.
6877
6878 2003-08-28  Martin Baulig  <martin@ximian.com>
6879
6880         * icall.c (ves_icall_Type_BindGenericParameters): Use
6881         `klass->generic_inst' instead of `&klass->byval_arg' in the
6882         mono_type_get_object() call.  The returned type must be
6883         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
6884
6885 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
6886
6887         * NOTES: New file.
6888
6889         * object.c (mono_class_proxy_vtable): Make it thread safe.
6890
6891         * pedump.c: Fix warning.
6892
6893         * object.c appdomain.h: Get rid of metadata_section. 
6894         It is no longer needed and it was causing deadlocks with domain->lock.
6895
6896         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
6897
6898 2003-08-26  Martin Baulig  <martin@ximian.com>
6899
6900         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
6901
6902 2003-08-26  Martin Baulig  <martin@ximian.com>
6903
6904         * pedump.c (main): Call mono_metadata_init(),
6905         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
6906         and mono_loader_init().
6907
6908 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
6909
6910         * loader.h: Add missing include to fix build.
6911
6912         * image.h: mono_image_load_references is no more.
6913
6914         * assembly.c: Reworked assembly loading to make it really thread safe.
6915         After these changes, the assembly returned by mono_assembly_open is
6916         fully initialized, i.e. all its references assemblies are loaded.
6917
6918         * assembly.c (mono_image_load_references): Renamed to 
6919         mono_assembly_load_references, and made private, since clients no
6920         longer need to call it.
6921
6922         * class.c: Removed calls to mono_assembly_load_references, since it was
6923         a source of deadlocks.
6924
6925         * loader.h loader.c class.h class.c: Protect data structures using a 
6926         new lock, the loader lock.
6927
6928         * class.c (mono_class_setup_vtable): Create temporary hash tables and
6929         GPtrArrays only when needed.
6930
6931         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
6932         into empty structures by mcs. Fixes pinvoke7.cs.
6933         
6934         * domain.c (mono_init): Call a new initialization function.
6935
6936         * appdomain.c (mono_runtime_init): Call the new initializer function
6937         of the marshal module.
6938
6939         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
6940         inserted into empty structures by mcs. Fixes pinvoke7.cs.
6941
6942         * marshal.h marshal.c: Added locks around the wrapper caches to make
6943         this module thread safe.
6944
6945         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
6946         this argument. Fixes pinvoke1.exe.
6947
6948 2003-08-25  Lluis Sanchez <lluis@ximian.com>
6949
6950         * object.h: Added call_type field to MonoMethodMessage and the corresponding
6951         enumeration of values. Removed fields to store remote call output values in
6952         MonoAsyncResult. Not needed any more.
6953         * object.c: Initialize call_type and async_result fields in mono_message_init.
6954         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
6955         dispatching the message.
6956         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
6957         async call to finish. To do it use a message with EndInvoke call type.
6958
6959 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
6960
6961         * loader.h loader.c (mono_method_hash_marhal_info): New function which
6962         determines whenever a method has marshalling info.
6963
6964 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6965
6966         * assembly.c: fix the build on windows.
6967
6968 2003-08-22 Lluis Sanchez <lluis@ximian.com>
6969
6970         * object.cs: Fixed bug #47785.
6971
6972 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
6973
6974         * string-icalls.c (StringReplace): If their are no occurances of
6975         the old string found return a reference to the supplied
6976         string. This saves some memory and matches MS behavoir.
6977         
6978 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6979
6980         * socket-io.c: fixed compilation for systems that define AF_INET6
6981         and don't define SOL_IP/SOL_IPV6.
6982
6983 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
6984
6985         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
6986         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
6987
6988         * rawbuffer.c rawbuffer.h: Make this module thread safe.
6989
6990         * domain.c: Make this module thread safe.
6991
6992         * domain.c (mono_init): Call new initialization function.
6993
6994         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
6995         reference types too. Fixes #38812.
6996
6997         * image.c (mono_image_init): Fixed warnings.
6998
6999         * class.c (mono_class_from_typeref): Handle assembly load failure
7000         correctly.
7001
7002         * appdomain.c (add_assemblies_to_domain): Handle the case when
7003         the references of an assembly are not yet loaded.
7004
7005         * metadata.c image.c assembly.c: Moved initialization of global
7006         variables to a separate function called at startup since lazy 
7007         initialization of these variables is not thread safe.
7008         
7009         * image.c assembly.c: Made this module thread safe by adding locks in 
7010         the appropriate places.
7011
7012         * domain.c (mono_init): Call the new initialization functions of the
7013         three modules.
7014
7015 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
7016
7017         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7018           make a direct call. It is proxy's work to make the call asynchronous.
7019           mono_delegate_end_invoke(): If the targe is a proxy, just collect
7020           the return values.
7021         * object.cs: mono_method_call_message_new(): read AsyncResult and
7022           state object from parameters list, if this info is requested.
7023         * object.h: Added fields to store remote call output values in
7024           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7025
7026 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7027
7028         * object.h: add needed fields to MonoThread.
7029         * threads.c, threads.h: allow registering a function to cleanup data
7030         allocated per thread by the JIT.
7031
7032 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7033
7034         * loader.h: portability fix by Bernie Solomon
7035         * <bernard@ugsolutions.com>.
7036
7037 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7038
7039         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7040         return a MonoArray. This simplifies the code and also ensures that
7041         the cache allways contains an object reference as a value.
7042
7043         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7044         function.
7045
7046 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7047
7048         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7049         fixes a problem with byte ordering when getting the address family for
7050         a socket.
7051
7052 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7053
7054         * .cvsignore: Added monosn.
7055
7056         * reflection.h reflection.c loader.c: Added support for parameter
7057         marshalling to dynamically created types. Fixes #47295.
7058
7059 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7060
7061         * rand.c: remove useless warnings.
7062
7063 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7064
7065         * class.c: implemented ldtoken for methods and fieldrefs.
7066
7067 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7068
7069         * threadpool.c: when mono_async_invoke was called, no one took care of
7070         monitoring the queue. So if the method invoked took some time and we
7071         got new async invoke requests after 500 ms (the thread created waited
7072         that long in WaitForSingleObject), the new async invoke was not called
7073         until the previous one finished.
7074
7075         This is fixed now. Thanks to Totte for helping with it.
7076
7077 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7078
7079         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7080
7081 2003-08-11  Martin Baulig  <martin@ximian.com>
7082
7083         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7084
7085 2003-08-06  Martin Baulig  <martin@ximian.com>
7086
7087         * mono-debug-debugger.c: Added support for static fields,
7088         properties and methods.
7089
7090 2003-08-06  Martin Baulig  <martin@ximian.com>
7091
7092         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7093         make this work for applications with multiple application domains.
7094
7095 2003-08-04  Martin Baulig  <martin@ximian.com>
7096
7097         * mono-debug-debugger.c: Completely reworked the type support; the
7098         most important thing is that we're now just using one single
7099         `MonoType' instance per type.
7100
7101 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7102
7103         * mono-endian.h, mono-endian.c, icall.c: Added icall
7104         ves_icall_System_Double_AssertEndianity to assert double word endianity
7105         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7106
7107 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7108
7109         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7110         support, icalls and fixes.
7111
7112 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7113
7114         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7115         classes that are a punctuation character in .NET is not the same a
7116         g_unichar_ispunct.
7117
7118 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7119
7120         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7121
7122 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7123
7124         * icall.c: Add new MemCopy internalcall.
7125         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7126         Simplified code; It is not necessary to handle all the cases here,
7127         as the C# code takes care of it.  Only handle the case of the name
7128         resource embedded into the assembly.
7129
7130         Changed signature to return the data pointer and the size of the
7131         data. 
7132
7133 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7134
7135         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7136         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7137
7138 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7139
7140         * socket-io.c: ignore EINTR error in select.
7141
7142 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7143
7144         * class.h, class.c: removed unused subclasses field in MonoClass.
7145
7146 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7147
7148         * icall.c: improve fix of get_base_definition(). If the parent class
7149           doesn't have the mehod, look at the parent of the parent.
7150         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7151           to check if a parameter is an in or out parameter
7152           (PARAM_ATTRIBUTE_IN is not set by default).
7153           mono_method_return_message_restore(): Use mono_class_value_size to
7154           get the size of a value type. mono_type_stack_size (parameterType)
7155           does not return the correct value if parameterType is byRef.
7156           mono_load_remote_field(), mono_load_remote_field_new(),
7157           mono_store_remote_field(), mono_store_remote_field_new():
7158           raise exception if the remote call returns an exception.
7159
7160 2003-07-28  Martin Baulig  <martin@ximian.com>
7161
7162         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7163         method.  This is a wrapper around mono_runtime_invoke() which
7164         boxes the instance object if neccessary.
7165
7166 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7167
7168         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7169         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7170
7171 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7172
7173         * icall.c: disable mcs bug workaround.
7174
7175 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7176
7177         * object.c (mono_runtime_class_init): Take the metadata_section
7178         mutex before obtaining the domain mutex.
7179
7180         * appdomain.h: Added definition of metadata_section mutex here. 
7181
7182         * object.c: define metadata_mutex here.
7183
7184 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7185
7186         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7187         fixed.
7188
7189 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7190
7191         * reflection.c: Fix bug #46669
7192
7193 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7194
7195         * exception.c:
7196         * exception.h:
7197         * icall.c:
7198         * object.h: fill in the type name for TypeLoadException.
7199
7200 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7201
7202         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7203         relationship between TypeBuilders while compiling corlib) and bug
7204         45993 (Array types returned from the runtime while compiling
7205         corlib were from the loaded corlib).
7206
7207 2003-07-22  Martin Baulig  <martin@ximian.com>
7208
7209         * mono-debug-debugger.c: Reworked the type support a bit more;
7210         distinguish between types and classes.
7211
7212 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7213
7214         * icall.c: add IsArrayImpl icall.
7215
7216 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7217
7218         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7219         initializing real_size only once. Also fix bug #46602.
7220
7221 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7222
7223         * object.c: Renamed mono_metadata_section to metadata_section.
7224
7225 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7226
7227         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7228           empty array if the type is an array. Fixed.
7229           ves_icall_MonoMethod_get_base_definition: if the base method
7230           is abstract, get the MethodInfo from the list of methods of
7231           the class.
7232         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7233           and it was 1-based. Fixed in mono_param_get_objects.
7234
7235 2003-07-20  Martin Baulig  <martin@ximian.com>
7236
7237         * mono-debug.h: Set version number to 31.
7238         (mono_debug_init): Added `MonoDomain *' argument.
7239
7240         * mono-debug-debugger.c: Reworked the type support; explicitly
7241         tell the debugger about builtin types; pass the `klass' address to
7242         the debugger.
7243
7244 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7245
7246         * image.c: Allow new metadata tables to be loaded without a
7247         warning. Also update the warning message to give the new constant value.
7248                 
7249 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7250
7251         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7252         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7253         array type representation changes.
7254
7255 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7256
7257         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7258         on Environment.Exit () call.
7259
7260 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7261
7262         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7263         requires a matching corlib.
7264
7265 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7266
7267         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7268           Committed again without the CRs.
7269         
7270 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7271
7272         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7273           getting it from the "this" socket instance. Did not work
7274           if the socket is a subclass of Socket.
7275           Also fixed bug #35371.
7276
7277 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7278
7279         * metadata.c: fixed size for TypedByRef.
7280         * loader.c: when searching for a method, consider the vararg amrker.
7281         * unicode.c, decimal.c: constify some arrays.
7282
7283 2003-07-15  Dick Porter  <dick@ximian.com>
7284
7285         * socket-io.c: Fixed compilation for gcc < 3.2.
7286
7287         Fixed compilation for machines that don't have AF_INET6 (thanks to
7288         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7289
7290         Fixed compile warnings.
7291         
7292         Fixed formatting and line endings.
7293
7294 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7295
7296         * socket-io.h:
7297         * socket-io.c: Added IPv6 support.
7298
7299 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7300
7301         * class.c (mono_class_is_assignable_from): New function to implement
7302         the is_assignable_from logic. Used by mono_object_isinst, 
7303         Type::IsAssignableFrom () and the interpreter.
7304
7305         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7306         Object, even interfaces.
7307         
7308         * object.c (mono_object_isinst): Implement in terms of 
7309         is_assignable_from.
7310
7311         * icall.c (ves_icall_type_is_assignable_from): New icall.
7312
7313 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7314
7315         * domain.c (foreach_domain): fix compiler warning.
7316
7317 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7318
7319         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7320         not available on all plattforms
7321
7322 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7323
7324         * image.h image.c: Store the metadata version string in MonoImage.
7325         * icall.c: New icall to retrieve the image version.
7326         * reflection.c (create_dynamic_image): Fill in the image version field
7327         * reflection.c (build_compressed_metadata): Use the image version
7328         from the image structure.
7329
7330 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7331
7332         * appdomain.c: modified comment.
7333         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7334         That will be its last iteration when mono_gc_cleanup is called from
7335         mono_runtime_cleanup and before the domain is unloaded.
7336
7337         Fixes bug #45962.
7338
7339 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7340
7341         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7342         attributes.
7343
7344 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7345
7346         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7347         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7348         Bernie Solomon <bernard@ugsolutions.com>.
7349
7350 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7351
7352         * object.c, object.h: provide mono_object_new_fast() for faster
7353         allocation in some special cases.
7354
7355 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7356
7357         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7358         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7359
7360 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7361
7362         * threadpool.c: fix leaks.
7363
7364 2003-07-01  Dick Porter  <dick@ximian.com>
7365
7366         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7367         using MonoGHashTables.  Fixes threadpool bug posted to list.
7368
7369 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7370
7371         * image.h, image.c: added support to load an assembly from a byte array.
7372         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7373         assembly bundle support.
7374
7375 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7376
7377         * threadpool.c (mono_thread_pool_add): keep a reference to the
7378         AsyncResult to prevent GC
7379
7380 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7381
7382         * class.c: leak fix.
7383
7384 2003-06-25  Dick Porter  <dick@ximian.com>
7385
7386         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7387         for the async object, the WaitHandle object will close the handle.
7388         Fixes bug 45321.
7389
7390 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7391
7392         * class.c: in mono_array_class_get (), lookup from the hash with the
7393         same type we insert: this works around a bug in
7394         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7395         lluis. The real fix will have to wait for after the release.
7396
7397 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7398
7399         * icall.c: fix memory leak when getting type members.
7400
7401 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7402
7403         * reflection.c: added more pubtoken special cases.
7404
7405 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7406
7407         * class.c: handle field offset correctly when class size
7408         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7409
7410 2003-06-20  Martin Baulig  <martin@ximian.com>
7411
7412         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7413         *image' field.
7414
7415 2003-06-20  Martin Baulig  <martin@ximian.com>
7416
7417         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7418
7419 2003-06-20  Martin Baulig  <martin@ximian.com>
7420
7421         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7422         just distinguish between variables in registers and variables at
7423         an offset relative to a register.
7424
7425 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7426
7427         * icall.c: #ifdef out latest changes until mcs is fixed.
7428
7429 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7430
7431         * icall.c: return members in metadata order.
7432
7433 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7434
7435         * icall.c: avoid infinite loop in GetTimeZoneData.
7436
7437 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7438
7439         * icall.c: added Marshal.Prelink/All icalls.
7440
7441 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7442
7443         * object.c, object.h: fix warnings and do some overflow checking
7444         when creating arrays.
7445
7446 2003-06-17  Dick Porter  <dick@ximian.com>
7447
7448         * file-io.h:
7449         * file-io.c: File attributes need to be tweaked slightly when
7450         passed from the managed to the w32 world.
7451
7452 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7453         * profiler.h profiler-private.h profiler.c: Rework last patch
7454         based on suggestion by Paolo.
7455         
7456 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7457
7458         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7459         instruction level coverage data collection.
7460         * profiler.h profiler.c (: Added new callback function which can be
7461         used by the profiler to limit which functions should have coverage
7462         instrumentation.
7463         * profiler.c (mono_profiler_load): Call g_module_build_path to
7464         generate the file name of the profiler library.
7465
7466 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7467
7468         * profiler.c, profiler.h, profiler-private.h: added basic block 
7469         coverage profiling API.
7470
7471 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7472
7473         * reflection.c (mono_reflection_create_runtime_class): Add support
7474         for events in dynamically generated code.
7475
7476         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7477         not allocated.
7478
7479 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7480
7481         * icall.c: when getting timezone info, return reasonable values if we
7482         can't get the actual data.
7483
7484 2003-06-14  Dick Porter  <dick@ximian.com>
7485
7486         * threads.c (start_wrapper): Remove the reference to the thread
7487         object in the TLS data, so the thread object can be finalized.
7488         This won't be reached if the thread threw an uncaught exception,
7489         so those thread handles will stay referenced :-( (This is due to
7490         missing support for scanning thread-specific data in the Boehm GC
7491         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7492
7493 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7494
7495         * reflection.c: ensure streams and tables are first allocated with
7496         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7497
7498 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7499
7500         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7501
7502 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7503
7504         * reflection.c (mono_reflection_create_runtime_class): Add support for
7505         properties to dynamically created classes.
7506         * reflection.c: Fix a few places where non-MonoObjects were inserted
7507         into the tokens hashtable.
7508
7509 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7510
7511         * object.c: some support to handle out of memory exceptions.
7512
7513 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7514
7515         * marshal.c (mono_marshal_get_native_wrapper): support reference
7516         return types
7517
7518 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7519
7520         * object.h, object.c: more portability stuff from Bernie Solomon.
7521         Unexport mono_object_allocate(). Added mono_object_unbox ().
7522         Set exitcode when an unhandled exception is thrown.
7523
7524 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7525
7526         * marshal.c (mono_marshal_get_native_wrapper): use custom
7527         marshaler for return types.
7528
7529 2003-06-10  Dick Porter  <dick@ximian.com>
7530
7531         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7532         ip_mreq is available
7533
7534 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7535
7536         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7537         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7538         by Bernie Solomon <bernard@ugsolutions.com>.
7539
7540 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7541
7542         * gc.c (mono_gc_init): Avoid error message on shutdown when
7543         GC_DONT_GC=1 is used.
7544
7545         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7546         New icall to return the GUID of a module.
7547
7548 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7549
7550         * class.c: ensure instance size always includes the parent's size
7551         even whem class size is set explicitly (fixes bug#44294).
7552
7553 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7554
7555         * profiler.h, profiler.c: made the simple profiler thread-safe,
7556         get more accurate timing info. Allow the loading of an
7557         externally-developed profiler module.
7558
7559 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7560
7561         * marshal.c (mono_marshal_get_native_wrapper): improved
7562         class/byref arguments.
7563         (mono_marshal_get_native_wrapper): better string marshaling support.
7564
7565 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7566
7567         * class.c: ensure .pack and .size are handled correctly and
7568         simplified layout of static fields.
7569
7570 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7571
7572         * appdomain.c
7573         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7574
7575         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7576         current directory (fix bug 44008)
7577
7578 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7579
7580         * marshal.c (mono_marshal_get_native_wrapper): started support for
7581         custom marshalers.
7582         (mono_delegate_to_ftnptr): consider marshalling specifications
7583
7584 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7585
7586         * reflection.c, reflection.h: emit custom marshal info.
7587
7588 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7589
7590         * object.c: free the GError.
7591         * icall.c: added CloseEvent_internal.
7592         * threads.[ch]:
7593         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7594         call.
7595
7596 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7597
7598         * loader.c (mono_method_get_signature): Add support for dynamic
7599         assemblies.
7600
7601 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7602
7603         * reflection.c: fixed bug #43905.
7604
7605 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7606
7607         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7608         handling TypedReference and ArgIterator.
7609         * loader.c, loader.h: added function to get signature at call site.
7610
7611 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7612
7613         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7614         data readonly. Buglets and warning fixes. Some MethodSpec support.
7615
7616 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7617
7618         * class.h, class.c, object.c: remove relative numbering support.
7619
7620 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7621
7622         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7623         free the string, until we get a chance to fix Gtk#
7624
7625 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7626
7627         * marshal.c: revert last patch.
7628
7629 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7630
7631         * icall.c: updates for new mono_class_vtable() not calling
7632         the type constructor anymore.
7633
7634 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7635
7636         * object.h, object.c: separate vtable creation from type
7637         initialization. Make running the .cctor thread safe.
7638
7639 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7640
7641         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7642
7643 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7644
7645         * loader.c (mono_get_method): consider calling convention
7646
7647 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7648
7649         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7650         to return the invisible global type for a module.
7651
7652         * reflection.c (mono_image_build_metadata): Emit global fields too.
7653
7654 2003-05-20  Peter Williams  <peterw@ximian.com>
7655
7656         * loader.c (mono_lookup_internal_call): Add a few newlines.
7657
7658 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7659
7660         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7661         literal strings.
7662
7663         * appdomain.c (set_domain_search_path): Recalculate search path when
7664         AppDomainSetup.PrivateBinPath changes.
7665
7666         * object.c (mono_class_compute_gc_descriptor): It turns out some
7667         parts of the class libs (like System.Thread) holds pointers to
7668         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7669         to treat native int a pointer type here.
7670         
7671 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7672
7673         * appdomain.h, domain.c: add hashtable for jump target resolution.
7674
7675 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7676
7677         * reflection.h reflection.c icall.c: Added new icalls 
7678         GetManifestResourceInfoInternal, GetModulesInternal and support
7679         infrastructure.
7680
7681 2003-05-16  Dick Porter  <dick@ximian.com>
7682
7683         * icall.c:
7684         * file-io.h:
7685         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7686
7687 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7688
7689         * object.c: mono_store_remote_field: little fix to previous patch.
7690
7691 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7692
7693         * class.c: add constructors to array classes.
7694         * icall.c: special case array construction for InternalInvoke (),
7695
7696 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7697
7698         * class.h class.c reflection.c object.c: Added support for field
7699         defaults in dynamically generated classes.
7700
7701 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7702
7703         * reflection.c: properly encode charset for ddlimport.
7704
7705 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7706
7707         * threads.c: allow compiling without GC.
7708
7709 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7710
7711         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7712         handling of thread static data.
7713
7714 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7715
7716         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7717
7718 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7719
7720         * class.c (mono_array_class_get): always set the serializable flags
7721         (mono_array_class_get): always set the SEALED attribute for array types
7722
7723 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7724
7725         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7726         attributes (fix for bug 42021).
7727
7728 2003-05-12  Dick Porter  <dick@ximian.com>
7729
7730         * gc.c: Don't run finalizers when the finalizer thread is
7731         finishing up, because the default domain has already been
7732         destroyed.
7733
7734 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7735
7736         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7737         value is null, we should throw an exception.   This is slightly
7738         different than the other conventions used for the constructor.
7739
7740 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7741
7742         * socket-io.c: fixed windows build.
7743
7744 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7745
7746         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7747
7748 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7749
7750         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7751         compilers.
7752
7753 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7754
7755         * class.c (mono_class_layout_fields): Add experimental GC aware
7756         auto layout facility. Requires class library changes to work correctly.
7757
7758         (mono_class_setup_vtable): Avoid overriding explicit interface
7759         method implementations. Fixes iface3.exe test.
7760
7761         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7762         object reference.
7763         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7764         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7765
7766         * metadata.h: Add new type classification macro which determines
7767         whenever the type holds an object reference.
7768
7769 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7770
7771         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7772
7773 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7774
7775         * gc.c (finalizer_thread): Work around a GC bug.
7776
7777 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7778
7779         * marshal.c (emit_struct_conv): allow unions
7780
7781         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7782
7783 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7784
7785         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7786
7787 2003-05-06  Martin Baulig  <martin@ximian.com>
7788
7789         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7790
7791 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7792
7793         * socket-io.c:
7794         (Select_internal): allow NULLs, don't create arrays if not needed.
7795         Coupled with Socket.cs changes.
7796
7797         * threadpool.c:
7798         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7799         register a finalizer for it that will close the semaphore handle. This
7800         fixes the leak and make Lupus' test run with > 4080 loops.
7801
7802 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7803
7804         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7805         Jerome Laban (bug #42287)
7806
7807 2003-05-02  Martin Baulig  <martin@ximian.com>
7808
7809         * debug-mono-symfile.h
7810         (MonoSymbolFile): Moved declaration into mono-debug.h.
7811         (MonoDebugMethodJitInfo): Likewise.
7812         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
7813         argument.
7814         (_mono_debug_address_from_il_offset): Take a
7815         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
7816
7817         * mono-debug.h
7818         (MonoDebugDomainData): New struct.
7819         (mono_debug_get_domain_data): New function.
7820         (mono_debug_add_method): Take an additional `MonoDomain *'
7821         argument.
7822         (mono_debug_source_location_from_address): Likewise.
7823         (mono_debug_il_offset_from_address): Likewise.
7824         (mono_debug_address_from_il_offset): Likewise.
7825
7826 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
7827
7828         * reflection.c: one more check for null type in custom attrs.
7829
7830 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7831
7832         * reflection.c: avoid warning (comparison is always false due to limited
7833         range of data type).
7834
7835 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7836
7837         * icall.c: throw an exception in Type.GetField if the argument 'name'
7838         is NULL.
7839
7840 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
7841
7842         * reflection.c: fixed handling of enums in named arguments to custom
7843         attributes (bug #42123).
7844
7845 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
7846
7847         * reflection.c: use the right array element type and handle
7848         a null for a Type argument, too.
7849
7850 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
7851
7852         * reflection.c: handle arrays as arguments to custom attributes.
7853
7854 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7855
7856         * reflection.c: handle a string value in a custom attr
7857         ctor that takes an object.
7858
7859 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
7860
7861         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
7862         (fix bug #42063)
7863
7864 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
7865
7866         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
7867
7868 2003-04-27  Martin Baulig  <martin@ximian.com>
7869
7870         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
7871         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
7872         MONO_DEBUGGER_EVENT_BREAKPOINT.
7873         (mono_breakpoint_trampoline_code): Removed.
7874         (mono_debugger_event_handler): The last argument is now a
7875         `guint32'.
7876         (mono_debugger_insert_breakpoint_full): Removed the
7877         `use_trampoline' argument.
7878         (mono_debugger_method_has_breakpoint): Likewise.
7879         (mono_debugger_trampoline_breakpoint_callback): Renamed to
7880         mono_debugger_breakpoint_callback(); take the method and
7881         breakpoint number as arguments.
7882
7883 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
7884
7885         * metadata.c: fix off by one when loading parameters attributes.
7886
7887 2003-04-24  Martin Baulig  <martin@ximian.com>
7888
7889         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
7890
7891 2003-04-24  Martin Baulig  <martin@ximian.com>
7892
7893         * mono-debug-debugger.c: Moved all code which interacts with the
7894         Mono Debugger here.
7895
7896         * debug-mono-symfile.c: This code now just deals with the symbol
7897         file itself, the debugger code is now in mono-debug-debugger.c.
7898
7899 2003-04-23  Martin Baulig  <martin@ximian.com>
7900
7901         * mono-debug.c (mono_debug_source_location_from_il_offset):
7902         New method; like mono_debug_source_location_from_address(), but
7903         takes an IL offset instead of a machine address.
7904
7905 2003-04-23  Martin Baulig  <martin@ximian.com>
7906
7907         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
7908         `line' field; this is now computed by the debugger.
7909
7910 2003-04-23  Martin Baulig  <martin@ximian.com>
7911
7912         * mono-debug.[ch]: New files.  This is the new debugging interface.
7913
7914         * mono-debug-debugger.[ch]: New files.  Moved all code which
7915         interacts with the Mono Debugger here.
7916
7917 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
7918
7919         * domain.c (mono_init): initialize mono_defaults.monitor_class
7920
7921 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
7922
7923         * reflection.c (method_encode_code): Add a spicy exception to help
7924         future compiler authors.
7925
7926 2003-04-21  Martin Baulig  <martin@ximian.com>
7927
7928         * icall.c
7929         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7930         Make this work with relative pathnames; g_filename_to_uri() needs
7931         an absolute filename.
7932
7933 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
7934
7935         * icall.c: Track name changes in Object and ValueType.
7936
7937 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
7938
7939         * metadata.c (mono_type_stack_size): size should be a multiple of
7940         sizeof (gpointer)
7941
7942 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7943
7944         * gc.c:
7945         (internal_domain_finalize): moved into mono_domain_finalize. No need
7946         to create another thread because the finalizers will be run in the
7947         finalizer thread.
7948         
7949         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
7950         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
7951         to be run (MS does this too).
7952
7953 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
7954
7955         * object.c (mono_class_compute_gc_descriptor): Update comment.
7956
7957         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
7958
7959         * image.h: Add synchronized wrapper cache.
7960
7961         * image.c (do_mono_image_open): Initialize cache.
7962
7963         * reflection.c (create_dynamic_mono_image): Initialize cache.
7964
7965 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7966
7967         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
7968         ves_icall_System_Buffer_ByteLengthInternal.
7969
7970 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7971
7972         * reflection.c: setup klass->nested_in earlier. Allow
7973         a dash in the assembly name.
7974
7975 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
7976
7977         * metadata.c (mono_type_to_unmanaged): dont access
7978         type->data.klass for MONO_TYPE_OBJECT
7979         (mono_type_to_unmanaged): consider System.Delegate class
7980
7981 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
7982
7983         * class.c: just setup supertypes in the proper place instead of
7984         initializing the full element class for arrays.
7985
7986 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7987
7988         * class.c: ensure the element class of arrays is initialized.
7989         Setup the supertype info for array classes, too.
7990
7991 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
7992
7993         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
7994
7995 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7996
7997         * Makefile.am: re-added -m option when running cygpath. This way,
7998         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
7999         separator.
8000         * mono-config.c: same codepath for locating mono config file for WIN32
8001         and the rest.
8002         * assembly.c: if mono_assembly_setrootdir is called, don't override
8003         the value set.
8004
8005 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8006
8007         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8008         MONO_ASSEMBLIES variable.
8009
8010 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8011
8012         * icall.c: added Assembly::GetNamespaces() icall.
8013
8014 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8015
8016         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8017
8018 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
8019
8020         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8021         * object.c: fixed bug in the construction of vtable for proxies
8022
8023 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8024
8025         * object.c (mono_array_new): Mark mono_array_new as an icall.
8026
8027 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8028
8029         * class.c: fixed test for public method when overriding interfaces.
8030         Closes bug #40970.
8031
8032 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8033
8034         * appdomain.h, domain.c: added mono_domain_foreach() to
8035         be able to access the currently loaded appdomains.
8036         * object.c: make string interning work across sppdomains.
8037         Mark some functions for use as icalls.
8038
8039 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8040
8041         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8042
8043         * reflection.h reflection.c: Allocate long living data using 
8044         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8045
8046         * reflection.c: Double the allocation size in streams instead of
8047         increasing it, to prevent unneccesary copying on large assemblies.
8048         
8049         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8050         creation if the assembly does not have the Run flag set.
8051
8052 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8053
8054         * class.h: avoid the C++ keywords in header files (Jerome Laban
8055         spotted and fixed this).
8056
8057 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8058
8059         * object.c:
8060         (mono_unhandled_exception): fill in the arguments for the
8061         UnhandledException event. Only trigger that event for the default
8062         domain (as MS does).
8063
8064 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8065
8066         * object.c: Improve typed allocation stuff based on suggestions from
8067         Paolo. Also turn it on if the GC library supports it.
8068
8069 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8070
8071         * object.c object.h class.h: Added experimental typed allocation
8072         facility using the interfaces in gc_gcj.h.
8073
8074         * os/gc_wrapper.h: Added new include files.
8075         
8076 2003-04-03  Martin Baulig  <martin@ximian.com>
8077
8078         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8079         which is not yet enabled by default.
8080
8081         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8082         functions.
8083         (mono_gc_lock, mono_gc_unlock): New static functions.
8084
8085         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8086         functions; stop/start the world for the garbage collector.  This
8087         is using the windows API; we need to complete the SuspendThread()/
8088         ResumeThread() implementation in the io-layer to make this work on Unix.
8089         (mono_gc_push_all_stacks): New public function; tells the garbage
8090         collector about the stack pointers from all managed threads.
8091
8092 2003-04-03  Martin Baulig  <martin@ximian.com>
8093
8094         * object.h (MonoThread): Added `gpointer stack_ptr'.
8095
8096         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8097
8098 2003-04-03  Martin Baulig  <martin@ximian.com>
8099
8100         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8101
8102 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8103
8104         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8105         field.last.
8106
8107 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8108
8109         * loader.c (mono_lookup_internal_call): Report the corlib that is
8110         out of sync.
8111
8112 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8113
8114         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8115         System.DBNull (it's class not valuetype).
8116
8117 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8118
8119         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8120         if the array method was already assigned a token (fixes bug#40646).
8121
8122 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8123
8124         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8125         if no assembly is given.
8126
8127 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8128
8129         * metadata.h: Added the new tables.
8130
8131         * row-indexes.h: Added definitions for new tables.
8132
8133         * metadata.c: Add schemas for new tables, and add support for
8134         computing the sizes of them.
8135
8136         * class.c: Update for handling the new type cases.
8137
8138 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8139
8140         * metadata.h (MONO_TYPE_IS_VOID): new macro
8141
8142 2003-03-31  Martin Baulig  <martin@ximian.com>
8143
8144         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8145
8146         * threads.c (mono_thread_new_init): Call `thread_created' in the
8147         mono_thread_callbacks.
8148
8149 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8150
8151         * loader.h: added marshalbyrefobject_class to mono_defaults
8152         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8153         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8154           generation of output parameters.
8155           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8156         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8157           contextbound and the target object belongs to the context of the caller.
8158         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8159         * object.c: Implemented support for interfaces and abstract classes
8160           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8161           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8162
8163 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8164
8165         * class.h class.c (mono_class_is_subclass_of): New function.
8166         
8167         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8168         routines for most common case (calls from ArrayList::ToArray).
8169
8170         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8171         routine so programs which call Environment::Exit() can be profiled.
8172
8173         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8174         Added MONO_ARCH_SAVE_REGS.
8175
8176         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8177
8178 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8179
8180         * blob.h: Add a couple of new MonoType types definitions.
8181
8182         * tabledefs.h: Add a couple of new call convs.
8183
8184 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8185
8186         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8187         the layout of the class.
8188
8189         * reflection.c (alloc_table): double the size on overflow to avoid
8190         unnecessary copying.
8191
8192         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8193         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8194         null so it can be garbage collected.
8195         
8196 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8197
8198         * reflection.c (mono_reflection_get_type): Return the resolved type
8199         only if it is in the assembly we searched.
8200
8201         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8202
8203         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8204         method.
8205
8206 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8207
8208         * appdomain.c:
8209         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8210         the right one is 'file:///blah', but MS allows it.
8211         * assembly.c:
8212         (mono_assembly_open): allow 'file://blah'
8213
8214         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8215
8216 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8217
8218         * socket-io.c: fixes bug #40310.
8219
8220 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8221
8222         * reflection.c (mono_reflection_parse_type): handle deeply nested
8223         types correctly.
8224
8225         * reflection.c (mono_image_create_token): Use unique token values
8226         since they will be put into a hash table.
8227
8228         * class.c (mono_class_setup_vtable): If a method occurs in more than
8229         one place in the vtable, and it gets overriden, then change the
8230         other occurances too.
8231
8232         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8233         object as return type.
8234
8235 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8236
8237         * icall.c: Deleted "ToString" implementation for double and float
8238         because they are full implemented in managed code.
8239
8240 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8241
8242         * reflection.c, reflection.h: implemented and exported functions
8243         to retrieve info about custom attributes.
8244
8245 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8246
8247         * appdomain.c: moved Uri handling to assembly.c
8248         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8249         work when using a file Uri in *nix and windows.
8250
8251         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8252         GetReferencedAssemblies.
8253
8254 2003-03-18  Dick Porter  <dick@ximian.com>
8255
8256         * icall.c: Rename a couple of internal calls
8257
8258         * threads.c: Set the thread state to Stopped when a thread exits.
8259         Fixes bug 39377.
8260
8261 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8262
8263         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8264         New icall.
8265
8266         * object.c (mono_class_vtable): fix warning.
8267
8268 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8269
8270         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8271
8272         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8273         memory.
8274         (method_encode_clauses): Create exception info structures in the right
8275         order.
8276         (mono_reflection_setup_internal_class): Initialize supertypes field.
8277
8278         * class.c object.c: Handle interfaces which implement other interfaces 
8279         correctly.
8280
8281         * class.h class.c: Move the supertypes array initialization code into 
8282         a separate function so it can be used for dynamic types too. Also call
8283         it earlier, in mono_class_init(), since it can be used before the
8284         type is initialized.
8285
8286 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8287
8288         * Makefile.am:
8289         * assembly.c:
8290         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8291
8292         * appdomain.c:
8293         * appdomain.h:
8294         * marshal.c:
8295         * object.c: remove warnings.
8296
8297 2003-03-13  Martin Baulig  <martin@ximian.com>
8298
8299         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8300         (MonoDebugLexicalBlockEntry): New types.
8301
8302         * debug-mono-symfile.c
8303         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8304
8305 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8306
8307         * process.c: ret can be any non-zero value accroding to MS doc.
8308
8309 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8310
8311         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8312         fixing a warning for a miss-used prototype, would have cause
8313         random memory corruption.
8314
8315 2003-03-07  Martin Baulig  <martin@ximian.com>
8316
8317         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8318         getting really annoying ....
8319
8320 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8321
8322         * reflection.c (fixup_method): added support for array methods.
8323
8324 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8325
8326         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8327         (pointed out by Michael Adams).
8328
8329 2003-03-04  Dick Porter  <dick@ximian.com>
8330
8331         * icall.c: Temporarily reverted the Double and Single ToString()
8332         change, because it broke nunit.
8333
8334 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8335
8336         * object.h, threads.h: make include files compatible with C++
8337         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8338
8339 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8340
8341         * icall.c: Erased ToString helper functions for Double and Single.
8342         Now, that implementations ar all in managed code (Double and Single
8343         Formatters).
8344
8345 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8346
8347         * appdomain.c: Added method for initializing the default context of
8348         a domain. Added internal call for getting the default context.
8349         * appdomain.h: Added context variable in MonoDomain struct.
8350         * domain.c: mono_domain_set also sets the default context of the domain
8351         * icall.c: Mapped internal method InternalGetDefaultContext.
8352         * object.c: mono_object_get_virtual_method returns always a remoting
8353         wrapper if the object is a transparent proxy.
8354         mono_runtime_invoke_array: when creating an object by calling the
8355         constructor, if the created object is a proxy, then the constructor should
8356         be called using the a remoting wrapper.
8357
8358 2003-03-03  Dick Porter  <dick@ximian.com>
8359
8360         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8361         variable so it compiles on solaris.  Problem spotted by
8362         Christopher Taylor <ct@cs.clemson.edu>
8363
8364 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8365
8366         * appdomain.c:
8367         (get_info_from_assembly_name): don't leak value.
8368
8369         * icall.c:
8370         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8371         result.
8372
8373 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8374
8375         * assembly.c: export mono_image_load_references ().
8376         * class.c: handle function pointers. mono_class_from_name() now
8377         supports nested type names directly.
8378
8379 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8380
8381         * reflection.h reflection.c: Encode already created dynamic methods 
8382         and fields correctly as a DEF instead of a REF.
8383
8384         * reflection.c: Get rid of the force_ref argument to 
8385         mono_image_typedef_or_ref since it was wrong in the first place.
8386
8387         * string-icalls.c: add error checking to string constructors according
8388         to the MSDN docs.
8389
8390         * reflection.c: Emit types in the order their TypeBuilders were 
8391         created. Previously, a new table index was assigned to each type before
8392         the tables were emitted. This was wrong because the signature blob
8393         might already refer to a type by its original table index.
8394
8395 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8396
8397         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8398         change.
8399         
8400 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8401
8402         * Makefile.am: make assemblies dir have \ instead of / on windows.
8403
8404 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8405
8406         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8407         iterate over the NESTEDCLASS table using a linear search since the
8408         table is not guaranteed to be sorted by the secondary key.
8409
8410         * class.c (mono_class_create_from_typedef): fixed up call to
8411         mono_metadata_nesting_typedef.
8412         
8413 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8414
8415         * marshal.c (mono_string_to_byvalstr): clear the memory as
8416         suggested by Jerome Laban <jlaban@wanadoo.fr>
8417
8418 2003-02-26  Dick Porter  <dick@ximian.com>
8419
8420         * process.c: Cope with padding in .rsrc blocks
8421
8422 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8423
8424         * metadata.h: reverted the filter_len change, it breaks reflection
8425         
8426 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8427
8428         * metadata.h: added a new field to store the filter_len
8429         
8430
8431 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8432
8433         * reflection.c: handle custom attributes for types and members
8434         created with Reflection.Emit (bug#38422).
8435
8436 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8437
8438         * reflection.c: define RTSpecialName automatically for constructors for
8439         compatibility with MS.NET.
8440
8441         * reflection.c (mono_reflection_create_runtime_class): initialize
8442         nested_in field of dynamically created classes.
8443
8444 2003-02-22  Martin Baulig  <martin@ximian.com>
8445
8446         * debug-mono-symfile.h: Incremented version number.
8447
8448 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8449
8450         * object.h icall.c process.c: fix warnings.
8451
8452 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8453
8454         * appdomain.h appdomain.c:
8455         (mono_domain_try_type_resolve): split the 
8456         name_or_tb argument into a name and a tb argument.
8457         (mono_domain_has_type_resolve): new function to check whenever the
8458         application has registered a TypeResolve event handler.
8459         
8460         * icall.c reflection.h reflection.c: move the type resolve logic into
8461         mono_reflection_get_type () so it will be invoked when 
8462         Assembly::GetType () is called.
8463
8464         * reflection.c:
8465         (mono_reflection_get_type): renamed to get_type_internal.
8466         (mono_reflection_get_type): fixed type name generation so it works 
8467         for nested types too.
8468         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8469         costly type name generation if there is no resolve event handler.
8470
8471 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8472
8473         * class.c, image.c: load exported types from file references.
8474
8475 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8476
8477         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8478           used to cache the managed methods used to create proxies and make 
8479           remote invocation of methods.
8480         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8481           to be remotely created.
8482         * object.c: Modified the method mono_class_vtable(). It now initializes 
8483           the remote flag of the vtable. Modified mono_object_new_specific(), 
8484           so now it checks the remote flag.
8485         * icall.c: Added a couple of internal methods, one for enabling instance 
8486           creation interception for a type, and one for creating objects bypassing
8487           the remote check.
8488
8489 2003-02-18  Martin Baulig  <martin@ximian.com>
8490
8491         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8492         New interncall to get a method's metadata token.
8493
8494         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8495         New interncall for the debugger.
8496
8497 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8498
8499         * class.c (mono_class_setup_vtable): allocate supertype array
8500
8501 2003-02-18  Martin Baulig  <martin@ximian.com>
8502
8503         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8504
8505 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8506
8507         * reflection.c:
8508         (assembly_name_to_aname): jump over unknown properties (i've found
8509         something like: 'type, assembly, version=xxx, custom=null, public...',
8510         so now will ignore custom=null and still get the rest of the values).
8511
8512 2003-02-17  Dick Porter  <dick@ximian.com>
8513
8514         * threads.c: Have Thread.Start() wait for a semaphore to signal
8515         that the thread has set up all its local data.  This fixes bug
8516         34323, where Abort() raced the new thread's TLS data.
8517
8518         Also removes the handle_store() call from start_wrapper, because
8519         threads are now always created suspended and there is no longer a
8520         race between the parent and child threads to store the info.
8521
8522 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8523
8524         * image.c: explain the #- heap issue in a message, hopefully
8525         avoiding FAQs on mono-list.
8526
8527 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8528
8529         * icall.c:
8530         (GetEntryAssembly): if the domain has not invoked
8531         AppDomain.ExecuteAssembly yet, return the assembly of the default
8532         AppDomain.
8533
8534 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8535
8536         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8537
8538 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8539
8540         * metadata.c, reflection.c: simple speedup to type hash
8541         and equals code.
8542
8543 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8544
8545         * image.c, image.h, class.c, assembly.c: move module loading
8546         to MonoImage. When loading metadata, consider alignemnet from
8547         the start of metadata, not from the metadata address in memory.
8548
8549 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8550
8551         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8552         AssemblyBuilder objects. Factored out custom attribute creation into
8553         a separate function.
8554         (create_custom_attr): new function to create custom attributes.
8555
8556 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8557
8558         * Makefile.am: Got tired of typing the full pathname to pedump.
8559         Until there is another option, am installing this.
8560
8561 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8562
8563         * class.c (class_compute_field_layout): always set field->parent 
8564         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8565
8566 2003-02-11  Dick Porter  <dick@ximian.com>
8567
8568         * threads-types.h:
8569         * monitor.c: Rewrote Monitor, making lock much faster and
8570         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8571         creates them as needed.
8572
8573         * exception.c: Added SynchronizationLockException
8574
8575         * threads.c: Deleted old Monitor implementation.  The new one is
8576         in a new file.
8577
8578 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8579
8580         * class.c: handled TypedReference type code. Set the correct size for
8581         class data. Setup interface_offsets for interface classes, too.
8582
8583 2003-02-09  Martin Baulig  <martin@ximian.com>
8584
8585         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8586
8587 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8588
8589         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8590         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8591         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8592         * verify.c: check for code that runs after the end of the method.
8593
8594 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8595
8596         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8597         "System.Math::Round2".
8598         * sysmath.h: Added Floor, Round and Round2 definitions.
8599         * sysmath.c: Modified certain functions that were not 100% compliant
8600         with MS.NET (math precision) and added the implementation of Floor,
8601         Round and Round2.
8602
8603 2003-02-07  Martin Baulig  <martin@ximian.com>
8604
8605         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8606
8607 2003-02-07  Martin Baulig  <martin@ximian.com>
8608
8609         * debug-mono-symfile.c: Reflected latest symwriter changes.
8610         (mono_debug_create_mono_symbol_file): Removed.
8611         (mono_debug_open_mono_symbol_file): Take an argument which
8612         specifies whether to create a dynamic symbol file.
8613
8614 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8615
8616         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8617
8618 2003-02-05  Martin Baulig  <martin@ximian.com>
8619
8620         * reflection.c (mono_image_build_metadata): Make this public,
8621         protect it against being called multiple times, don't create
8622         resources and don't build the compressed metadata here.
8623         (mono_image_create_pefile): Do this here.
8624
8625         * icall.c
8626         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8627
8628 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8629
8630         * socket-io.c: fixed bug #36322.
8631
8632 2003-02-06  Piers Haken <piersh@friskit.com>
8633
8634         * appdomain.[ch]:
8635         * class.h:
8636         * debug-mono-symfile.c:
8637         * icall.c:
8638         * loader.c:
8639         * mono-config.c:
8640         * monosn.c:
8641         * reflection.c:
8642         * socket-io.c: warning cleanups
8643
8644 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8645
8646         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8647         function. works like remoting invoke, but does a check for the Proxy first.
8648
8649 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8650
8651         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8652
8653 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8654
8655         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8656         array of pointers.
8657         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8658         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8659
8660         * object.c (mono_store_remote_field_new): used by the new jit
8661         instead of mono_store_remote_field
8662         (mono_load_remote_field_new): used by the new jit
8663         instead of mono_load_remote_field
8664
8665 2003-02-05  Patrik Torstensson
8666
8667         * appdomain.c: changed unload to take the domain id instead
8668         of domain
8669         
8670         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8671
8672
8673 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8674
8675         * appdomain.c: don't look for assemblies in ApplicationBase if
8676         PrivateBinPathProbe is set.
8677
8678 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8679
8680         * object.c: make the first argument in main_args contain the absolute
8681         path to the assembly. Fixes bug #37511.
8682
8683 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8684
8685         * icall.c: get correct UTC offset for countries not using daylight
8686         time saving. Fixes bug #30030.
8687
8688 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8689
8690         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8691         and 1 are the family).
8692
8693 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8694
8695         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8696
8697         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8698
8699 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8700
8701         * reflection.c: added support for SignatureHelper tokens, which is
8702         needed by the Calli opcode.
8703
8704         * reflection.h: track changes to SignatureHelper class.
8705
8706         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8707
8708 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8709
8710         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8711
8712 2003-02-03  Patrik Torstensson
8713         * appdomain.[c|h], domain.c : 
8714          - Added support for getting a domain via domain id
8715          - Support for setting and getting domain from System.AppDomain 
8716            (used in cross appdomain channel)
8717          - Added support for get/set for a MonoAppContext on a thread 
8718            (Context class in System.Runtime.Remoting.Contexts),
8719          - Removed hack in Get/SetData and ExecuteAssembly.
8720         
8721         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8722         the managed world to get control when a proxy is created.
8723
8724         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8725         
8726 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8727
8728         * icall.c
8729         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8730         Populate the codebase field as well.
8731
8732 2003-02-02  Martin Baulig  <martin@ximian.com>
8733
8734         * debug-mono-symfile.c
8735         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8736         (mono_debug_symfile_add_method): Allow interncalls.
8737
8738 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8739
8740         * icall.c: throw parse exception if strtod fails or the string is empty.
8741
8742 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8743
8744         * marshal.c: handle object type separately from defined
8745         class types.
8746
8747 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8748
8749         * marshal.c: handle NATIVE_LPSTR for strings when it's
8750         explicitly specified.
8751
8752 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8753
8754         * reflection.c, reflection.h, icall.c: setup the reflection
8755         handle cache for ModuleBuilders and AssemblyBuilders.
8756
8757 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8758
8759         * reflection.c (reflection_methodbuilder_to_mono_method): set
8760         pinvoke flag
8761
8762 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8763
8764         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8765
8766 2003-01-29  Dick Porter  <dick@ximian.com>
8767
8768         * threads.c: No need for the fake_thread kludge now that Thread
8769         doesn't run a class constructor
8770         
8771 2003-01-29  Dick Porter  <dick@ximian.com>
8772
8773         * threads.c: Use g_direct_hash instead of the rather bogus
8774         g_int_hash
8775
8776 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8777
8778         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8779         (fix pinvoke12.exe)
8780         (mono_marshal_get_struct_to_ptr): generate valid IL code
8781         (mono_marshal_get_ptr_to_struct): generate valid IL code
8782         (*): correctly set sig->pinvoke, we need to memdup the signature
8783         to do that
8784
8785 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8786
8787         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8788         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8789
8790 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8791
8792         * profiler.c: provide more callers information.
8793
8794 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8795
8796         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8797
8798         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8799
8800         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8801
8802 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8803
8804         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8805         exception instead of going into an infinite loop on dates which it 
8806         can't yet handle.
8807
8808         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
8809         out-of-range exception if needed.
8810
8811         * class.c (mono_class_setup_vtable): allow a virtual method to provide
8812         an implementation for an interface method and to override an inherited
8813         method at the same time. 
8814         Imagine a scenario when a virtual method is used to override a
8815         virtual abstract method in a parent class, and this same method 
8816         provides an implementation for an method inherited from an interface. 
8817         In this case, the interface resolution code will set im->slot, which 
8818         means that the virtual method override pass will skip this method 
8819         which means a pointer to the abstract method inherited from the parent
8820         will remain in the vtable of this non-abstract class.
8821
8822         * class.c: (mono_class_setup_vtable): continue search for a real 
8823         method if only an abstract method is found.     
8824
8825 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8826
8827         * reflection.c: add size to encoding for ByValStr and ByValArray
8828         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
8829
8830 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8831
8832         * class.c (mono_class_setup_vtable): pass the override info as an
8833         argument.
8834
8835         * class.c (mono_class_setup_vtable): set the slot of overriding methods
8836         correctly.
8837         
8838         * reflection.c (ensure_runtime_vtable); add support for method 
8839         overrides.
8840         
8841 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8842
8843         * reflection.c (resolution_scope_from_image): Hack to work to work with
8844         dynamic assemblies.
8845
8846         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
8847         added a 'force_ref' argument to force this function to allways return 
8848         a TypeRef. This is needed by mono_image_get_memberref_token ().
8849         
8850 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8851
8852         * reflection.c (mono_image_get_type_info): interfaces really don't have
8853         a parent.
8854
8855         * reflection.c (mono_image_basic_init): fill out missing fields of
8856         image structure.
8857
8858         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
8859         dynamic assemblies. This is required so dynamic assemblies show up in
8860         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
8861         Type::GetType() etc. This is consistent with MS behaviour.
8862
8863         * image.c image.h reflection.c: add newly created classes to the name 
8864         cache so mono_class_get () will find them.      
8865
8866 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8867
8868         First part of changes to get IKVM.NET running under mono.
8869         
8870         * appdomain.h, appdomain.c: added new function 
8871         mono_domain_try_type_resolve() which will emit TypeResolve events. 
8872         This function will call AppDomain::DoTypeResolve to do the actual work.
8873
8874         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
8875         moved existing code dealing with dynamic tokens to a new function 
8876         called mono_reflection_lookup_dynamic_token (). This function will 
8877         raise TypeResolve events when appropriate. Since reflection.c is not 
8878         part of libmetadata, a new hook function called 
8879         mono_lookup_dynamic_token() is added to class.c which will call this.
8880
8881         * assembly.h assembly.c: make the invoke_load_hook function public,
8882         so it can be called for dynamic assemblies.
8883
8884         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
8885
8886         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
8887         type isn't found.
8888
8889         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
8890         MonoGHashTable, since it contains pointers to objects which the GC 
8891         needs to track.
8892
8893         * assembly.c (search_loaded): remove unused variable.
8894         
8895 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
8896
8897         * object.c: fixed issue exposed by gcc-generated IL programs
8898         that use RVA data for pointers.
8899
8900 2003-01-25  Martin Baulig  <martin@ximian.com>
8901
8902         * threads.c (start_wrapper): Moved the initialization of
8903         `start_func' above the mono_new_thread_init() call to which we
8904         pass it as argument.
8905
8906 2003-01-24  Martin Baulig  <martin@ximian.com>
8907
8908         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
8909         the MonoThread pointer.
8910
8911 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
8912
8913         * icall.c: Rename `PowImpl' to Pow.
8914
8915 2003-01-23  Dick Porter  <dick@ximian.com>
8916
8917         * threads.c (start_wrapper): Create a Thread object if needed, so
8918         the Main() thread can do the class initialisation in a subthread
8919         that has been set up to allow managed code execution.
8920
8921         Pass the thread ID instead of the MonoThread pointer to the thread
8922         start and attach callbacks.  This change is required, because the
8923         jit thread start callback must be called _before_ the Thread
8924         object can be created.
8925         
8926         (mono_thread_init): Removed much object creation code that is no
8927         longer needed.  No managed code is called from here now.
8928
8929         * object.c (mono_runtime_exec_managed_code): Create a subthread
8930         for Main, and call back to the runtime to use it.
8931         Set the exit code when Main exits.
8932
8933         * gc.c: Make sure domain finalisation happens in a subthread.
8934         Re-enable threaded GC, fixing bug 31333 (again).
8935
8936         * environment.c: System.Environment internall calls (so far just
8937         ExitCode is here, the others are still in icall.c)
8938
8939         * appdomain.c (mono_runtime_cleanup): All threads running managed
8940         code should have finished before mono_runtime_cleanup() is
8941         reached, so no need to clean up threads.
8942
8943 2003-01-22  Martin Baulig  <martin@ximian.com>
8944
8945         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
8946         `gpointer func' arguments.      
8947         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
8948         but added `MonoThread *thread' argument.
8949         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
8950
8951         * threads.c (mono_new_thread_init): Added `gpointer func' argument
8952         and pass it to the mono_thread_start_cb callback.
8953         (mono_install_thread_callbacks): New public function to install a
8954         set of callbacks which are set by the debugger.
8955         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
8956
8957 2003-01-22  Martin Baulig  <martin@ximian.com>
8958
8959         * Makefile.am: Install debug-mono-symfile.h.
8960
8961 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
8962
8963         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
8964
8965 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
8966
8967         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
8968         * class.c (mono_ptr_class_get): correctly set access levels of pointers
8969         (mono_array_class_get): correctly set access levels of arrays
8970
8971 2003-01-20      Patrik Torstensson
8972         * image.h (MonoAssemblyName): changed major, minor, build, revision
8973         from signed to unsigned.
8974
8975 2003-01-20  sean kasun <skasun@azstarnet.com>
8976
8977         * reflection.c (load_cattr_value): Now this handles
8978         MONO_TYPE_SZARRAY.  Fixes bug #35629
8979
8980 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
8981
8982         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
8983         integer value
8984
8985 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8986
8987         * decimal.c: fixed bug #26056.
8988
8989 2003-01-17  Martin Baulig  <martin@ximian.com>
8990
8991         * gc.c: Raise an ExecutionEngineException instead of using g_error().
8992
8993 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8994
8995         * exception.[ch]:
8996         (mono_get_exception_type_initialization): new function.
8997
8998         * object.c: throw a TypeInitializationException when an exception is
8999         thrown invoking the class constructor.
9000
9001 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9002
9003         * reflection.c: fixed attribute reading.
9004
9005 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9006
9007         * icall.c:
9008         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9009         provided, look for the type in the calling assembly and then in
9010         mscorlib; if the assembly name is provided, only try that one.
9011
9012 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9013
9014         * object.c: register the vtable before there is a chance it's
9015         queried again recursively.
9016
9017 2003-01-13  Duncan Mak  <duncan@ximian.com>
9018
9019         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9020         gc-internal.h. 
9021         
9022 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9023
9024         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9025
9026 2003-01-11  Martin Baulig  <martin@ximian.com>
9027
9028         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9029         this to 20 for the release.
9030
9031 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9032
9033         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9034
9035         * loader.c (mono_method_get_marshal_info): bug fix
9036
9037         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9038         structures with explicit layout
9039
9040 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9041
9042         * profiler.c: made the output more readable (and sorted). 
9043         Added caller information for the allocation profiler.
9044
9045 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9046
9047         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9048
9049 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9050
9051         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9052         to get value types.
9053         
9054 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9055
9056         * object.c, profiler.h, profiler.c, profiler-private.h:
9057         Added object allocation profiler.
9058
9059 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9060
9061         * reflection.h, reflection.c: handle global methods.
9062         Compress blob entries.
9063
9064 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9065
9066         * marshal.c: fix compilation.
9067
9068 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9069
9070         * loader.c (mono_method_get_marshal_info): impl.
9071
9072         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9073
9074 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9075
9076         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9077         for reference types.
9078
9079 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9080
9081         * loader.c: fixed off by one error in loaded parameter names.
9082
9083 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9084
9085         * marshal.c (mono_marshal_get_icall_wrapper): like
9086         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9087         instead of a MonoMethod.
9088
9089 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9090
9091         * decimal.c: fixed bug #36537.
9092
9093 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9094
9095         * marshal.c: throw a missing method exception if a
9096         P/Invoke method is not found.
9097
9098 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9099
9100         * icall.c: allow a null this for constructors.
9101
9102 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9103
9104         * icall.c: raise the proper exceptions if the arguments to the
9105         internal Invoke are incorrect.
9106
9107 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9108
9109         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9110
9111 2003-01-03  Martin Baulig  <martin@ximian.com>
9112
9113         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9114
9115 2002-12-31  Martin Baulig  <martin@ximian.com>
9116
9117         * debug-mono-symfile.c: Completely rewrote the type section.
9118         Instead of using individual malloc()ed fields, we use one big
9119         continuous memory area and offsets into this area.
9120         See the comments in the source code for details.
9121
9122 2002-12-30  Martin Baulig  <martin@ximian.com>
9123
9124         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9125
9126 2002-12-30  Martin Baulig  <martin@ximian.com>
9127
9128         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9129         line number table in this data blob instead of using an external
9130         pointer.
9131
9132 2002-12-28  Martin Baulig  <martin@ximian.com>
9133
9134         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9135
9136 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9137
9138         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9139         as a boxed return type.
9140
9141 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9142
9143         * appdomain.c
9144         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9145         g_build_filename to properly get separators on the filename created.
9146
9147         * object.h: Small change, introduce MonoMarshalByRefObject to
9148         track the layout of that structure in the C# universe as we make
9149         changes there.
9150
9151 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9152
9153         * object.c: removed assert to allow static fields on interfaces.
9154         * loader.c: a TypeSpec may be used for any type, not just arrays.
9155
9156 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9157
9158         * class.c, class.h: added mono_class_array_element_size ().
9159         Ignore static methods in interfaces.
9160
9161 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9162
9163         * threads.c: fixed the build under cygwin.
9164
9165 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9166
9167         * reflection.c: handle nullref constants. Allocate keys for
9168         reflection handles with the GC.
9169
9170 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9171
9172         * threads.c, threads.h: added mono_thread_get_abort_signal()
9173         to get a suitable signal for thread abort.
9174
9175 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9176
9177         * metadata.c: fix handling of ExportedType table.
9178
9179 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9180
9181         * icall.c: added WriteWindowsDebugString internal call.
9182
9183 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9184
9185         * reflection.h: added fields to match C# implementation.
9186
9187 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9188
9189         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9190
9191 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9192
9193         * gc.h, gc-internal.h: Rename header for GC internal calls to
9194         gc-internal.h from gc.h as to not clash with Boehm GC having its
9195         header installed as <gc.h> in outside include paths.
9196         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9197         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9198
9199 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9200
9201         * icall.c: assign minor, build and revision in FillName.
9202
9203 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9204
9205         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9206         Added support for running code generated by Reflection.Emit.
9207
9208 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9209
9210         * appdomain.c: check for NULL argument in LoadFrom.
9211
9212 2002-12-10  Dick Porter  <dick@ximian.com>
9213
9214         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9215
9216 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9217
9218         * appdomain.c: fix buglet when building exe file name.  Handle full
9219         assembly name (needed after latest changes to AssemblyName).
9220         * image.c:
9221         (mono_image_close): free some hashtables.
9222
9223 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9224
9225         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9226         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9227         on some systems (redhat 7.3) 
9228
9229 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9230
9231         * threads.c: delete the critical section of a sync block,
9232         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9233
9234 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9235
9236         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9237
9238 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9239
9240         * appdomain.[ch]: handle the assembly preload event to try loading the
9241         assemblies using the paths we have in the current domain.
9242
9243         * assembly.[ch]: created an assembly preload hook that is called to try
9244         loading the assembly by other means that the ones provided here.
9245
9246         * domain.c: initialize the domain search path.
9247
9248         From now on, assemblies (TODO: except corlib and System) are loaded
9249         according to these rules when using mono_assembly_load ():
9250
9251                 1. It tries to load the assembly from the ApplicationBase
9252                 of the current domain appending .dll and .exe (TODO: have to
9253                 try loading from name/name.dll and name/name.exe).
9254
9255                 2. It tries the search path specified in PrivateBinPath for the
9256                 current domain (if any).
9257
9258                 3. Previous behavior.
9259
9260 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9261
9262         * icall.c: implemented GetInterfaceMap() related icall.
9263         * domain.c, loader.h: load MethodInfo in mono_defaults.
9264
9265 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9266
9267         * gc.c: disable the finalizer thread for now, untill all the issues
9268         with it are resolved.
9269
9270 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9271
9272         * string-icalls.c: handle embedded nulls in string ctor when the
9273         length is specified.
9274
9275 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9276
9277         * class.c: look for explicit interface implementation in parent
9278         classes, too.
9279
9280 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9281
9282         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9283
9284 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9285
9286         * gc.c: protect handles with a critical section.
9287
9288 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9289
9290         * icall.c:
9291         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9292         parameters. If no assembly specified, try getting the type from all
9293         the assemblies in the current domain, else, load the assembly and get
9294         the type from it.
9295
9296 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9297
9298         * marshal.c: applied patch from Aleksey Demakov that fixes
9299         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9300
9301 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9302
9303         * icall.c: fixed get_location.
9304
9305 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9306
9307         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9308         declarations to make it work with older gcc. 
9309
9310         * loader.c (mono_get_method): set signature->pinvoke for native calls
9311
9312 2002-11-20  Dick Porter  <dick@ximian.com>
9313
9314         * threads.c (mono_thread_init): Set the main thread's handle
9315
9316 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9317
9318         * gc.c: allow compilation without GC support. Changed to match the
9319         mono coding style.
9320
9321 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9322
9323         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9324
9325 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9326
9327         * reflection.c: set a public key token on the core assemblies.
9328
9329 2002-11-18  Dick Porter  <dick@ximian.com>
9330
9331         * threads.c: Split out some thread initialisation so that other
9332         files can set the start callback function.
9333
9334         * gc.c: Run finalisers in a separate thread, to avoid stack
9335         overflow.  Fixes bug 31333.
9336
9337         * appdomain.c: Set up GC finalisation thread.
9338
9339         * reflection.c: 
9340         * object.c: 
9341         * domain.c: Use gc.h macros for GC_malloc
9342         
9343 2002-11-15  Dick Porter  <dick@ximian.com>
9344
9345         * threadpool.c: 
9346         * threads.c:
9347         * appdomain.c: Removed mono_runtime_init_with_attach(),
9348         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9349         merging the extra parameter with the existing function.  Removed
9350         unneeded code in mono_thread_attach().
9351
9352 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9353
9354         * image.c (mono_image_loaded_by_guid): a method to get loaded
9355         images by guid. 
9356         (load_metadata_ptrs): we store the guid as string.
9357
9358 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9359
9360         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9361
9362         * metadata.c (mono_guid_to_string): imported method form Zoltan
9363         Varga (slightly modified)
9364
9365         * assembly.c (mono_assembly_open): load precompiled code
9366
9367         * loader.h (MonoMethod): we store the method token for use in the
9368         aot compiler. 
9369
9370 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9371
9372         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9373         the hook function called when an assembly is loaded.
9374         
9375         * domain.c: Modified file.
9376         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9377
9378         Fixes bug #33196.
9379
9380 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9381
9382         * reflection.c: Map PEFileKind to the value expected by the WinNT
9383         image loader. 
9384
9385 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9386
9387         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9388         Read until the buffer is filled completely.
9389
9390 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9391
9392         * icall.c: implemented MonoType.InternalGetEvent ().
9393
9394 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9395
9396         * appdomain.c: implemented InitAppDomainSetup. Delayed
9397         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9398         the entry_assembly.
9399
9400         * assembly.c: base_dir is now an absolute path ending with
9401         G_DIR_SEPARATOR.
9402
9403         * icall.c: modified get_location according to the above changes.
9404
9405         * object.c: init AppDomain.SetupInformation for the default domain after
9406         we have the entry assembly.
9407
9408         * domain.c: when unloading a domain, setup = NULL.
9409
9410 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9411
9412         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9413
9414 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9415
9416         * object.h, object.c: introduced mono_object_get_virtual_method ()
9417         to lookup the method invoked on an object when a callvirt is done on
9418         a method.
9419         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9420
9421 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9422
9423         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9424         current domain when loaded an assembly and failed to load it.
9425
9426         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9427
9428 2002-10-31  Dick Porter  <dick@ximian.com>
9429
9430         * icall.c: 
9431         * file-io.h: 
9432         * file-io.c: Return the error status in a parameter, as the
9433         GetLastError() value has long since been blown away if we try and
9434         look it up in a subsequent internal call invocation.  Delete the
9435         GetLastError() internal call, because it's useless.
9436
9437 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9438
9439         * class.[ch]: added cast_class to fix bug 29517
9440
9441 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9442
9443         * marshal.c: create valid IL code in the filter clause:
9444         the new JIT is less forgiving:-)
9445
9446 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9447
9448         * icall.c: removed get_property internal call.
9449
9450 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9451
9452         * appdomain.h domain.c: Added an ID to appdomains.
9453         
9454         * threads.c threads.h icall.c: Implement icall
9455         Thread:GetDomainID(), and remove unused icall 
9456         CurrentThreadDomain_internal.
9457
9458 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9459
9460         * icall.c: Don't recurse through the base types in GetConstructor.
9461         Fixes bug #32063. 
9462
9463 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9464
9465         * mempool.h, mempool.c: added mono_mempool_empty() and
9466         mono_mempool_stats().
9467
9468 2002-10-23  Dick Porter  <dick@ximian.com>
9469
9470         * file-io.c: 
9471         * file-io.h: 
9472         * icall.c: Added MonoIO.GetFileType internal call
9473
9474 2002-10-17  Dick Porter  <dick@ximian.com>
9475
9476         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9477         delegate semaphore before waiting for all threads to finish,
9478         because new threads can also call async delegates.  Fixes bug
9479         32004.
9480
9481         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9482         of 3 seconds, in case another async job is queued.  (This part is
9483         needed because the bug fix reintroduced the 3s exit lag.)  This
9484         makes the mono_runtime_shutdown flag superfluous.
9485
9486 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9487
9488         * reflection.c: include ehader size in method section headers.
9489         Really check for suplicated modules entries.
9490
9491 2002-10-17  Martin Baulig  <martin@gnome.org>
9492
9493         * debug-mono-symfile.c: Added back support for locals.
9494
9495 2002-10-14  Martin Baulig  <martin@gnome.org>
9496
9497         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9498         MONO_TYPE_VOID.
9499
9500 2002-10-14  Martin Baulig  <martin@gnome.org>
9501
9502         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9503         mono_class_get() instead of looking in the class cache. 
9504
9505 2002-10-13  Martin Baulig  <martin@gnome.org>
9506
9507         * debug-mono-symfile.c: Set version number to 28, include the
9508         signature in method names.
9509
9510 2002-10-13  Martin Baulig  <martin@gnome.org>
9511
9512         * debug-mono-symfile.h: Set version number to 27.
9513
9514 2002-10-11  Martin Baulig  <martin@gnome.org>
9515
9516         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9517
9518 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9519
9520         * metadata.c, metadata.h: added helper function to allocate signatures.
9521
9522 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9523
9524         * icall.c: added internal call to get the location of machine.config.
9525
9526 2002-10-08  Martin Baulig  <martin@gnome.org>
9527
9528         * debug-mono-symfile.c: Ignore classes with a pending init for the
9529         moment.
9530
9531 2002-10-03  Dick Porter  <dick@ximian.com>
9532
9533         * threads.c: Freebsd pthread_t is a pointer
9534
9535 2002-10-03  Dick Porter  <dick@ximian.com>
9536
9537         * socket-io.c: Implemented GetHostName_internal
9538
9539 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9540
9541         * mono-config.c:
9542         (mono_config_parse_file): don't leak the text.
9543
9544 2002-10-02  Martin Baulig  <martin@gnome.org>
9545
9546         * debug-mono-symfile.c: Added support for methods.
9547
9548 2002-10-01  Martin Baulig  <martin@gnome.org>
9549
9550         * debug-mono-symfile.c: Don't emit methods and line numbers for
9551         the dynamic symbol file, just write the type table.  We can easily
9552         have an external helper program which creates a symbol file for an
9553         IL file.        
9554
9555 2002-10-01  Dick Porter  <dick@ximian.com>
9556
9557         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9558         Only add the handle to the cleanup array when we're about to
9559         launch the thread.  Bug 31425 deadlocked when the test was run on
9560         mono under w32.
9561
9562 2002-10-01  Martin Baulig  <martin@gnome.org>
9563
9564         * debug-mono-symfile.c: Added support for properties.
9565
9566 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9567
9568         * reflection.c: unaligned store fix from Mark Crichton
9569         <crichton@gimp.org>.
9570
9571 2002-09-27  Martin Baulig  <martin@gnome.org>
9572
9573         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9574         New interncall.
9575
9576 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9577
9578         * assembly.h, assembly.c: use a sane API to hook into the assembly
9579         loading process instead of a useless special-purpouse hack
9580         (ngen needs a hook, too, for example).
9581
9582 2002-09-27  Dick Porter  <dick@ximian.com>
9583
9584         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9585         io-layer can set up some process handle info.  Not needed on w32,
9586         but doesn't hurt either.
9587
9588         * process.c: Pass the program name in the second parameter to
9589         CreateProcess, so the path is searched.  Include the working
9590         directory. Implemented process name, process enumeration, and some
9591         process detail internal calls.
9592         
9593         * icall.c: Added internal calls for process lookup, and some
9594         process details
9595
9596 2002-09-26  Martin Baulig  <martin@gnome.org>
9597
9598         * assembly.c (mono_install_open_assembly_hook): New global
9599         function to install a function to be invoked each time a new
9600         assembly is loaded.
9601         (mono_assembly_open): Run this callback function if set.
9602
9603         * debug-mono-symfile.c: Put back line numbers for the dynamic
9604         symbol file and also record the .il file as source file.  This
9605         allows us to install the temporary symbol file as `file.dbg' just
9606         like a compiler-generated one.
9607
9608 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9609
9610         * Corrected typo in gc.c (BOHEM vs BOEHM).
9611
9612 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9613
9614         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9615         GetProperties. Also avoid calling g_slist_length in GetProperties and
9616         GetMethods.
9617
9618 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9619
9620         * reflection.c: avoid unaligned stores (bug spotted by
9621         Mark Crichton  <crichton@gimp.org>).
9622
9623 2002-09-25  Martin Baulig  <martin@gnome.org>
9624
9625         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9626         instead of guint64 for addresses and added prologue/epilogue info.
9627
9628 2002-09-25  Martin Baulig  <martin@gnome.org>
9629
9630         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9631         store line number info.  For the dynamic symbol file, we only need
9632         to provide the JIT generated dynamic line number info for the dynamic
9633         symbol file.
9634
9635 2002-09-25  Martin Baulig  <martin@gnome.org>
9636
9637         * debug-mono-symfile.h: Incremented version number.
9638
9639 2002-09-24  Martin Baulig  <martin@gnome.org>
9640
9641         * class.c (mono_debugger_class_init_func): New global function
9642         pointer variable.
9643         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9644         call it.
9645
9646         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9647         function.  This is called via the mono_debugger_class_init_func
9648         hook to add all types to the dynamic type table.
9649         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9650         from its metadata token.
9651
9652         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9653         New interncall for the debugger.
9654
9655 2002-09-24  Nick Drochak <ndrochak@gol.com>
9656
9657         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9658         before using it in case it is null.
9659         
9660 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9661
9662         * metadata.c: allow custom modifiers in local var signatures
9663         (bug spotted by Zoltan Varga).
9664
9665 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9666
9667         * class.c: deal with the <Module> class that may have a NULL vtable.
9668         Eliminate warnings.
9669
9670 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9671
9672         * image.c, image.h: more strong name helpers.
9673         * monosn.c: more work: convert pem keys to cryptoapi format.
9674
9675 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9676
9677         * string-icalls.c: speedup IndexOf.
9678
9679 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9680
9681         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9682
9683 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9684
9685         * icall.c: cleanup: use mono_object_domain ().
9686
9687 2002-09-23  Martin Baulig  <martin@gnome.org>
9688
9689         * debug-mono-symfile.c: Improved type support.
9690
9691 2002-09-22  Martin Baulig  <martin@gnome.org>
9692
9693         * debug-mono-symfile.c: Added support for reference types and strings.
9694
9695 2002-09-22  Martin Baulig  <martin@gnome.org>
9696
9697         * debug-mono-symfile.c: Started to work on the type table.
9698
9699 2002-09-21  Martin Baulig  <martin@gnome.org>
9700
9701         * debug-mono-symfile.c: Largely reworked the symbol table format.
9702         The symbol table is now incrementally updated each time a new
9703         method is added.  We're now also using our own magic and version
9704         so that you don't need to recompile all your classes if the
9705         dynamic table changes.
9706         (mono_debug_update_mono_symbol_file): Removed.
9707         (mono_debug_symfile_add_method): New function to add a method.
9708
9709 2002-09-21  Martin Baulig  <martin@gnome.org>
9710
9711         * icall.c
9712         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9713         New interncall.
9714
9715         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9716         New interncall to get a method from its metadata token.
9717
9718 2002-09-21  Martin Baulig  <martin@gnome.org>
9719
9720         * debug-mono-symfile.c: Create type table.
9721
9722 2002-09-20  Martin Baulig  <martin@gnome.org>
9723
9724         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9725
9726 2002-09-20  Martin Baulig  <martin@gnome.org>
9727
9728         * debug-mono-symfile.c: Provide information about params and locals.
9729
9730 2002-09-20  Martin Baulig  <martin@gnome.org>
9731
9732         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9733         New interncall.
9734
9735         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9736         interncall to get a method from its metadata token.
9737
9738 2002-09-20  Martin Baulig  <martin@gnome.org>
9739
9740         * debug-mono-symfile.c: Added a few checks for method->header
9741         being non-NULL.  This should never happen, but for the moment
9742         let's use a g_warning() rather than a g_assert().
9743
9744 2002-09-19  Mark Crichton  <crichton@gimp.org>
9745
9746         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9747         even if support for it isn't present.  Added an #ifdef to fix this.
9748
9749         * socket-io.c: Added checks back for Solaris support.
9750
9751 2002-09-19  Martin Baulig  <martin@gnome.org>
9752
9753         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9754         changes in the symbol file format.
9755
9756 2002-09-18  Martin Baulig  <martin@gnome.org>
9757
9758         * debug-mono-symfile.c: Set version number to 21.
9759
9760 2002-09-18  Dick Porter  <dick@ximian.com>
9761
9762         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9763         on netbsd.  Fixes bug 30051.
9764
9765 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9766
9767         * reflection.c:
9768         (set_version_from_string): little fix.
9769
9770 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9771
9772         * monosn.c, Makefile.am: added strong name utility.
9773         * reflection.h, reflection.c: implemented delayed signing,
9774         locale, version and hash id assembly attributes.
9775
9776 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9777
9778         * loader.c, metadata.c: load param attributes in signatures.
9779
9780 2002-09-16  Martin Baulig  <martin@gnome.org>
9781
9782         * debug-mono-symfile.c: Added string table with all method names.
9783
9784 2002-09-14  Martin Baulig  <martin@gnome.org>
9785
9786         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9787         fast method lookup.
9788
9789 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9790
9791         * reflection.c: record the public key token of referenced assemblies.
9792
9793 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9794
9795         * image.c, image.h: added functions to get the strong name and the
9796         public key of an assembly.
9797         * pedump.c: use them.
9798
9799 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9800
9801         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9802
9803 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9804
9805         * marshal.c (mono_marshal_get_managed_wrapper): Added
9806         MONO_TYPE_BOOLEAN 
9807
9808 2002-09-11  Martin Baulig  <martin@gnome.org>
9809
9810         * gc.c: Call GC_unregister_disappearing_link() on all links when
9811         finalizing them, this is necessary to aviod a crash in boehm's
9812         finalize handler.
9813
9814 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9815
9816         * gc.c: handle GetTarget for finalized objects spotted and fixed by
9817         nick@chemlab.org.
9818
9819 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9820
9821         * icall.c: implemented MonoType::Module.
9822         * reflection.c, reflection.h: mono_module_get_object () from
9823         Tomi Pakarinen <tomi.pakarinen@welho.com>.
9824
9825 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9826
9827         * icall.c: ignore overridden methods in GetMethods ().
9828         Fix for FieldInfo::SetValue().
9829         * object.c: handle float/double in runtime invoke.
9830
9831 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9832
9833         * object.c: allow a constructor to be called again on an object.
9834
9835 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9836
9837         * class.h, class.c: move field layout code to it's own function and
9838         export it. Get an interface id earlier. Move fields in MonoClass
9839         so they are more cache friendly and align the bitfields.
9840         * loader.c: temporary handle get_param_names() for a runtime method.
9841         * reflection.c, reflection.h: more code to handle runtime creation of
9842         types.
9843
9844 2002-09-09  Martin Baulig  <martin@gnome.org>
9845
9846         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
9847         signature with the pinvoke field being set for the actual call.
9848
9849 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9850
9851         * icall.c: removed some unused icalls. Start of map of glib charsets
9852         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
9853
9854 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9855
9856         * debug-helpers.c: break infinite loop (found and fixed by
9857         Holger Arnold <harnold@gmx.de>).
9858
9859 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9860
9861         * icall.c: target may be null in create_delegate.
9862
9863 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9864
9865         * marshal.c: handle a boolean return type.
9866
9867 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9868
9869         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
9870
9871 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9872
9873         * gc.c: fix weakreferences.
9874
9875 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9876
9877         * icall.c: added icall to get default codepage.
9878
9879 2002-09-03  Dick Porter  <dick@ximian.com>
9880
9881         * threads.h: 
9882         * threads.c: Use MonoThread instead of MonoObject where
9883         apropriate.
9884
9885         Store running thread objects in a hash table, so that we have all
9886         the info to hand when waiting for them to finish
9887         (means we don't need OpenThread() any more, so mingw builds should
9888         be fully functional again.)
9889
9890         * verify.c:
9891         * object.h: Added thread ID to MonoThread
9892
9893 2002-09-03  Martin Baulig  <martin@gnome.org>
9894
9895         * icall.c (System.Reflection.Assembly::get_location): New interncall.
9896
9897 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9898
9899         * icall.c: fixed leak in get_temp_path. Thanks lupus.
9900
9901 2002-09-03  Martin Baulig  <martin@gnome.org>
9902
9903         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
9904         argument to store the end address of the disassembled instruction.
9905
9906         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
9907         here from debug-symfile.h.
9908         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
9909         JIT into this struct.
9910         (MonoSymbolFile): Added `char *image_file' field.
9911         (MonoDebugGetMethodFunc): Removed.
9912         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
9913         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
9914         (mono_debug_find_method): New method.
9915
9916         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
9917         create a full symbol file.
9918         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
9919         and static symbol files.
9920         (mono_debug_find_method): The symbol file keeps an internal method hash,
9921         call this to get a MonoDebugMethodInfo from a MonoMethod.
9922
9923         * debug-symfile.[ch]: Removed.
9924
9925 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
9926
9927         * image.c (do_mono_image_open): Remove linker version check.
9928
9929 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
9930
9931         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
9932         wrappers for instance methods.
9933         
9934 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9935
9936         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
9937
9938 2002-08-28  Dick Porter  <dick@ximian.com>
9939
9940         * Makefile.am: Export HOST_CC for w32 builds
9941
9942 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9943
9944         * file-io.c process.c: MonoString are null terminated, no
9945         need for mono_string_to_utf16() anymore.
9946
9947 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9948
9949         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
9950
9951 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
9952
9953         * icall.c, reflection.h: speedup System.MonoType.
9954
9955 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9956
9957         * reflection.c: allow null as the value of a string argument in
9958         custom attributes constructors.
9959
9960 2002-08-27  Martin Baulig  <martin@gnome.org>
9961
9962         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
9963         `trampoline_address' field.
9964
9965 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
9966
9967         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
9968         check (fixes bug #29486) 
9969
9970 2002-08-27  Martin Baulig  <martin@gnome.org>
9971
9972         * debug-mono-symfile.c: Changed the file format in a way that allows us
9973         open it read-only and to use a specially malloced area for all the
9974         dynamic data.  We can now also generate a symbol file on-the-fly if we're
9975         debugging IL code and there is no MCS generated symbol file for it.
9976
9977 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9978
9979         * object.c: added a define for a good string and array
9980         creation speedup (not enabled by default because we need to deal with
9981         the synch stuff).
9982
9983 2002-08-26  Martin Baulig  <martin@gnome.org>
9984
9985         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
9986         function to create a dynamic symbol file.  This is used by the
9987         debugger to create a symbol file for IL code on-the-fly.
9988
9989 2002-08-26  Martin Baulig  <martin@gnome.org>
9990
9991         * loader.c (mono_lookup_pinvoke_call): Include the error message
9992         from g_module_error() in the error message.
9993
9994 2002-08-24  Martin Baulig  <martin@gnome.org>
9995
9996         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
9997         function to update the symbol file.  The symbol file is mmap()ed
9998         writable, but private.  This allows us to install the symbol file
9999         together with the assembly.
10000
10001 2002-08-24  Martin Baulig  <martin@gnome.org>
10002
10003         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
10004         but they can read the new symbol file format which mcs is now creating.
10005
10006         * debug-symfile.c (mono_debug_find_source_location): Moved to
10007         debug-mono-symfile.c; this is now operating on the new symbol file.
10008
10009 2002-08-23  Martin Baulig  <martin@gnome.org>
10010
10011         * debug-helpers.c (mono_method_desc_from_method): New function to get
10012         a MonoMethodDesc from a MonoMethod.
10013
10014 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10015
10016         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10017         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10018
10019 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10020
10021         * string-icalls.[ch]: make helper methods static.
10022
10023 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10024
10025         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10026         types to it and to SetValueInternal.
10027
10028         * object.c: Moved handle_enum label to its proper place. This was the
10029         f... bug! ;-)
10030
10031         This time i compiled mcs and gtk-sharp and they both work.
10032
10033 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10034
10035         * icall.c: reverted partially my previous patch until 
10036         object.c:set_value handles enums correcly.
10037
10038 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10039
10040         * icall.c:
10041         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10042         (ves_icall_System_Environment_get_MachineName): removed warning when
10043         compiling under cygwin.
10044
10045 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10046
10047         * object.c: fixed field_get_value() for reference types.
10048
10049 2002-08-22  Dick Porter  <dick@ximian.com>
10050
10051         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10052         Don't free a buffer while it's still needed.  Patch from Jonathan
10053         Liger <Jonathan.liger@wanadoo.fr>
10054
10055 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10056
10057         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10058         internal call.
10059
10060 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10061
10062         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10063         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10064
10065         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10066         we call unmanaged code which throws exceptions.
10067
10068 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10069
10070         * appdomain.h: added per-domain entry_assembly.
10071         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10072         arguments.
10073         * icall.c: Assembly::GetEntryAssembly icall.
10074         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10075         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10076
10077 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10078
10079         * appdomain.h, gc.c: added mono_domain_finalize ().
10080
10081 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10082
10083         * object.c:
10084         (mono_print_unhandled_exception): changed g_warning by g_printerr
10085         because g_log has a 1024 characters limit (yeah, i got a big stack
10086         trace). Don't print exception name, that should be in ToString 
10087         returned string.
10088
10089 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10090
10091         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10092         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10093
10094 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10095
10096         * object.c:
10097         (mono_print_unhandled_exception): after previous commit, i realized
10098         that MS calls ToString on the exception. I changed this function to
10099         do that. This way we get stack_trace for free.
10100
10101 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10102
10103         * object.c:
10104         (mono_print_unhandled_exception): invoke Message property instead of
10105         getting 'message' field from Exception. Don't allocate memory for
10106         'trace' and 'message' if not needed.
10107
10108 2002-08-18  Dick Porter  <dick@ximian.com>
10109
10110         * unicode.c: Fix asserts to match Encoder.cs checks
10111
10112 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10113
10114         * marshal.c: fix unaligned store issue and a few wrong
10115         opcode argument types.
10116
10117 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10118
10119         * icall.c: added GetUninitializedObjectInternal internal call.
10120
10121 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10122
10123         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10124         to the right domain.
10125
10126 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10127
10128         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10129
10130         * class.c (class_compute_field_layout): set blittable to false for Strings
10131
10132         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10133
10134 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10135
10136         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10137         first chunk of code to create types at runtime. Code to
10138         handle ReflectedType/DeclaringType. Make reflection handles
10139         domain specific.
10140
10141 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10142
10143         * class.c: set correct name in arrays.
10144
10145 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10146
10147         * appdomain.c (mono_domain_transfer_object): make it work with
10148         valuetypes. bug fixes.
10149
10150 2002-08-12  Dick Porter  <dick@ximian.com>
10151
10152         * object.h: Rename some parameters to avoid c++ keywords (Patch
10153         from Joseph Wenninger <kde@jowenn.at>)
10154
10155 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10156
10157         * icall.c: added icall to implement Assembly.GetFile*.
10158
10159 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10160
10161         * reflection.h, reflection.c: code to embed managed resources.
10162
10163 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10164
10165         * class.c: move all the type size stuff into
10166         class_compute_field_layout().
10167
10168 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10169
10170         * class.c: ensure enums have always the correct instance size.
10171         * unicode.c: remove wrong assert.
10172
10173 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10174
10175         * assembly.c: fix mem corruption issue.
10176         * image.h, image.c: added mono_image_get_resource () to access
10177         managed resources.
10178         * icall.c: implemented Assembly.EntryPoint property and some
10179         Managed Resources related internalcalls.
10180
10181
10182 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10183
10184         * image.c, image.h: impemented mono_image_get_entry_point ().
10185         * appdomain.c: use mono_image_get_entry_point.
10186
10187 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10188
10189         * reflection.c: support the object type argument when loading
10190         custom attributes.
10191
10192 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10193
10194         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10195         String as return type.
10196
10197 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10198
10199         * reflection.c: fix encoding of named args for custom attrs to match
10200         the ms implementation. Read them back when instantiating custom
10201         attributes.
10202
10203 2002-08-02  Radek Doulik  <rodo@ximian.com>
10204
10205         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10206         by Dietmar as quick fix
10207         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10208         16 as stack size, used on more places as quick fix before Dietmar
10209         will fix it properly
10210
10211 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10212
10213         * object.h, object.c: added accessors for fields and properties.
10214
10215 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10216
10217         * class.c, class.h: made mono_class_get_field_from_name ()
10218         loop on parent types.
10219         Added mono_class_get_property_from_name ().
10220
10221 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10222
10223         * class.c, class.h: move the code to setup the type vtable in its own
10224         function so that it can be reused also for types created at runtime.
10225         Eliminate the "class" identifier from the header file.
10226         * reflection.c: setup the vtable for enums so that we can create
10227         objects for use in SetConstant ().
10228
10229 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10230
10231         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10232         instead of the delegate itself as this pointer (bug #28383)
10233
10234 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10235
10236         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10237         conversions.
10238
10239 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10240
10241         * loader.c: don't set the pinvoke bit on icalls.
10242
10243 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10244
10245         * debug-helpers.c (mono_method_full_name): only print a number to
10246         indicate wrapper type (so that the output is more readable in traces).
10247
10248 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10249
10250         * class.c (mono_class_init): include method override patch from Paolo
10251
10252 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10253
10254         * icall.c: fixed GetTypeCode().
10255
10256 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10257
10258         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10259         use real delegate invoke function to make it work with multicast
10260         delegates (fix bug# 28291).
10261
10262 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10263
10264         * object.c: load constant strings.
10265
10266 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10267
10268         * reflection.c: no magic numbers.
10269         * tabledefs.h: security action enum.
10270
10271 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10272
10273         * assembly.c: fix possible memory corruption.
10274
10275 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10276
10277         * reflection.h, reflection.c: added support for linking resources.
10278         * verify.c: check we have an updated corlib.
10279
10280 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10281
10282         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10283         string arrays.
10284         (mono_marshal_string_array): null terminate unmanaged string arrays.
10285         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10286
10287 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10288
10289         * icall.c: Type.GetType () can now return also types from the
10290         calling assembly.
10291
10292 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10293
10294         * loader.h, loader.c: stack walking support.
10295         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10296         GetCallingAssembly.
10297
10298 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10299
10300         * marshal.c: added optimisations for blittable types 
10301
10302         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10303         (mono_class_setup_mono_type): set blittable attribute for single
10304         and double.
10305
10306         * marshal.c (mono_string_utf8_to_builder): impl.
10307         (mono_string_builder_to_utf8): impl.
10308         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10309
10310 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10311
10312         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10313         (mono_marshal_get_managed_wrapper): impl. byref types
10314
10315 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10316
10317         * icall.c:
10318         (search_method): don't display debug message. 
10319
10320 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10321
10322         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10323
10324 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10325
10326         * appdomain.c: set the missing filename when throwing exception.
10327
10328 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10329
10330         * metadata.c (mono_type_size): code cleanup
10331         (mono_type_stack_size): removed some test code
10332
10333 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10334
10335         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10336         mono_get_exception_file_not_found now.
10337
10338         * exception.c (mono_exception_from_name_two_strings): New version
10339         that will call a constructor with two string arguments. 
10340         (mono_get_exception_file_not_found): New helper routine, used to
10341         report file-not-found errors.
10342
10343 2002-07-20  Dick Porter  <dick@ximian.com>
10344
10345         * process.h:
10346         * process.c: Pass file handles to CreateProcess
10347         
10348         * icall.c:
10349         * file-io.h:
10350         * file-io.c: Implemented CreatePipe
10351
10352 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10353
10354         * metadata.c (mono_get_param_info): set alignment for value types
10355
10356 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10357
10358         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10359         Constify mono_domain_assembly_open().
10360         * loader.c: handle null namespace in icalls.
10361
10362 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10363
10364         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10365         (emit_str_to_ptr_conv): marshal object as structs
10366
10367         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10368
10369         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10370
10371 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10372
10373         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10374         (mono_marshal_get_native_wrapper): we an now return value types
10375
10376 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10377
10378         * verify.c: more checks implemented.
10379
10380 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10381
10382         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10383         (fix bug #27695)
10384         (mono_marshal_get_native_wrapper): allow byref arguments
10385         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10386         impl. PtrToStringXXX methods
10387         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10388         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10389         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10390         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10391         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10392
10393 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10394
10395         * reflection.c: fix buglet in parsing an assembly name.
10396
10397 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10398
10399         * marshal.c (emit_ptr_to_str_conv): first impl.
10400
10401 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10402
10403         * object.c, class.h: cache the vtable in the class as suggested by
10404         vargaz@freemail.hu (Zoltan Varga).
10405
10406 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10407
10408         * class.h, loader.c: added mono_field_from_token().
10409         * verify.c: first cut of type checking code.
10410
10411 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10412
10413         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10414
10415 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10416
10417         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10418         (fix bug #27782)
10419         (mono_marshal_get_remoting_invoke): impl.
10420         (mono_delegate_begin_invoke): impl.
10421         (mono_mb_emit_save_args): impl.
10422         (mono_delegate_end_invoke): impl.
10423         (mono_marshal_get_delegate_begin_invoke):
10424         (mono_marshal_get_delegate_end_invoke):
10425         (mono_marshal_get_delegate_invoke): generate a special name for
10426         those methods (including the signature) and associate them whith
10427         the delegate class. 
10428
10429 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10430
10431         * reflection.[ch]: 
10432         (mono_reflection_type_from_name): now it has a MonoImage parameter
10433         which is used as the default image to search the type in. If the image
10434         is NULL or getting the type from it fails, it defaults to corlib.
10435
10436         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10437         new parameter.
10438
10439 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10440
10441         * reflection.c: update the parameter table index.
10442
10443 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10444
10445         * domain.c: don't include the mark byte in the string hash.
10446
10447 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10448
10449         * icall.cs: icall for Type.GetTypeCode ().
10450         * verify: a couple of fixes and disabled local initialization checks.
10451
10452 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10453
10454         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10455
10456         * debug-helpers.c (mono_method_full_name): print the type of the
10457         runtime wrapper
10458
10459         * metadata.c (mono_signature_hash): a hash function for signatures
10460         (mono_signature_hash): better hash algorithm
10461
10462         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10463
10464         * debug-helpers.c (mono_method_full_name): this can now generate
10465         method names with signatures
10466
10467         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10468         method dont have this pointers.
10469
10470 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10471
10472         * reflection.c: fixup typebuilder tokens.
10473         * image.c: fix buglet.
10474         * marshal.h: remove whitespace.
10475         * metadata.h, metadata.c: reinstate code that was removed.
10476         * verify.c: handle catch directives and fix another couple of bugs.
10477
10478 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10479
10480         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10481         (mono_marshal_get_native_wrapper): make it comp. with the old code
10482         (mono_marshal_get_native_wrapper): support boolean
10483         (mono_marshal_get_managed_wrapper): support more types
10484
10485 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10486
10487         * class.c (class_compute_field_layout): compute class->blittable attribute.
10488
10489 2002-07-09  Dick Porter  <dick@ximian.com>
10490
10491         * threads.c: Make the thread cleaning up cope with threads that
10492         call ExitThread()
10493
10494 2002-07-08  Radek Doulik  <rodo@ximian.com>
10495
10496         * reflection.c (method_encode_code): use non-translated values to
10497         compute finally_start, this fixes exception handling on ppc, yay!
10498
10499         * decimal.h (struct signscale): fix endianess
10500
10501 2002-07-07  Radek Doulik  <rodo@ximian.com>
10502
10503         * reflection.c: swap box_val and not val
10504
10505 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10506
10507         * reflection.c, reflection.h: handle full assembly info in type name.
10508         Handle Type arguments when loading custom attributes.
10509         * icall.c: updated to use new mono_reflection_type_from_name () method.
10510
10511 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10512
10513         * loader.c:
10514         (method_from_memberref): also print assembly name when method not found.
10515
10516 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10517
10518         * icall.c:
10519         (ves_icall_TypeGetProperties): fixed bug #27473. 
10520
10521 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10522
10523         * reflection.c: display image name and token when cannot find the
10524         .ctor for an attribute.
10525
10526 2002-07-05  Martin Baulig  <martin@gnome.org>
10527
10528         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10529
10530 2002-07-04  Dick Porter  <dick@ximian.com>
10531
10532         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10533         compile on mingw.  This will cause mingw builds to not wait for
10534         subthreads to terminate after the main thread does.  I've lodged a
10535         bug with the mingw developers for them to wrap OpenThread().
10536
10537 2002-07-03  Dick Porter  <dick@ximian.com>
10538
10539         * threads.c: Store thread IDs instead of handles, because
10540         GetCurrentThread() returns a pseudohandle and therefore stores
10541         useless values.  mono_thread_cleanup() continues checking the
10542         array of threads until it is empty, to cope with subthreads
10543         spawning new threads after the main thread has finished.
10544
10545         * profiler.h:
10546         * profiler.c:
10547         * profiler-private.h: Pass the thread ID to thread profiler
10548         functions, instead of a handle
10549
10550 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10551
10552         * verify.c: fixes to make it more usable.
10553         * pedump.c: added --verify code to verify IL code in an assembly.
10554
10555 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10556
10557         * reflection.c: turn errors into warnings to allow compiling corlib.
10558
10559 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10560
10561         * reflection.c: add special cases to compile corlib.
10562
10563 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10564
10565         * reflection.c: handle properties with only a set method.
10566
10567 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10568
10569         * opcodes.h: add enum with opcodes in opval order.
10570
10571 2002-07-01  Dick Porter  <dick@ximian.com>
10572         
10573         * object.h:
10574         * object.c (mono_runtime_run_main): Removed unneeded argument
10575
10576 2002-06-28  Martin Baulig  <martin@gnome.org>
10577
10578         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10579
10580 2002-06-27  Dick Porter  <dick@ximian.com>
10581
10582         * threads.c: Store the handle in both the parent thread and in the
10583         subthread, to minimise the time between starting a new thread and
10584         storing its ID.
10585
10586 2002-06-26  Dick Porter  <dick@ximian.com>
10587
10588         * appdomain.c (mono_runtime_cleanup): Close the socket library
10589         after all the threads have finished, not before
10590
10591 2002-06-26  Martin Baulig  <martin@gnome.org>
10592
10593         * debug-symfile.c (mono_debug_find_source_location): Added
10594         `guint32 *line_number' argument.  If it's not NULL, store the line number
10595         there and return the file name without the line number.
10596
10597 2002-06-25  Dick Porter  <dick@ximian.com>
10598
10599         * icall.c:
10600         * process.h:
10601         * process.c: Process forking and other support functions
10602
10603 2002-06-25  Dick Porter  <dick@ximian.com>
10604
10605         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10606         things dont happen when the image is closed.
10607         (mono_image_lookup_resource): Walk the resource section looking
10608         for a particular entry
10609
10610         * cil-coff.h: PE resource section decoding
10611
10612 2002-06-25  Dick Porter  <dick@ximian.com>
10613         
10614         * assembly.h:
10615         * assembly.c: 
10616         (mono_assembly_foreach): Accessor functions to walk the list of
10617         loaded assemblies
10618         (mono_assembly_set_main):
10619         (mono_assembly_get_main): Process methods need to know which
10620         assembly is the "main" one
10621
10622         * object.c (mono_runtime_run_main): Record the main assembly
10623
10624         * debug-helpers.c: Fix typo
10625
10626 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10627
10628         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10629         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10630
10631 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10632
10633         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10634
10635 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10636
10637         * image.c (do_mono_image_open): Initialize reference count,
10638         otherwise we leak the MonoImage.
10639
10640 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10641
10642         * reflection.c: small tweak to handle self-hosting.
10643
10644 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10645
10646         * reflection.c: fix type name parse code.
10647
10648 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10649
10650         * reflection.c: break out of the loop.
10651         * image.c: special case corlib.
10652
10653 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10654
10655         * reflection.c: add all the custom attrs at the end to ensure the
10656         ctors have been properly initialized when the attributes are defined
10657         in the current assembly.
10658
10659 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10660
10661         * reflection.c: handle correctly multiple-nested types.
10662
10663 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10664
10665         * row-indexes.h: fix typos.
10666         * reflection.c: adjust for typos and fix method_def_or_ref
10667         encoding in MethodImpl table.
10668
10669 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10670
10671         * reflection.c: fix entry point patching (thanks Serge!).
10672
10673 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10674
10675         * verify.c: add check for System.Exception
10676
10677 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10678
10679         * image.c, class.c: minifix for code just c&p'ed.
10680         * reflection.c: warning fix.
10681         * object.h, loader.h, domain.c: load also StringBuilder.
10682
10683 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10684
10685         * marshal.h, marshal.c: some support code to handle complex marshaling.
10686
10687 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10688
10689         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10690         Better signatures with vtable error dump.
10691
10692 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10693
10694         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10695
10696 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10697
10698         * icall.c (ves_icall_Type_GetField): impl.
10699
10700 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10701
10702         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10703         to retrieve a marshal description blob for a field or param.
10704
10705 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10706
10707         * reflection.h, reflection.c: change order of nested type emission
10708         to avoid table corruption. The NestedTypes table is sorted.
10709         * icall.c: change order of GetConstructor results to workaround mcs bug.
10710
10711 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10712
10713         * reflection.h, reflection.c: handle field and param marshal
10714         information.
10715
10716 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10717
10718         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10719
10720 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10721
10722         * reflection.c: fix call convention.
10723
10724 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10725
10726         * reflection.h, reflection.c: mono_image_get_memberref_token()
10727         takes a type instead of a class, now. Added
10728         mono_image_get_array_token() to create tokens for the special
10729         multi-dim array methods.
10730
10731 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10732
10733         * assembly.c: handle modules (no assembly table). Split
10734         loading references in its own function.
10735         * class.c: handle moduleref resolution scope.
10736         * image.c, image.h: cache module name in image.
10737
10738 2002-06-07  Martin Baulig  <martin@gnome.org>
10739
10740         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10741         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10742
10743 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10744
10745         * icall.c: more signature fixes that used uint instead of int.
10746
10747 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10748
10749         * reflection.c: fixed signature of field refs.
10750
10751 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10752
10753         * class.c, reflection.c: handle typerefs of nested types
10754         (both on read and when writing files).
10755
10756 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10757
10758         * icall.c: fix method signatures that tried to workaround the previous
10759         typo, d'oh!
10760
10761 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10762
10763         * debug-helpers.c: fix typo.
10764
10765 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10766
10767         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10768         rewrote the PE/COFF writing code (our programs are understood by the
10769         ms runtime, now).
10770
10771 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10772
10773         * gc.c, gc.h, icall.c: weakreference support.
10774
10775 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10776
10777         * Makefile.am, mono-config.c: use $(sysconfdir).
10778
10779 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10780
10781         * icall.c: changed default precision of Double.ToString() to 15.
10782         Fixed memory leak. Unified with Single.ToString.
10783
10784 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10785
10786         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10787
10788 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10789
10790         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10791         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10792         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10793         and myself.
10794
10795 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10796
10797         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10798
10799 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10800
10801         * reflection.c, socket-io.c: more compilation fixes.
10802
10803 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10804
10805         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10806         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10807         unicode.c: warning and compiler compatibility fixes.
10808
10809 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10810
10811         * class.h, metadata.c: fixed warnings/compilation errors.
10812
10813 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10814
10815         * Makefile.am, mono-config.c, mono-config.h: configuration file
10816         support routines.
10817         * loader.c, loader.h: make Dll mapping configurable at runtime in the
10818         config file. Export methods to insert and lookup mappings.
10819
10820 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10821
10822         * reflection.c: handle types and boxed objects in custom attr
10823         constructors.
10824
10825 2002-05-30  Martin Baulig  <martin@gnome.org>
10826
10827         * debug-symfile.c
10828         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
10829
10830 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
10831
10832         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
10833         to lookup the implmap row for a P/Invoke method.
10834         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
10835         P/Invoke method from the runtime on an as needed basis.
10836
10837 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
10838
10839         * metadata.c (mono_metadata_parse_signature): impl.
10840
10841 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10842
10843         * class.c: handle .pack directive.
10844
10845 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10846
10847         * object.c: initialize static fields with RVA data.
10848
10849 2002-05-25  Martin Baulig  <martin@gnome.org>
10850
10851         * debug-symfile.c
10852         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
10853
10854 2002-05-24  Martin Baulig  <martin@gnome.org>
10855
10856         * debug-symfile.c
10857         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
10858         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
10859         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
10860
10861 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10862
10863         * object.c: special case string ctros in invoke.
10864         * gc.c: silly whitespace changes.
10865
10866 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
10867
10868         * threadpool.[ch]: impl. a threadpool that can
10869         be used by mint and mono.
10870
10871 2002-05-22  Martin Baulig  <martin@gnome.org>
10872
10873         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
10874         The first argument is now a `MonoReflectionModuleBuilder *', the return
10875         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
10876         `methods' field to get the method builder.  The `token' argument is the
10877         unfixed token.
10878
10879         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
10880         invalid characters instead of g_assert_not_reached()ing.  This seems
10881         to be the behaviour of mscorlib.
10882
10883 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
10884
10885         * object.c (mono_runtime_invoke_array): applied patch from Rachel
10886         Hestilow to fix bug #25104
10887
10888 2002-05-21  Martin Baulig  <martin@gnome.org>
10889
10890         * debug-symfile.c (mono_debug_find_source_location): New function.
10891         Looks up an IL offset in the line number table and returns the source
10892         location as a string.
10893
10894 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10895
10896         * icall.c:
10897         (mono_double_ToStringImpl): changed %f by %g until we have something
10898         better.
10899
10900 2002-05-21  Nick Drochak  <ndrochak@gol.com>
10901
10902         * icall.c : Use different name for Math.Pow's icall.  Needed to check
10903         parameters first in C#.
10904
10905 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10906
10907         * icall.c, reflection.h: added icall to get info about an event.
10908
10909 2002-05-20  Radek Doulik  <rodo@ximian.com>
10910
10911         * object.c (mono_value_box): don't use memcpy for boxing on BIG
10912         endian
10913         (mono_value_box): don't use memcpy for small sizes on
10914         architectures with unaligned access
10915
10916 2002-05-20  Martin Baulig  <martin@gnome.org>
10917
10918         * reflection.c (mono_reflection_setup_internal_class): Don't crash
10919         if `tb->parent == NULL'.
10920         (mono_reflection_create_internal_class): New function.  This is
10921         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
10922         for enum types.
10923
10924         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
10925         New interncall.
10926
10927 2002-05-19  Martin Baulig  <martin@gnome.org>
10928
10929         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
10930         argument to get the length, don't default to the array length.
10931
10932 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
10933
10934         * assembly.c (mono_assembly_setrootdir): New function used to
10935         override the MONO_ASSEMBLIES directory.
10936
10937 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10938
10939         * icall.c: ValueType_GetHashCode() initialize local var.
10940
10941 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10942
10943         * reflection.c: sort custom attributes table.
10944
10945 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10946
10947         * reflection.c: support named args in custom attributes (write support).
10948
10949 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10950
10951         * reflection.c: fix finally position calculation.
10952
10953 2002-05-15  Radek Doulik  <rodo@ximian.com>
10954
10955         * reflection.c: fixed endianess at many places
10956
10957         * icall.c (ves_icall_InitializeArray): comment out debug msg
10958
10959 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
10960
10961         * object.c (mono_unhandled_exception): new function to handle
10962         unhandled exceptions.
10963         (mono_unhandled_exception): call the UnhandledException event.
10964         (mono_runtime_delegate_invoke): impl.
10965
10966 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
10967
10968         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
10969         returns the RVA, not the direct pointer to the data. Handle the case
10970         when the class size is fixed.
10971
10972 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10973
10974         * reflection.c: fix some endianess issues.
10975
10976 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
10977
10978         * object.c (mono_runtime_invoke): is now able to catch exceptions.
10979
10980         * threads.c (mono_thread_init): added a callback which is invoked
10981         at thread start.
10982
10983 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10984         
10985         * icall.c: make GetHashCode return non-negative values.
10986
10987 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10988
10989         * object.c, icall.c, gc.c: revert to address-based hashcode.
10990
10991 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
10992
10993         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
10994
10995 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10996
10997         * icall.c, class.c: special case <Module>.
10998
10999 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
11000
11001         * icall.c: fix bug in GetNow().
11002
11003 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
11004
11005         * object.c (mono_runtime_class_init): make sure that we call all
11006         static class constructors.
11007
11008 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11009
11010         * reflection.c: sort methodsemantics table.
11011
11012 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11013
11014         * reflection.h, reflection.c: honour init locals setting.
11015
11016 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11017
11018         * icall.c: copied Double ToStringImpl for Single ToStringImpl
11019
11020 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11021
11022         * reflection.c: support ContructorBuilders in attribute blob creation.
11023
11024 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11025
11026         * reflection.c: some changes to build a binary that can be run
11027         directly in windows.
11028
11029 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11030
11031         * loader.c: print a big message when an icall can't be found.
11032
11033 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11034
11035         * string-icalls.c: fix bug 24248.
11036
11037 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11038
11039         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11040         icall.c, reflection.h: separate assembly loading by pathname and by
11041         assembly name. Use the MONO_PATH env var to search for assemblies.
11042
11043 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11044
11045         * assembly.c, image.h: add some support for assemblies
11046         with multiple modules.
11047         * class.c, class.h: export mono_class_from_typeref().
11048         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11049         instead.
11050
11051 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11052
11053         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11054         documentation says (the ECMA one is correct).
11055
11056 2002-05-02  Dick Porter  <dick@ximian.com>
11057
11058         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11059         Don't name the synchronisation mutex.
11060
11061 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11062
11063         * rand.c
11064         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11065         Make the prototypes match.
11066         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11067         Same.
11068
11069         * icall.c
11070         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11071         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11072         all systems have tm.tm_zone, so use strftime() with %Z to print
11073         the timezone abreviation into a temp string.
11074
11075         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11076         rather than mono_array_addr() on a MonoString on Big Endian
11077         machines.
11078
11079 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11080
11081         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11082         fix bug 24041
11083
11084 2002-04-30  Dick Porter  <dick@ximian.com>
11085
11086         * socket-io.c: Cope with SOCKET being an integer rather than a
11087         pointer now.
11088
11089         * threads.c: Added Thread_free_internal, to deal with thread
11090         handle cleanup.  Moved calls to handle_store() and handle_remove()
11091         to start_wrapper(), so each can only be called once.  Allocate
11092         synchronisation blocks with GC_malloc(), and use GC finalisation
11093         to close the handles.
11094
11095         * icall.c: added System.Threading.Thread::Thread_free_internal
11096
11097 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11098
11099         * icall.c: support Environment.Exit, CommandLineArgs().
11100
11101 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11102
11103         * object.c, object.h: added mono_runtime_run_main () and
11104         mono_runtime_get_main_args () for use in System.Environment.
11105
11106 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11107
11108         * gc.c: fix thinko, enable actual finalization since the jit is now
11109         fixed.
11110
11111 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11112
11113         * gc.c, object.c: take into account that an object may be offset wrt the address
11114         returned by GC_malloc().
11115
11116 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11117
11118         * image.c: handle files without entries in the assembly table (modules).
11119
11120 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11121
11122         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11123         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11124         allowed to be null when it's System.Object class setup.
11125
11126 2002-04-27  Martin Baulig  <martin@gnome.org>
11127
11128         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11129         if `tb->parent == NULL' rather than crashing.
11130
11131 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11132
11133         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11134         calling acos() where asin() should have been called.
11135
11136 2002-04-26  Martin Baulig  <martin@gnome.org>
11137
11138         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11139         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11140         there's a subdirectory called `System', but we don't want to read that
11141         subdirectory as an assembly.
11142
11143 2002-04-25  Martin Baulig  <martin@gnome.org>
11144
11145         * debug-symfile.c: Reflect latest MonoString changes.
11146
11147 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11148
11149         * rand.c, rand.h: instance method icalls need to have an explicit
11150         this pointer as first argument in the C implementation.
11151
11152 2002-04-25  Nick Drochak <ndrochak@gol.com>
11153
11154         * icall.c: Fix typo in map for GetNonZeroBytes
11155
11156 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11157
11158         * string-icalls.c : String does now passes unit tests without any 
11159         errors, the following changes has been made:
11160         
11161         Implemented replace methods.
11162         Renaming of methods to (try) follow the standard.
11163         Fixed compare ordinal
11164         Made all memory allocated directly to function instead of via icall function.
11165         Small performance fix in is_in_array function
11166                         
11167  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11168
11169         c (mono_string_Internal_ctor_charp_int_int):
11170         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11171         sindex < 0, throw ArgumentOutOfRangeException instead of
11172         ArgumentNullException.
11173
11174         Added new check for length == 0, however
11175         I need to make it return String.Empty from the C code.
11176         
11177         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11178         that calculate the length for us here.
11179         
11180         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11181         mono_string_new_utf16 with mono_string_new, since value is utf8.
11182
11183 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11184
11185         * object.c: register the object for finalization if needed.
11186         Allocate one more char in the string for the terminating 0 char.
11187
11188 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11189
11190         * class.c, class.h, image.c: check if a type implemenst a destructor.
11191         Use the proper key for array class lookups.
11192         * icall.c: register the icalls in the System.GC class.
11193         * gc.c, gc.h: GC-related functions and icalls.
11194
11195 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11196
11197         * icall.c:
11198         * socket-io.c:
11199         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11200         changed a couple of free () by g_free ().
11201
11202         * decimal.c: one-liner in the comments for decimal2string ().
11203
11204 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11205
11206         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11207
11208 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11209
11210         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11211         * object.c (mono_runtime_invoke_array) : handle null in params
11212
11213 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11214
11215         * string-icalls.c: fixed bug in split (one off bug)
11216
11217 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11218
11219         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11220         * icalls.c: added String::Equals as internal method
11221
11222 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11223
11224         * threads.c: fixed bug in the double interlocked functions
11225
11226 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11227
11228         * threads.c: implemented all of the new interlocked icalls.
11229         * string-icalls.c: fix a bug in insert.
11230         * icalls.c: added the icalls for interlocked, removed old string functions.
11231         
11232 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11233
11234         * loader.c: fix off-by-one error when reading argument names.
11235
11236 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11237
11238         * profiler.c: win32 counter implementation (untested).
11239         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11240         (the latter needs testing and more complete impl. from win32 folks).
11241
11242 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11243
11244         * object.c: mono_array_new_full workaround mono_array_class_get
11245         problem.
11246
11247 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11248
11249         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11250         * object.h (mono_string_chars): Changed casting type.
11251
11252 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11253
11254         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11255                            method signatures to use gunichar2 instead of gint16.
11256
11257 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11258
11259         * object.h, object.c: domain-specific versions of mono_object_new and
11260         mono_array_new.
11261
11262 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11263
11264         * object.c: changed String layout
11265
11266         * string-icalls.c (mono_string_Internal_ctor_chara): added
11267         internal string constructors.
11268
11269 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11270
11271         * threads.c: pass 'this' to the thread start routine.
11272
11273 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11274
11275         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11276         InternalCompareStr don't call twice mono_string_cmp_char for the last
11277         character. Improved performance in mono_string_cmp_char.
11278
11279 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11280
11281         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11282         code into its own library: libmonoruntime.
11283
11284 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11285
11286         * object.h, object.c: changed array format so that szarrays do not
11287         require a bounds structure.
11288         * icall.c, appdomain.c: support for new szarray format.
11289
11290 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11291
11292         * metadata.c: compare also the retuns type when comparing signatures:
11293         we didn't do this as an optimization since really overloaded methods
11294         must differ also in the arguments, but this doesn't work with
11295         low-level IL code (or when using explicit conversion operators: see
11296         bug#23498 for an example).
11297
11298 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11299
11300         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11301
11302 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11303
11304         * icall.c: make MonoType::GetElementType its own icall.
11305
11306 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11307
11308         * icall.c: remove MonoMethod_get_Name().
11309         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11310         object.
11311
11312 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11313
11314         * string-icalls.c: optimized a few methods.
11315
11316 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11317
11318         * icall.c: added all new string internal calls
11319         * string-icalls.c: added, new string internal call implementation.
11320         * object.c: added mono_string_new_size for allocating a string a size
11321
11322 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11323
11324         * object.c (mono_object_isinst): use the same code as in the
11325         optimized x86 version.
11326
11327 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11328
11329         * profiler.c: TSC-based timer code (faster and more accurate).
11330         Not hooked up in configure, yet (set USE_X86TSC to 1).
11331
11332 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11333
11334         * profiler.c, profiler.h: track time spent compiling methods.
11335         * threads.c: track thread creation/destruction.
11336
11337 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11338
11339         * profiler.c, profiler.h, profiler-private.h: profiling interface
11340         and sample implementation. Moved here so that it can be used also by
11341         the jit.
11342
11343 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11344
11345         * reflection.c, reflection.h: keep types and other handles separate in
11346         the hash tables for referred tokens. Add guid for modules.
11347
11348 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11349
11350         * assembly.c: fix bugs found with valgrind.
11351         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11352
11353 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11354
11355         * threads: added icall support for getting current domain for
11356                    the thread.
11357  
11358 2002-04-13  Martin Baulig  <martin@gnome.org>
11359
11360         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11361         (MonoDebugVarInfo): Added `index' field for register based addresses.
11362         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11363         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11364         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11365         `MonoDebugVarInfo *this_var'.
11366
11367         * debug-symfile.c (relocate_variable): New static function to write
11368         a location description for a local variable or method parameter.
11369
11370 2002-04-12  Martin Baulig  <martin@gnome.org>
11371
11372         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11373         stack offset and begin/end scope address of a local variable.
11374         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11375         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11376         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11377
11378         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11379         Added new relocation types for start/end scope of a local variable.
11380
11381 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11382
11383         * object.h: add mono_object_domain() macro.
11384         * reflection.c: handle typespecs.
11385         * icall.c: MonoMethod::get_Name() implementation.
11386
11387 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11388
11389         * icall.c: String::GetHashCode() icall implementation.
11390
11391 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11392
11393         * icall.c: String::IndexOfAny icall.
11394         * object.c, object.h: make array->max_length more useful.
11395         Intrduced mono_object_class() and mono_string_length() macros.
11396
11397 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11398
11399         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11400         instead of g_unichar_isdigit.
11401
11402 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11403
11404         * icall.c: Implement a simple Double.ToString().
11405
11406 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11407
11408         * appdomain.h: only io-layer.h is supposed to be included.
11409         * icall.c: explicitly import environ. Fix warning.
11410
11411 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11412
11413         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11414                 return true even if it's not Daylight Savings time.
11415                 Only return false for the case where the function isn't
11416                 implemented for a plaform (read Windows).
11417
11418 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11419
11420         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11421         data with a mutex.
11422
11423 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11424
11425         * mempool.c (mono_mempool_alloc): only use g_malloc when
11426         absolutely necessary.
11427
11428 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11429
11430         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11431
11432         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11433         (mono_class_proxy_vtable): use domain mempool
11434
11435 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11436
11437         * appdomain.h, appdomain.c: split initialization that requires the
11438         execution engine support into mono_runtime_init().
11439
11440 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11441
11442         * class.c (mono_class_init): don't include vtable inside MonoClass
11443         to save some memory, gather some statistics.
11444         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11445
11446 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11447
11448         * icall.c: internalcall implementation for ValueType.Equals().
11449
11450 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11451
11452         * object.c (mono_message_init): moved 
11453         (mono_runtime_exec_main): new arch. independent impl.
11454         (mono_runtime_invoke_array): new method - like
11455         mono_runtime_invoke, but you can pass an array of objects.
11456         (mono_remoting_invoke): new arch. independent impl.
11457         (mono_message_invoke): new arch. independent impl.
11458         (mono_runtime_class_init): new arch. independent impl.
11459         (mono_runtime_object_init): new arch. independent impl.
11460
11461 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11462
11463         * metadata.c, object.c, reflection.c: documented the exported
11464         functions.
11465
11466 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11467
11468         * icall.c: simpler code to pass the assembly builder data to corlib.
11469         Implement GetNestedTypes() internalcall.
11470
11471 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11472
11473         * class.c: warn if a type can't be loaded.
11474
11475 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11476
11477         * image.h: typedef MonoImageOpenStatus
11478         * types.h: removed unused file
11479         
11480 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11481
11482         * icall.c: Enum_ToObject accepts enum value arguments.
11483
11484 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11485
11486         * class.c: move initialization of properties, events and nested
11487         classes, so that they happen for interfaces, too.
11488
11489 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11490
11491         * icall.c: cleanup some ugly casts in Array_SetValue*.
11492
11493 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11494
11495         * icall.c: the values array fro enums is of the correct type, now.
11496         Implement (correctly) getFullName instead of assQualifiedName for
11497         MonoType.
11498         * reflection.h, reflection.c: added mono_type_get_name ().
11499
11500 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11501
11502         * assembly.c, image.h: for each MonoImage, record from wich assembly
11503         it was loaded.
11504         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11505         Make Type.Assembly work.
11506
11507 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11508
11509         * debug-symfile.h: use char* instead of gpointer to avoid
11510         unnecessary casts.
11511
11512         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11513
11514         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11515         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11516
11517 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11518
11519         * icall.c (mono_message_init): impl. (code cleanup)
11520         (ves_icall_InternalExecute): impl. FieldGetter
11521
11522         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11523         defined we call all (non-static)methods through the vtable. 
11524
11525 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11526
11527         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11528         finalizer even though the memory is still referenced (and the chunk of
11529         memory is not freed).
11530
11531 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11532
11533         * assembly.c: fix brokeness.
11534
11535 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11536
11537         * class.c: kill some warnings. Check explicit interface method
11538         implementation also without considering the namespace.
11539         Load also literal strings in static class data.
11540
11541 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11542
11543         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11544         (default_assembly_name_resolver): Make the resolver take the
11545         "base" directory where the assembly was originally defined, so we
11546         can load DLLs that are in the same directory as the assembly that
11547         is being referenced.
11548
11549 2002-03-28  Dick Porter  <dick@ximian.com>
11550
11551         * file-io.h: 
11552         * file-io.c:
11553         * socket-io.c: 
11554         * unicode.h: 
11555         * unicode.c: Warning cleanups
11556
11557 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11558
11559         * object.h, reflection.h: use the correct type instead of MonoObject.
11560
11561 2002-03-28  Martin Baulig  <martin@gnome.org>
11562
11563         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11564         (mono_debug_update_symbol_file): Initialize classes if necessary.
11565
11566 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11567
11568         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11569         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11570
11571 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11572
11573         * assembly.h: fix function prototype.
11574         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11575         * mono-endian.h: use const cast.
11576
11577 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11578
11579         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11580
11581 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11582
11583         * loader.c: don't assert when a typeref can't be loaded, give
11584         a chance to the runtime to trow an exception instead.
11585         * loader.h: fix warning.
11586
11587 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11588
11589         * class.c (mono_class_proxy_vtable): added proxy support
11590
11591 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11592
11593         * icall.c: removed last of PAL calls, added System.Environment
11594         * file-io.h, file-io.c: MonoIO implementation
11595         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11596
11597 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11598
11599         * appdomain.c: do not use the byte marker in ldstr table lookup.
11600         * debug-helpers.c: allow two ':' to separate class and method name.
11601         * object.c: allocate arrays bounds with the GC, too.
11602         * verify: add a few more checks.
11603
11604 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11605
11606         * reflection.c: output also literal strings. Allocate parameter data
11607         with GC_malloc() (thanks, Martin, for catching this!).
11608
11609 2002-03-26  Martin Baulig  <martin@gnome.org>
11610
11611         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11612         include the `this' offset in the `param_offsets'.
11613
11614 2002-03-25  Martin Baulig  <martin@gnome.org>
11615
11616         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11617         mono_debug_get_class() function to get the classes. Added new
11618         relocation types for arrays and strings.
11619         (mono_debug_get_class): New static function to search in all
11620         referenced assemblies for a metadata token.
11621
11622         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11623
11624 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11625
11626         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11627         hold gc-allocated objects. Make the string heap a stream like the
11628         others. Removed duplicated code when writing stream info.
11629         Added asserts to catch possible buffer overflows. Set the sorted map
11630         for tables that need sorting. Added some documentation.
11631
11632 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11633
11634         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11635         for interned strings and vtables.
11636
11637 2002-03-24  Martin Baulig  <martin@gnome.org>
11638
11639         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11640         it in the array since it was created with g_slist_prepend().
11641
11642 2002-03-24  Martin Baulig  <martin@gnome.org>
11643
11644         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11645         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11646         (mono_debug_method_from_token): Renamed to
11647         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11648         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11649
11650         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11651         relocation types.
11652
11653         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11654
11655 2002-03-24  Martin Baulig  <martin@gnome.org>
11656
11657         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11658         (mono_debug_method_from_token): New func.
11659
11660         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11661         New interncall, calls mono_debug_local_type_from_signature().
11662         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11663         calls mono_debug_method_from_token().
11664
11665 2002-03-23  Martin Baulig  <martin@gnome.org>
11666
11667         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11668         specifies the number of bytes to be converted, not the array size.
11669         Return the number of chars, not the number of bytes.
11670         (ves_icall_iconv_get_chars): The `byteCount' argument
11671         specifies the number of bytes to be converted, not the array size.
11672
11673 2002-03-23  Martin Baulig  <martin@gnome.org>
11674
11675         * reflection.h (MonoReflectionSigHelper): New type.
11676
11677         * reflection.c (mono_reflection_sighelper_get_signature_local),
11678         (mono_reflection_sighelper_get_signature_local): New functions.
11679
11680         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11681         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11682         interncalls.
11683
11684 2002-03-23  Martin Baulig  <martin@gnome.org>
11685
11686         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11687         is_writeable is set.
11688         (mono_raw_buffer_update): New function to write the modified map
11689         back to disk.
11690
11691         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11692
11693         * debug-symfile.c (mono_debug_update_symbol_file): Call
11694         mono_raw_buffer_update() when done writing.
11695
11696 2002-03-23  Martin Baulig  <martin@gnome.org>
11697
11698         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11699
11700         * debug-symfile.c: Added support for arguments and local variables.
11701
11702 2002-03-23  Dick Porter  <dick@ximian.com>
11703
11704         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11705         protected by ifdefs, hence breaking the w32 build.
11706
11707 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11708
11709         * object.c: implement is_interned() the right way.
11710
11711 2002-03-21  Martin Baulig  <martin@gnome.org>
11712
11713         * debug-symfile.[ch]: New files to handle debugging information
11714         files. There's also support to dynamically update these symbol
11715         files to include machine dependent information.
11716
11717 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11718
11719         * threads.c (mono_thread_create): new function to create thread
11720         from C
11721
11722 2002-03-20  Martin Baulig  <martin@gnome.org>
11723
11724         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11725         method is a constructor.
11726         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11727         points to ves_icall_InternalInvoke().
11728
11729 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11730
11731         * file-io.c: Flush shouldn't throw exceptions.
11732
11733 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11734
11735         * file-io.c: FileStream flush support; FileSetLength now
11736         restores file pointer.
11737
11738 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11739
11740         * class.c: set image for pointer classes.
11741
11742 2002/03/19  Nick Drochak <ndrochak@gol.com>
11743
11744         * sysmath.c: Forgot one.
11745
11746 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11747
11748         * sysmath.c: Avoid redefining existing names.
11749
11750 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11751
11752         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11753         handled by runtime as icall rather than dllimport from libm.so
11754         * file-io.c, file-io.h: fixed handle argument type.
11755
11756 2002-03-18  Dick Porter  <dick@ximian.com>
11757
11758         * reflection.c (mono_image_get_type_info): rename interface to
11759         iface, because of "#define interface struct" on windows.
11760
11761 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11762
11763         * class.c, class.h: rename and export mono_ptr_class_get().
11764         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11765         * reflection.c, reflection.h, icall.c: better/saner type name
11766         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11767         method signatures.
11768
11769 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11770
11771         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11772
11773         * icall.c (ves_icall_InternalInvoke): impl.
11774
11775 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11776
11777         * reflection.c: output the interface map table, too.
11778
11779 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11780
11781         * class.c (class_compute_field_layout): separate computation of 
11782         static field layout
11783
11784 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11785
11786         * icall.c: added System.Buffer support.
11787         * file-io.c: moved file icalls from PAL to FileStream.
11788
11789 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11790
11791         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11792
11793 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11794
11795         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11796
11797 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11798
11799         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11800
11801 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11802
11803         * debug-helpers.{c,h}: moved here from monograph some useful functions
11804         to locate a method by name/signature in a class or image. Included
11805         also a small and flexible IL disassembler.
11806
11807 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11808
11809         * reflection.c: fixup tokens in methods with small header size, too.
11810
11811 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
11812
11813         * object.c (mono_string_to_utf8): remove assert(!error), instead
11814         print a warning. 
11815
11816 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
11817
11818         * icall.c: update to the new mono_Array_class_get interface.
11819
11820 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11821
11822         * appdomain.c, object.c: Boehm-GC enable.
11823         * icall.c: make get_data_chunk() support split data requests.
11824         Ensure a class is initialized in more cases. Return only the first
11825         property found in GetProperties() or the compiler gets confused. 
11826         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
11827         * reflection.h, reflection.c: add fixup mechanism for field and method
11828         tokens. Initialize assembly->typeref in a single place. Output
11829         properties after events. Support custom attributes for events, too.
11830         Typo fix for paramter custom attrs.
11831
11832 2002-03-07  Martin Baulig  <martin@gnome.org>
11833
11834         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
11835
11836 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
11837
11838         * class.c (mono_array_class_get): fix. for multi. dim. arrays
11839
11840 2002-03-06  Martin Baulig  <martin@gnome.org>
11841
11842         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
11843         non-zero lower bounds. See testcases #F10-#F13.
11844
11845 2002-03-05  Martin Baulig  <martin@gnome.org>
11846
11847         * exception.c (mono_get_exception_argument_out_of_range): New exception.
11848
11849         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
11850         ves_icall_System_Array_GetValue(), only calculate the absolute array position
11851         here.
11852         (ves_icall_System_Array_SetValue): Likewise.
11853         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
11854         as argument and does the actual work. This function is used when copying a
11855         multi-dimensional array.
11856         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
11857         now do all the widening conversions of value types.
11858         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
11859
11860 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11861
11862         * class.c: remove some magic numbers and use the smbolic names,
11863         instead. Added init_events() to load event info at class init time.
11864         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
11865         and mono_metadata_methods_from_event().
11866         * reflection.h, reflection.c: added support for writing out the evnets
11867         related information.
11868
11869 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11870
11871         * reflection.h, icall.c: use a different method (GetInterfaces)
11872         to gather interface info and add isbyref, isprimitive and
11873         ispointer to the ves_icall_get_type_info() return value.
11874
11875 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11876
11877         * class.h: stared adding support for events.
11878         * icall.c: split find_members implementation. Added debug icall to get
11879         the address of an object.
11880         * reflection.c: handle TypeBuilders in mono_type_get_object().
11881
11882 2002-03-01  Martin Baulig  <martin@gnome.org>
11883
11884         * icall.c (ves_icall_System_Array_GetLength): This must throw an
11885         ArgumentOutOfRangeException(), not an ArgumentException().
11886         (ves_icall_System_Array_GetLowerBound): Likewise.
11887         (ves_icall_System_Array_GetValue): Improved argument checking.
11888         (ves_icall_System_Array_SetValue): Improved argument checking.
11889
11890 2002-03-01  Martin Baulig  <martin@gnome.org>
11891
11892         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
11893         called with invalid arguments rather than just dying with g_assert().
11894         (ves_icall_System_Array_SetValue): Likewise.
11895         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
11896         raise a NotImplementedException instead.
11897         (ves_icall_System_Array_GetLength): Added argument checking.
11898         (ves_icall_System_Array_GetLowerBound): Added argument checking.
11899
11900 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
11901
11902         * object.h (mono_assert): new macros mono_assert and
11903         mono_assert_not_reached
11904
11905 2002-02-28  Martin Baulig  <martin@gnome.org>
11906
11907         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
11908         and "System::String::IsInterned" to "System::String::_IsInterned".
11909
11910 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
11911
11912         * icall.c: remove hacks for typebuilder. Added icall to create a
11913         modified type from a tybebuilder.
11914         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
11915         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
11916         to create a backing MonoClass for a TypeBuilder.
11917
11918 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11919
11920         * class.c, class.h: more refactoring of class init.
11921         Export mono_class_setup_mono_type() and mono_class_setup_parent().
11922
11923 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
11924
11925         * marshal.c, marshal.h: start of marshaling interface.
11926
11927 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
11928
11929         * icall.c: fix order in assembly qualified name icall.
11930
11931 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
11932
11933         * class.c: do not free str, since we store it in the hash table.
11934         * reflection.h: add label field to MonoILExceptionInfo.
11935         * reflection.c: handle references to more than one assembly. Handle
11936         case when there isn't a module created in the assembly.
11937
11938 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11939
11940         * class.c: Fix typo. Start refactoring of class init code.
11941
11942 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11943
11944         * appdomain.c: exit with 1 on error.
11945         * class.c: we already have the name in MonoClassField.
11946         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
11947         MonoStreamHeader instead of an offset of image->raw_metadata.
11948
11949 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
11950
11951         * appdomain.c (mono_init): Be even more descriptive about the error.
11952
11953 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
11954
11955         * appdomain.c: give the user an informative message when corlib can't
11956         be loaded.
11957
11958 2002-02-26  Martin Baulig  <martin@gnome.org>
11959
11960         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
11961         New icall to get the time zone data.
11962
11963 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11964
11965         * reflection.c: set virtual and raw size of section correctly.
11966         * threads.c: transfer domain information to newly created threads.
11967
11968 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
11969
11970         * class.c: when instancing a class in a domain, load the default
11971         vaules for static fields from the constant table. Fix System.Enum to
11972         not be an enum.
11973         * icall.c: implement Object::GetType() internalcall. Implemented
11974         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
11975         Fixed checking of binding flags in find_members().
11976         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
11977         * reflection.c: handle enumerations when writing to the constant
11978         table. Use a different object cache for types.
11979
11980
11981 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
11982
11983         * object.c (mono_object_isinst): fix for arrays
11984
11985         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
11986
11987 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
11988
11989         * object.c: don't use mprotect ()  and fix intern pool hash table
11990         lookup for big endian systems.
11991
11992 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11993
11994         * icall.c: change type_is_subtype_of () signature.
11995
11996 2002-02-21  Mark Crichton  <crichton@gimp.org>
11997
11998         * rand.c, rand.h: Added random number generator for
11999         System.Security.Cryptography classes.
12000
12001         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12002
12003         * icall.c: Added System.Security.Cryptography calls.
12004
12005 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12006
12007         * class.c, icall.c, metadata.c: better support for pointer types.
12008         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12009         * reflection.c: Add support for getting custom attrs for properties
12010         and simplify some code.
12011
12012 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12013
12014         * icall.c: change getToken () and add custom attribute GetBlob()helper
12015         method.
12016         * reflection.h: add custom attrs array to the reflection builder structures.
12017         * reflection.c: encode and emit custom attributes for all the relevant
12018         reflection objects. Cache fieldref and methodref tokens. Change
12019         mono_image_create_token() interface to take a MonoDynamicAssembly.
12020         More complete custom attributes decoder. Load custom attributes for
12021         Assembly, Field, Method and Constructor objects, too. Make the
12022         returned array an Attribute[] one, not object[]. Added
12023         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12024         custom attribute constructor.
12025
12026 2002-02-20  Dick Porter  <dick@ximian.com>
12027
12028         * icall.c:
12029         * rawbuffer.c:
12030         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12031         problem code out for now).
12032
12033 2002-02-19  Radek Doulik  <rodo@ximian.com>
12034
12035         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12036
12037 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12038
12039         * icall.c: register the GetCustomAttributes method.
12040         * object.c, object.h: add mono_string_new_len ().
12041         * reflection.h, reflection.c: added mono_runtime_invoke(),
12042         mono_install_runtime_invoke(). Added
12043         mono_reflection_get_custom_attrs () to load custom attributes and
12044         create the attribute objects.
12045
12046 2002-02-19  Dick Porter  <dick@ximian.com>
12047         * threads-dummy-types.c:
12048         * threads-dummy-types.h:
12049         * threads-dummy.c:
12050         * threads-dummy.h:
12051         * threads-pthread-types.c:
12052         * threads-pthread-types.h:
12053         * threads-pthread.c:
12054         * threads-pthread.h:  Deleted obsolete files
12055
12056 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12057
12058         * class.c (mono_class_vtable): runtime init the class when we
12059         allocate static class data.
12060
12061         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12062
12063         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12064         and String - but we will need generic marshalling support in the
12065         future. 
12066         (mono_init): set the domain name in a ms compatible way
12067
12068         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12069         String[].
12070
12071 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12072
12073         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12074         for sizes
12075
12076         * appdomain.c (mono_domain_unload): impl.
12077
12078 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12079
12080         * appdomain.c, object.c: fix intern pool implementation.
12081         * class.c: fix alignment code.
12082
12083 2002-02-16  Radek Doulik  <rodo@ximian.com>
12084
12085         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12086         and s2 > s1, just copy lower bytes to be compatible with little
12087         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12088         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12089
12090         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12091         force big_endian to be 1 for big endian machines 
12092         (ves_icall_iconv_new_decoder): ditto
12093
12094 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12095
12096         * socket-io.c (convert_sockopt_level_and_name): If the system
12097         doesn't define SOL_IP or SOL_TCP, get them by hand using
12098         getprotobyname() and caching the values (because this could be a
12099         slow operation).
12100         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12101         Use the appropriate struct when the system does support it. Ie,
12102         not all systems have struct ip_mreqn so use struct ip_mreq when
12103         appropriate.
12104
12105 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12106
12107         * reflection.c: handle finally clauses.
12108
12109 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12110
12111         * socket-io.c: use g_snprintf() instead of snprintf.
12112
12113 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12114
12115         * reflection.c (mono_param_get_objects): Cast second argument to
12116         mono_method_get_param_names to a const char** to silence the
12117         compiler warning.
12118
12119         * appdomain.c (mono_domain_assembly_open): Put parens around the
12120         truth statement in the for-loop.
12121
12122         * unicode.c (iconv_convert): Got rid of a compiler warning about
12123         int i being unused when the system has a new iconv.
12124         (iconv_get_length): Same.
12125
12126         * image.c (load_class_names): Cast the second argument to
12127         g_hash_table_insert() to char* to hush compiler warnings about the
12128         arg being a const.
12129         (mono_image_open): Same here.
12130
12131         * socket-io.c: Don't conditionally include sys/filio.h or
12132         sys/sockio.h here anymore since we now get them from
12133         io-layer/io-layer.h
12134         (inet_pton): If the system doesn't support inet_aton, implement
12135         using inet_addr and also #define INADDR_NONE if it isn't defined
12136         by the system.
12137
12138 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12139
12140         * metadata.c, metadata.h: added function to get packing and size info
12141         of a typedef.
12142         * reflection.h, reflection.c: handle field RVA data. Save info about
12143         the table layout if needed. Assign typedef indexes to all the types
12144         before dumping the info about them to avoid forward reference problems.
12145
12146 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12147
12148         * socket-io.c (convert_sockopt_level_and_name): ifdef
12149         SO_ACCEPTCONN because it is not defined on my system (old debian)
12150
12151 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12152
12153         * opcode.c: use stddef.h to get NULL.
12154
12155 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12156
12157         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12158         for FIONBIO, FIONREAD and SIOCATMARK.
12159         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12160         define INADDR_NONE and besides, inet_addr() is deprecated and
12161         should not be used. Use inet_pton() instead - it also has the
12162         added bonus that it can easily handle IPv6 addresses as well.
12163         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12164
12165 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12166
12167         * decimal.c: remove _MSC_VER conditional.
12168
12169 2002-02-13  Dick Porter  <dick@ximian.com>
12170
12171         * socket-io.c: 
12172         * icall.c: Internal calls for Blocking, Select, Shutdown,
12173         GetSocketOption and SetSocketOption
12174
12175 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12176
12177         * assembly.cs: better resolver: use it instead of some kludgy
12178         code.
12179
12180 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12181
12182         * reflection.c: the best way to speed-up the compiler is to avoid
12183         infinite loops.
12184
12185 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12186
12187         * class.c (mono_class_vtable): changed the object layout
12188         (obj->vtable->class). 
12189         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12190
12191 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12192
12193         * assembly.c: look for assemblies in the assembly dir, too.
12194
12195 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12196
12197         * class.c: fix thinko in mono_class_from_type().
12198
12199 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12200
12201         * exception.h, exception.c: added TypeLoadException.
12202         * object.h, object.c: added mono_array_clone ().
12203         * icall.c: handle throwOnError in AssemblyGetType().
12204         Added Array.Clone().
12205         * opcode.h, opcode.c: use a single value for the opcode val.
12206         Compile fix for non-gcc compilers.
12207
12208 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12209
12210         * opcodes.c, opcodes.h: export interesting info about opcodes.
12211
12212 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12213
12214         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12215         icalls. 
12216
12217         * class.c (class_compute_field_layout): set element_class for enums
12218         (mono_class_create_from_typedef): set element_class for normal classes
12219
12220         * icall.c (ves_icall_System_Enum_get_value): impl.
12221
12222         * class.c (mono_class_create_from_typedef): do not set valuetype
12223         flag for System.ValueType and System.Enum
12224
12225 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12226
12227         * unicode.c (iconv_convert): fix big endian problem.
12228
12229 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12230
12231         * class.c: add asserts if we are ever going to scribble over memory.
12232         * socket-io.c: not all systems have AF_IRDA defined.
12233
12234 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12235
12236         * class.c (class_compute_field_layout): do not consider static
12237         fields to compute alignment
12238
12239 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12240
12241         * appdomain.c (mono_appdomain_get): impl.
12242         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12243
12244 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12245
12246         * icall.c: ignore "file://" prefix when loading an assembly.
12247
12248 2002-01-23  Dick Porter  <dick@ximian.com>
12249
12250         * socket-io.c:
12251         * icall.c:
12252         * Makefile.am: Added socket support
12253
12254 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12255
12256         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12257         code back.  This should return the assemblies that are loaded by
12258         the runtime on behalf of an application domain. 
12259
12260         The current implementation is still broken, it just returns every
12261         assembly loaded, but until we get real applications domain this
12262         will do.
12263
12264 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12265
12266         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12267         AppDomain object.
12268
12269 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12270
12271         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12272         the mono_class_from_name lookup.
12273         (ves_icall_get_parameter_info): ditto.
12274         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12275         method.
12276         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12277
12278 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12279
12280         * class.c: load also nested classes on class init.
12281         System.ValueType instance methods gets passed boxed
12282         values, unless methods in derived classed that get a pointer to the
12283         data.
12284         * icall.c: use better name parsing code in GetType().
12285         * image.c, image.h: add mono_image_loaded ().
12286         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12287         * reflection.c, reflection.h: added mono_reflection_parse_type().
12288
12289 2002-01-22  Veronica De Santis <veron78@interfree.it>
12290
12291         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12292         * threads.c : Added the implementation of internal calls for events
12293         * threads.h : Added prototypes of internal calls for events
12294         
12295 2002-01-21  Radek Doulik  <rodo@ximian.com>
12296
12297         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12298
12299 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12300
12301         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12302         (mono_class_value_size): use min_align
12303
12304 2002-01-20  Dick Porter  <dick@ximian.com>
12305
12306         * threads.h:
12307         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12308         so it compiles on w32.
12309
12310 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12311
12312         * metadata.c (mono_type_stack_size): impl.
12313
12314         * class.c (mono_class_get_field): impl. memberref token
12315
12316 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12317
12318         * icall.h : Added the internal calls mapping for CreateMutex_internal
12319                     and ReleaseMutex_internal.
12320         * threads.h : Added the prototype of mutexes internal calls.
12321         * threads.c : Added the implementations of mutexes internal calls.
12322
12323 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12324
12325         * metaparse.h: removed unused file.
12326         * reflection.c, reflection.h: added stream_data_align () function 
12327         to align data in streams and keep stream aligned. Add support for
12328         exception support in method headers.
12329
12330 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12331
12332         * unicode.c: make iconv_convert () return the number of bytess written
12333         in the output buffer.
12334
12335 2002-01-15  Dick Porter  <dick@ximian.com>
12336         * threads.c: Make the runtime's idea of infinite timeouts coincide
12337         with the class library's
12338
12339         Fix a particularly egregious bug in mono_thread_cleanup(). That
12340         code was so utterly bogus it must have been written on a Monday.
12341
12342 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12343
12344         * reflection.h: add subtypes field to TypeBuilder.
12345         * reflection.c: encode constants for literal fields.
12346         Handle subtypes. Fix user string token (and add a zero byte)
12347         at the end.
12348         
12349 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12350
12351         * class.c (mono_class_init): bug fix: assign slot numbers for
12352         abstract methods.
12353
12354 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12355
12356         * reflection.c: don't try to output a code RVA for abstract methods.
12357         Small fixes for method header format. Output parameter info to the
12358         ParamDef table. Save method overriding info to MethodImpl table.
12359         Fix property support. Allow typedef.extends to be a type in the
12360         building assembly.
12361         * verify.c: fix off-by-one error.
12362
12363 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12364
12365         * class.c: fix mono_class_from_mono_type () for szarray types.
12366         Remove unused cache check in mono_class_from_type_spec().
12367         * icall.c: *type_from_name () functions handle simple arrays and byref.
12368         * reflection.c: handle byref and szarray types. Handle methods without
12369         body (gets P/Invoke compilation working). Handle types and fields in
12370         get_token ().
12371         * reflection.h: add rank to MonoTypeInfo.
12372
12373 2002-01-10  Dick Porter  <dick@ximian.com>
12374
12375         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12376         internal calls
12377
12378 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12379
12380         * icall.c: initialize class in type_from_handle ().
12381         Loop also in parent classes for get_method ().
12382         * reflection.c: properly encode class and valuetype types.
12383         Start on encoding TypeBuilder types. Handle fieldrefs.
12384         Use correct length when registering a user string.
12385         Handle ConstructorBuilder and MonoMethod in get_token ().
12386         Make mono_type_get_object () aware of cached types.
12387         * object.c: back out change to mono_string_new ().
12388
12389 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12390         * object.c: mono_string_new should return a NULL when the string 
12391         passed in is NULL -- not try to deference it.
12392         
12393 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12394
12395         * icall.c: hack to make IsSubType work for TypeBuilders.
12396         * reflection.c: emit constructors before methods.
12397         Retrieve param names in mono_param_get_objects().
12398
12399 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12400
12401         * Makefile.am: fix list of headers and sources so automake 1.5
12402         doesn't complain. Removed \# at end of list.
12403
12404 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12405
12406         * reflection.c: get token for a method ref. Set return type of
12407         constructor to void.
12408         * loader.c: debug message.
12409         * class.c: typo fix.
12410
12411 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12412
12413         * icall.c: fix array init with rank > 1. FindMembers
12414         loops in parent class as well.
12415         * image.c: do not insert nested types in name cache.
12416         * reflection.c: warning fix.
12417         * reflection.h: add override method (for interface impl).
12418
12419 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12420
12421         * metadata.c: fix customattr decoding.
12422
12423 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12424
12425         * rawbuffer.cs: Added native Win32 implementation, avoids using
12426         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12427
12428 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12429
12430         * class.c: make the low-level routines handle the cache.
12431
12432 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12433
12434         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12435
12436 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12437
12438         * class.c: fix mono_array_element_size() for objects.
12439         * class.h, class.c: add properties to MonoClass and load them
12440         at init time.
12441         * icall.c: check with isinst() when assigning a value to an array
12442         instead of requiring the classes to match exactly.
12443         Implemented icall for System.Type::GetType().
12444         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12445         enums. Handle bindingflags when looking for methods and fields.
12446         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12447         and mono_metadata_methods_from_property().
12448         * reflection.h, reflection.c: added structures for propreties,
12449         parameters and enums. Implemented mono_property_get_object() and
12450         mono_param_get_objects().
12451
12452 2001-12-18  Dick Porter  <dick@ximian.com>
12453
12454         * file-io.c: Use mono_string_to_utf16() instead of
12455         mono_string_chars()
12456
12457         * object.c: Added mono_string_to_utf16(), which copies the non
12458         NULL-terminated MonoString into a new double-null-terminated
12459         buffer.
12460
12461 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12462
12463         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12464
12465 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12466
12467         * file-io.c: raise exceptions if handle is invalid.
12468
12469 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12470
12471         * assembly.c: yet another check for mscorlib.
12472         * class.c, class.h: load nesting info for classes.
12473         * icall.c: many new functions to support the Reflection classes.
12474         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12475         * reflection.h, reflection.c: mono_image_create_token(),
12476         mono_assembly_get_object(), mono_type_get_object(),
12477         mono_method_get_object(), mono_field_get_object(): methods to return
12478         objects that parallel the C representation of assemblies, types,
12479         methods, fields.
12480
12481 2001-12-11  Dick Porter  <dick@ximian.com>
12482
12483         * icall.c:
12484         * file-io.c: Internal calls for file IO.
12485
12486 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12487
12488         * tabledefs.h: missing FileAttributes.
12489         * verify.h, verify.c: use is_valid_string () to simplify and check for
12490         valid strings more correctly. Fix warnings and speeling.
12491         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12492         Check code: branches, maxstack, method calls.
12493
12494 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12495
12496         * object.c (mono_object_allocate): removed static, so that the jit
12497         can allocate value types.
12498
12499         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12500
12501 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12502
12503         * class.c: init enum types right away and register the
12504         token->MonoClass map in mono_class_create_from_typedef ().
12505         * verify.h, verify.c: first cut of the verifier.
12506         * pedump.c: add --verify switch to verify metadata tables.
12507         * tabledefs.h: add some missing enums.
12508
12509 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12510
12511         * class.c (mono_install_runtime_class_init): impl.
12512         (mono_class_init): renamed mono_class_metadata_init to
12513         mono_class_init, also removed the metadata_inited flag
12514
12515         * object.c (mono_object_isinst): use faster algorithm
12516
12517 2001-11-30  Radek Doulik  <rodo@ximian.com>
12518
12519         * mono-endian.h: reverted last change
12520         added function prototypes
12521
12522         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12523         add mono-endian.c back
12524
12525         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12526         for unaligned access, I've mistaked it with endianess. I am
12527         sorry.
12528         (mono_read16): fix reverted endianess
12529         (mono_read64): ditto
12530         (mono_read32): ditto
12531
12532 2001-11-30  Dick Porter  <dick@ximian.com>
12533
12534         * exception.c: Implement mono_exception_from_name()
12535
12536 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12537
12538         * metadata.h, metadata.c: remove params_size and locals_size and their
12539         calculation from the metadata code: they are only usefult to the
12540         interp.
12541
12542 2001-11-29  Radek Doulik  <rodo@ximian.com>
12543
12544         * object.c (mono_ldstr): swap bytes here, it's probably not the
12545         best place, but works for me now, I'll redo it once I know mono
12546         better, also note that I add PROT_WRITE and don't reset back, also
12547         note that it's only affects big endians, so x86 should be OK
12548
12549         * mono-endian.h (read16): use just glib macros for both endians
12550
12551         * mono-endian.c: removed as glib macros are used in in
12552         mono-endian.h so we don't need to care about endianess for read
12553         macros as glib does that for us already
12554
12555 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12556
12557         * class.h, class.h: take minimum alignment into consideration so
12558         that the fields of a class remain aligned also when in an array.
12559
12560 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12561
12562         * loader.h, loader.c: add mono_method_get_param_names().
12563         * class.c: 0-init class fields.
12564
12565 2001-11-26  Dick Porter  <dick@ximian.com>
12566
12567         * icall.c:
12568         * threads-types.h:
12569         * threads.c: New file that handles System.Threading on all platforms
12570
12571         * object.c: 
12572         * object.h: Remove the synchronisation struct from MonoObject,
12573         replace it with a pointer that gets initialised on demand
12574
12575         * Makefile.am: Replace all the system-specific threading code with
12576         a single file that uses the new wrapper library
12577
12578 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12579
12580         * class.c, class.h: add mono_install_trampoline() so that the runtime
12581         can register a function to create a trampoline: removes the ugly
12582         requirement that a runtime needed to export arch_create_jit_trampoline.
12583         * object.h, object.c: added mono_install_handler() so that the runtime
12584         can install an handler for exceptions generated in C code (with
12585         mono_raise_exception()). Added C struct for System.Delegate.
12586         * pedump.c: removed arch_create_jit_trampoline.
12587         * reflection.c: some cleanups to allow registering user strings and
12588         later getting a token for methodrefs and fieldrefs before the assembly
12589         is built.
12590         * row-indexes.h: updates and fixes from the new ECMA specs.
12591
12592 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12593
12594         * class.h, class.c: add enum_basetype field to MonoClass.
12595         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12596         to get index in the constant table reated to a field, param or
12597         property.
12598         * reflection.h, reflection.c: handle constructors. Set public-key and
12599         version number of the built assembly to 0.
12600         * row-indexes.h: update from new ECMA spec.
12601
12602 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12603
12604         * class.h, class.c: add a max_interface_id to MonoClass.
12605         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12606         since it's used to do that. Added mono_type_type_from_obj().
12607         Make GetType() return NULL instead of segfaulting if the type was not
12608         found. Handle simple arrays in assQualifiedName.
12609         * object.h: add a struct to represent an Exception.
12610         * reflection.c: output call convention in method signature.
12611         Add code to support P/Invoke methods and fixed offsets for fields.
12612
12613 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12614
12615         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12616         the value.
12617         * icall.c: use mono_array_addr instead of array->vector: fixes the
12618         reflection image writing.
12619         * reflection.c: init call convention byte to 0 in method signature.
12620         Encode the property signature. Don't output property-related methods
12621         twice. Really process the properties for a type (don't cast a field to
12622         a property, my mom always told me that).
12623         Fix 64 bit issues in pointer alignment in a different and more
12624         readable way.
12625
12626 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12627
12628         * loader.h: Removed type class from MonoDefaults, added monotype
12629
12630         * loader.c: Loaded MonoType, removed loading of Type
12631
12632         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12633         and fills in System.Type._impl with a RuntimeTypeHandle rather
12634         than the actual MonoClass *
12635
12636         (ves_icall_type_from_handle): change from type_class to
12637         monotype_class
12638
12639         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12640         implemented
12641
12642         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12643         implemented
12644
12645         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12646
12647         (ves_icall_System_Reflection_Assembly_GetType): implemented
12648
12649         (ves_icall_System_MonoType_assQualifiedName): implemented
12650
12651         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12652
12653 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12654
12655         * assembly.c (mono_assembly_open): Implement a cache for the
12656         assemblies. 
12657
12658         (mono_assembly_close): only destroy the assembly when the last
12659         reference is gone.
12660         
12661 2001-11-09  Dick Porter  <dick@ximian.com>
12662
12663         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12664
12665 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12666
12667         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12668
12669 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12670
12671         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12672         from Martin Weindel.
12673         * object.h: add mono_string_chars ().
12674
12675 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12676
12677         * reflection.c (build_compressed_metadata): Eliminates warnings
12678         and uses 64-bit clean code.
12679
12680         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12681         (mono_type_equal): Change signature to eliminate warnings.
12682
12683 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12684
12685         * icall.c, loader.c: remove the internalcall array constructors.
12686         Changes to match the new MonoArray structure.
12687         * object.h, object.c: an array object doesn't allocate an extra
12688         vector. Add mono_array_new_full () to create jagged arrays easily.
12689
12690 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12691
12692         * metadata.h, metadata.c: add mono_metadata_field_info () to
12693         retreive all the info about a field from vairous tables.
12694         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12695         * class.h, class.c: augment MonoClassField with more info.
12696         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12697         policy and load a field's RVA if needed.
12698
12699 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12700
12701         * class.c (mono_class_metadata_init): create a trampoline for all
12702         virtual functions instead of actually compiling them.
12703
12704 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12705
12706         * class.h, class.c: include name in MonoClassField.
12707         * class.c: fix fundamental type of System.Object and System.String.
12708         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12709         tokens in ldtoken.
12710         * icall.c: remove internalcalls for the Reflection stuff that is now
12711         done in C# code.
12712         * loader.c: mono_field_from_memberref () implementation.
12713         * mono-endian.c: thinko (s/struct/union/g).
12714         * object.c, object.h: make the mono_string_* prototypes actually use
12715         MonoString instead of MonoObject.
12716         * reflection.c, reflection.h: updates for changes in the reflection
12717         code in corlib: we use C structures that map to the actual C# classes.
12718         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12719         fat method header if needed and use the info from the ILGenerator for
12720         methods. Handle fields in types. Misc fixes.
12721
12722 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12723
12724         * class.c (mono_class_metadata_init): bug fix: always allocate
12725         space for static class data
12726
12727 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12728
12729         * class.c (mono_compute_relative_numbering): use relative
12730         numbering to support fast runtime type checks.
12731
12732 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12733
12734         * class.c (mono_class_create_from_typeref): added debugging output
12735         to print class name when MonoDummy is returned instead of real class
12736
12737 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12738
12739         * class.c (mono_class_metadata_init): interface offset table now
12740         contains pointers into the vtable - this is more efficient for the jit
12741
12742 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12743
12744         * class.c (mono_class_metadata_init): use a temporary vtable (the
12745         old algorithm only worked for the interpreter, but not for the jit)
12746
12747 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12748
12749         * loader.c (method_from_memberref): use mono_class_get to get the
12750         class of an array instead of using System.Array directly.
12751         (mono_get_method): also add MEMBERREF methods to the method cache
12752         which usefull for arrays.
12753
12754 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12755
12756         * pedump.c (arch_compile_method): added to compute vtable entry
12757
12758         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12759         number of interfaces.
12760         
12761         * class.h: merged MonoArrayClass into MonoClass
12762
12763         * class.c (mono_class_create_from_typedef): compute the vtable size and
12764         allocate space to include the vtable inside MonoClass
12765         (mono_class_metadata_init): initialize the vtable
12766
12767 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12768
12769         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12770         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12771         * image.c: endian fixes by Laurent Rioux.
12772         * object.h, object.c: rename MonoStringObject to MonoString and
12773         MonoArrayObject to MonoArray. Change some function names to conform to
12774         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12775         guint16* as first argument, so don't use char*.
12776         Provide macros to do the interesting things on arrays in a portable way.
12777         * threads-pthread.c: updates for the API changes and #include <sched.h>
12778         (required for sched_yield()).
12779         * icall.c: updates for the API changes above.
12780         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12781         platforms that need them.
12782
12783 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12784
12785         * class.c: set the correct type for all the fundamental
12786         type when loading the class.
12787
12788 2001-10-05  Dick Porter  <dick@ximian.com>
12789
12790         * threads-pthread.c (pthread_mutex_timedlock): Simple
12791         compatibility version for C libraries that lack this call.
12792
12793 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12794
12795         * class.c: MonoTypes stored in MonoClass are stored as
12796         fundamental MonoTypes when the class represents a
12797         fundamental type (System.Int32, ...).
12798         The TypeHandle return by ldtoken is a MonoType*.
12799         * icall.c: ves_icall_get_data_chunk () write out all the
12800         PE/COFF stuff. Implement ves_icall_define_method (),
12801         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12802         * image.c: properly skip unknown streams.
12803         * loader.h, loader.c: add type_class to mono_defaults.
12804         * metadata.c, metadata.h: export compute_size () as
12805         mono_metadata_compute_size () with a better interface.
12806         Typo and C&P fixes.
12807         * pedump.c: don't try to print the entry point RVA if there is no entry point.
12808         * reflection.c, reflection.h: many cleanups, fixes, output method
12809         signatures and headers, typedef and typeref info, compress the metadata
12810         tables, output all the heap streams, cli header etc.
12811         * row-indexes.h: typo fixes.
12812
12813 2001-10-04  Dick Porter  <dick@ximian.com>
12814
12815         * object.h: Add a synchronisation mutex struct to MonoObject
12816
12817         * object.c (mono_new_object): Initialise the object
12818         synchronisation mutexes
12819
12820         * icall.c: System.Threading.Monitor internal calls
12821         
12822         * threads-pthread.h:
12823         * threads-pthread.c: System.Threading.Monitor internal calls
12824
12825         * threads-types.h: New file, includes the system-specific thread
12826         structures
12827         
12828         * threads-pthread-types.h:
12829         * threads-pthread-types.c: New files, handle pthread-specific
12830         synchronisation types
12831
12832         * threads-dummy-types.h: 
12833         * threads-dummy-types.c: New files of dummy support for
12834         thread-specific types
12835
12836         * metadata.c:
12837         * image.c:
12838         * pedump.c: include mono-endian.h not endian.h
12839         
12840         * Makefile.am: More threads files.
12841         Name mono-endian.h not endian.h
12842
12843 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
12844
12845         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
12846         stuff and implement a few more bits.
12847         * icall.c: a field needs to be dereferenced twice. Do not use the same
12848         name for two variables in the same scope.
12849         * image.c, image.h: cleanups.
12850
12851 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
12852
12853         * class.c (mono_class_metadata_init): bug fix: compute the right size
12854
12855 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
12856
12857         * icall.c: implemented some of the Reflection internalcalls.
12858         * image.c, image.h: start writing out the PE/COFF image.
12859         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
12860         that does the reverse than decode_blob_size ().
12861         * object.c: use mono_metadata_encode_value (). Move here
12862         temporary implementation of mono_string_to_utf8 ().
12863         * rawbuffer.c: make malloc_map static.
12864
12865 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12866
12867         * metadata.c: fix type comparison for arrays.
12868         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
12869         Added a couple of new classes to monodefaults.
12870         * icall.c: added a couple of Reflection-related internalcalls.
12871         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
12872         Added a byval_arg MonoType to MonoClass.
12873
12874 2001-09-28  Dick Porter  <dick@ximian.com>
12875
12876         * icall.c:
12877         * threads-pthread.h: 
12878         * threads-pthread.c: Implemented internal calls for
12879         LocalDataStoreSlot operations.  Applied mutexes around all shared
12880         data.  Reworked the thread creation and Start() operations to
12881         avoid a race condition.
12882         
12883         * threads-dummy.h:
12884         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
12885
12886 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
12887
12888         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
12889
12890 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
12891
12892         * class.c, loader.c: warn and return NULL instead of erroring out.
12893         * icall.c: added System.AppDomain::getCurDomain().
12894         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
12895
12896 2001-09-25  Dick Porter  <dick@ximian.com>
12897
12898         * threads-pthread.h:
12899         * threads-pthread.c: Implemented timed thread joining and added
12900         System.Threading.Thread::Join_internal internal call
12901
12902         * icall.c: Added System.Threading.Thread::Join_internal internal call
12903
12904         * threads-dummy.h:
12905         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
12906
12907 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
12908
12909         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
12910         mono_string_intern () to implement the semantics of the ldstr opcode
12911         and the interning of System.Strings.
12912         * icall.c: provide hooks to make String::IsIntern and String::Intern
12913         internalcalls.
12914
12915 2001-09-23  Dick Porter  <dick@ximian.com>
12916
12917         * threads-dummy.c: 
12918         * threads-dummy.h: New files of dummy threading routines
12919
12920         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
12921         support code based on system specifics
12922
12923         Rename PTHREAD_LIBS to THREAD_LIBS
12924         
12925 2001-09-23  Dick Porter  <dick@ximian.com>
12926
12927         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
12928         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
12929         internal calls.
12930         (mono_thread_init): Set up a Thread object instance to return when
12931         the main thread calls Thread.CurrentThread
12932         (mono_thread_cleanup): Wait for all subthreads to exit
12933
12934         * icall.c: New internal calls for System.Threading.Thread::Sleep
12935         (including Schedule) and CurrentThread
12936
12937         * threads.h: New file, to insulate thread-specific stuff from the
12938         rest of the code
12939
12940 2001-09-21  Dick Porter  <dick@ximian.com>
12941
12942         * threads-pthread.h: 
12943         * threads-pthread.c: New file, for handling pthreads-style
12944         threading support.  Start() now starts a new thread and executes
12945         the ThreadStart delegate instance.
12946
12947         * icall.c: Added the internalcall for
12948         System.Threading.Thread::Start_internal
12949
12950         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
12951
12952 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
12953
12954         * loader.c: work around the different signatures for delegates
12955         constructors csc generates in compiled code vs the ones compiled in mscorlib.
12956
12957 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
12958
12959         * class.h, class.c: add mono_class_get_field_from_name ().
12960         * *: Fix C comments and other ANSI C issues.
12961
12962 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
12963
12964         * endian.h, assembly.c: fix some endianness issues.
12965
12966 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
12967
12968         * loader.h, load.c: add delegate_class to mono_defaults.
12969         Handle runtime provided methods in mono_get_method ().
12970
12971 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
12972
12973         * loader.c (mono_get_method): use pinvoke for internal call
12974
12975         * icall.c: use pinvoke for internal call
12976
12977         * loader.c (method_from_memberref): set the method name
12978
12979 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
12980
12981         * metadata.c: help the compiler generate better code for
12982         mono_class_from_mono_type ().
12983
12984 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
12985
12986         * class.c (mono_class_metadata_init): delayed computing of the
12987         class size to mono_class_metadata_init ()
12988
12989 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
12990
12991         * class.c, class.h: add an interfaces member to MonoClass.
12992         * image.c, image.h: add assembly_name field to MonoImage
12993         from the assembly table.
12994         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
12995
12996 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
12997
12998         * class.c: Handle Array in mono_class_from_mono_type ().
12999         * metadata.c, pedump.c: some endian fixes.
13000
13001 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13002
13003         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13004         * metadata.c: fix small problem introduced with the latest commit.
13005
13006 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13007
13008         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13009         We don't need a MonoMetadata pointer anymore to compare signatures in
13010         mono_metadata_signature_equal (), update callers.
13011         Reduced memory usage an number of allocations for MonoMethodHeader and
13012         MonoMethodSignature.
13013
13014 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13015
13016         * metadata.c: added compare for szarray.
13017
13018 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13019
13020         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13021         and add a couple more types to it and mono_defaults. Give an hint on
13022         classes that need implementing in our corlib and are referenced
13023         in mscorlib.
13024
13025 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13026
13027         * class.h, class.c: keep track if a class is also an Enum.
13028         * loader.c: Implement a couple more types for use in libffi
13029         marshalling. Gives better diagnostics when failing to dlopen
13030         a library. Set method->klass for P/Invoke methods, too.
13031
13032 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13033
13034         * class.c, class.h: add a MonoType this_arg to MonoClass that
13035         represents a pointer to an object of the class' type that
13036         can be used by the interpreter and later the type cache.
13037         Add best guess alignment info for valuetype objects.
13038
13039 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13040
13041         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13042         into MonoType: one less level of indirection and allocation and
13043         simplifies quite a bit of code. Added cache for MonoTypes that are
13044         used frequently, so that we don't need to allocate them all the time.
13045
13046 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13047
13048         * class.c (mono_class_create_from_typedef): System.Enum is also a
13049         value type, although it does not derive from System.ValueType
13050         (maybe a bug in the ms compiler?)
13051
13052         * metadata.c (mono_type_size): return the right size for value types
13053
13054         * loader.c (mono_get_method): only initialize method header if not abstract
13055
13056         * class.c (mono_class_from_mono_type): use mono_default values. 
13057
13058 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13059
13060         * *: use MonoClass pointers instead of <type_tokens>
13061         
13062         * class.h: new flag: metadata_inited.
13063
13064         * class.c (mono_class_metadata_init): impl.
13065         (mono_class_instance_size): impl.
13066         (mono_class_data_size): impl.
13067
13068 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13069
13070         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13071         MonoClass now has the name and name_space fields. 
13072         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13073         mono_get_method () takes and optional MonoClass as argument.
13074         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13075         instead that takes advantage of a map from class names to typedef
13076         tokens in MonoImage.
13077
13078 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13079
13080         * metadata.c: zero is not a valid alignment boundary.
13081         Merge MONO_TYPE_VOID in default decoding code.
13082
13083 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13084
13085         * image.h: merged MonoMetadata into MonoImage
13086
13087         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13088         identify the type of elements.
13089
13090 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13091
13092         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13093         * cil-coff.h: split MonoMSDOSHeader and add size info.
13094         * image.c: add some consistency checks.
13095         * metadata.c: fix row size computation: one programmer
13096         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13097         add explanation for the locator routine.
13098         Fix decoding of size in method header.
13099         
13100 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13101
13102         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13103         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13104         function from gnome-libs.  This uses the right path separator
13105         based on the OS, and also works around a bug in some systems where
13106         a double slash is not allowed. 
13107         (default_assembly_name_resolver): Use g_concat_dir_and_file
13108         (mono_assembly_open): ditto.
13109
13110 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13111
13112         * metadata.c (mono_metadata_signature_equal): impl.
13113
13114         * *: void is now a realy MonoType (instead of using NULL)
13115         
13116         * metadata.c (do_mono_metadata_parse_type): use
13117         mono_metadata_parse_type to parse void value.
13118
13119 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13120
13121         * metadata.c, metadata.h: in the signature and method header store
13122         only the space required for holding the loca vars and incoming arguments.
13123
13124 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13125
13126         * metadata.c (do_mono_metadata_parse_type): treat void like any
13127         other type (instead of assigning NULL);
13128
13129 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13130
13131         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13132
13133 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13134
13135         * image.c (do_mono_image_open): added a cache for arrays.
13136
13137 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13138
13139         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13140         decode a single column from a row in a metadata table and changes
13141         to take advantage of it in the typedef locator (gives a nice speed up).
13142         Store offset info for function params.
13143
13144 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13145
13146         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13147
13148 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13149
13150         * assembly.c: how could mono_assembly_close () had ever worked?
13151         * metadata.c, metadata.h: provide offset info for local vars.
13152         Implement mono_type_size () to take care of alignment as well
13153         as size (it was mono_field_type_size in cli/class.c before).
13154
13155 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13156
13157         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13158
13159         * assembly.h (CORLIB_NAME): set to corlib.dll
13160
13161         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13162
13163 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13164
13165         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13166         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13167         tokentype.h: massive namespace cleanup.
13168
13169 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13170
13171         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13172
13173 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13174
13175         * metadata.c (mono_metadata_free_type): added check for type !=
13176         NULL (void) before calling mono_metadata_free_type()
13177
13178 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13179
13180         * metadata.h, row_indexes.h: added header with enumerations to use
13181         to index in the columns from tables in metadata and to decode coded
13182         tokens: we should start using this instead of embedding magic numbers
13183         all over the code.
13184
13185 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13186
13187         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13188         Move metadata_t info from cli_image_info_t to MonoImage, where
13189         it's easily accessible. Changed all the uses accordingly.
13190         Added the method and class caches to MonoImage.
13191         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13192         and mono_metadata_decode_value () signature to be more consistent
13193         with the other parse functions (and simplify code). Taken advantage
13194         of zero-length array allocation with GCC. Removed reduntant (and
13195         wrong) MonoFieldType struct and use MonoParam instead. Changed
13196         mono_metadata_parse_field_type () to use common code for parsing.
13197         Added mono_metadata_typedef_from_field () and
13198         mono_metadata_typedef_from_method () to lookup a typedef index from a
13199         field or method token.
13200         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13201
13202 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13203
13204         * metadata.c (mono_metadata_parse_field_type): Implement. 
13205         (do_mono_metadata_parse_type): Split engine from
13206         mono_metadata_parse_type, so that we can create smaller structures
13207         for things that just have one pointer to the MonoType (look at
13208         the MonoFieldType)
13209
13210 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13211
13212         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13213         as Jan Gray found out, it is incorrect. 
13214
13215 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13216
13217         * assembly.c: Implement asssembly loading.  This loads an image
13218         and loads all the referenced assemblies.  Come to think of it, we
13219         could always do lazy loading of the assemblies. 
13220
13221         * image.c (mono_image_open): Keep loaded images in a hashtable.
13222
13223         * image.h (MonoImage): Add reference count.
13224
13225 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13226
13227         * assembly.c (mono_assembly_open): Keep track of the file name in
13228         case the assembly has no ASSEMBLY table.
13229
13230         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13231         from get.c here.
13232
13233 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13234
13235         * metadata.c, metadata.h: decode local vars in method header
13236         parse function. Change callers accordingly.
13237
13238 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13239
13240         * metadata.h, cil-coff.h: protect against multiple inclusion.
13241         Added some new structures to hold information decoded from metadata:
13242         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13243         and relevant decoding/free functions.
13244         * metadata.c: implement decoding functions. Add warning for out of bounds
13245         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13246         all the info about a method signature and invocation. Remove check on
13247         uninitialized local var in parse_mh() and fix memory leak.
13248
13249 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13250
13251         * metadata.h: More macros.
13252
13253         * tokentype.h: New file.
13254
13255 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13256
13257         * assembly.c: added a consistency check and initialize
13258         some structures with g_new0().
13259         * metadata.c: fixed a couple more bugs in table size computation
13260         and add other checks for out-of bound access to metadata.
13261
13262 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13263
13264         * metatada.c: fix bugs computing table sizes. Spew a
13265         warning when index in string heap is out of bounds.
13266
13267 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13268
13269         * metadata.h: Add a couple of macros to manipulate tokens. 
13270
13271 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13272
13273         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13274         cli_section_tables).
13275
13276 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13277
13278         * metadata.c (mono_metadata_user_string): New function, provides
13279         access to the UserString heap. 
13280
13281 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13282
13283         * metadata.c: Add inline documentation.
13284
13285 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13286
13287         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13288         files. 
13289
13290 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13291
13292         * typeattr.h: New file, TypeAttribute flags. 
13293
13294 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13295
13296         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13297         mono_assembly_ensure_section): Section loading code.
13298         (load_section_tables): Load the sections.
13299
13300         * mono/metadata/metadata.c (mono_metadata_locate_token,
13301         mono_metadata_locate): Functions to locate the information
13302         definition given a token or a table and an index.
13303         (mono_metadata_compute_table_bases): New.
13304         (compute_size): New function to compute the sizes of the various
13305         tables.
13306
13307         * mono/metadata/metadata.h: Finish listing the different index
13308         types. 
13309
13310         * mono/metadata/pedump.c: Improve to dump new information.
13311
13312 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13313
13314         * mono/metadata/metadata.c: Entered all the tables matching
13315         Beta2. 
13316
13317         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13318