2005-01-05 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
3
4         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
5         profiler support.
6
7 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8
9         * domain.c object.c domain-internals.h: Revert part of r38077 since the
10         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
11         tests.
12
13 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
14
15         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
16         so methods containing these can be AOTed.
17
18 2005-01-03  Martin Baulig  <martin@ximian.com>
19
20         * loader.c (find_method): Removed the hack for generic instances.
21         (method_from_memberref): If our parent is a generic instance, pass
22         its generic type definition to find_method() and then inflate the
23         method.
24         (mono_get_method_constrained): Pass the generic type definition to
25         find_method() and inflate the method later.
26
27         * class-internals.h (MonoStats): Added `generic_class_count'.
28
29         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
30         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
31
32         * reflection.c (mono_custom_attrs_from_params): Don't ignore
33         generic type definitions.
34
35 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
36
37         * loader.c icall.c: Fix warnings.
38
39 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
40
41         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
42         blittable types. Fixes #70864.
43
44 2004-12-29  Martin Baulig  <martin@ximian.com>
45
46         * icall.c
47         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
48
49         * reflection.c (mono_method_get_object): Create a
50         "System.Reflection.MonoGenericMethod" for inflated methods; don't
51         call mono_get_inflated_method().
52
53         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
54
55 2004-12-27  Martin Baulig  <martin@ximian.com>
56
57         * class-internals.h (MonoMethod): Added `is_inflated' flag.
58         (MonoMethodInflated): Added `inflated' field.
59
60         * class.c (mono_class_inflate_generic_method): Don't really
61         inflate the method here; just set the `is_inflated' flag in the
62         MonoMethod.
63         (mono_class_get_inflated_method): Actually inflate the method here
64         if it's not already inflated; we use the MonoMethodInflated's new
65         `inflated' field as a cache.
66
67 2004-12-26  Martin Baulig  <martin@ximian.com>
68
69         * class.c
70         (inflate_generic_class): Moved some code out of inflate_generic_type().
71         (mono_class_inflate_generic_method): If we're already inflated,
72         inflate the context and use the declaring method; ie. make sure
73         the declaring method of an inflated method is always the generic
74         method definition.
75         (mono_class_create_from_typedef): Create
76         `class->generic_container->context->gclass'.
77
78 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
79
80         * metadata-internals.h, marshal.c, reflection.c: More
81         MonoGHashTable->GHashTable.
82
83         * domain-internals.h, class.c: Change MonoGHashTable's into
84         GHashTables for some cases where no gc stuff is used
85
86         All users: update apis
87
88 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
89
90         * metadata.c (builtin_types): Make this `const'. Makes this get
91         put into the shareable section.
92         (mono_metadata_init): Casts to make gcc happy.
93
94 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
95
96         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
97
98 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
99
100         * icall.c: Added an internal call to retrieve the position and length
101         of assembly-level declarative security attributes (RequestMinimum, 
102         RequestOptional and RequestRefuse). This is used by the Assembly class
103         to re-create the corresponding permission sets.
104
105 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
106
107         * marshal.c: fix the stelemref wrapper to be type correct
108         (and faster).
109
110 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
111
112         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
113         to do key & 0x7fffffff. Hashtable already does this. It just
114         results in longer code.
115
116 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
117
118         * appdomain.c: Bump corlib version.
119         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
120         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
121         * reflection.c|h: Add functions to get declarative security infos
122         (blob position and length) for assemblies, classes and methods.
123
124 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
125
126         * reflection.c: sort the constant table (bug #70693).
127
128 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
129
130         * object-internals.h, threads.c, domain.c: add accessors for
131         the MonoThread and MonoDomain tls keys.
132
133 2004-12-18  Martin Baulig  <martin@ximian.com>
134
135         * class.c (inflate_generic_type): If we're inflating a generic
136         instance, set `ngclass->context->container = context->container';
137         ie. the container we inflated into.
138
139         * metadata.c (mono_metadata_parse_generic_param): Reflect above
140         inflate_generic_type() changes.
141
142 2004-12-17  Martin Baulig  <martin@ximian.com>
143
144         * class-internals.h
145         (MonoGenericClass): Replaced `MonoType *generic_type' with
146         `MonoClass *generic_class'.  Removed `dynamic_info'; if
147         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
148         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
149
150 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
151
152         * exception.c (mono_exception_from_token): New helper function.
153
154 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
155
156         * assembly.c (mono_assembly_load_with_partial_name): Call 
157         mono_assembly_loaded before invoking the preload hooks. Fixes
158         #70564.
159
160         * object-internals.h (MonoThread): Change culture_info and 
161         ui_culture_info into an array.
162
163         * threads.c: Cache culture info objects from more than one appdomain.
164
165         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
166         current UI culture.
167
168 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
169
170         * threads.h threads.c appdomain.c: Clear the culture_info field of
171         all threads during unloading if they point to an object in the dying
172         appdomain.
173
174 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
175
176         * culture-info.h (TextInfoEntry): New struct
177         * object-internals.h: sync with managed
178         * locales.c: fill the `text_info_data' field
179         * culture-info-tables.h: update
180
181 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
182
183         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
184         collector.
185
186 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
187
188         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
189         (ves_icall_ModuleBuilder_getMethodToken): Ditto
190
191 2004-12-12  Martin Baulig  <martin@ximian.com>
192
193         * mono-debug-debugger.c (write_type): If we're an enum and the
194         builtin types have already been initialized, call mono_class_init().
195
196 2004-12-11  Martin Baulig  <martin@ximian.com>
197
198         * metadata.c (mono_metadata_load_generic_params): Added
199         `MonoGenericContainer *parent_container' argument; automatically
200         compute `container->is_method'; pass the correct owner to
201         get_constraints().      
202
203         * reflection.c (compare_genericparam): Sort the GenericParam table
204         according to increasing owners. 
205
206 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
207
208         * profiler.c: allow disabling the default profiler.
209
210 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
211
212         * decimal.c, icall.c: allow disabling System.Decimal support.
213
214 2004-12-09  Marek Safar <marek.safar@seznam.cz>
215
216         * reflection.c: Add support for null attribute arguments.
217
218 2004-12-09  Martin Baulig  <martin@ximian.com>
219
220         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
221         names to get rid of compiler warnings.
222
223 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
224
225         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
226         mono_marshal_load_type_info (). Fixes #69625.
227         (mono_marshal_get_ptr_to_struct): Likewise.
228
229 2004-12-08  Martin Baulig  <martin@ximian.com>
230
231         * mono-debug.h: Bumped version number to 47.
232
233         * mono-debug-debugger.c
234         (mono_debugger_event_handler, mono_debugger_event): Take two
235         guint64 arguments insteed of a gpointer and a guint32.  
236
237 2004-12-08  Martin Baulig  <martin@ximian.com>
238
239         * debug-mono-symfile.h
240         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
241         `address' to `native_offset'.
242
243 2004-12-08  Martin Baulig  <martin@ximian.com>
244
245         * class.c (mono_class_create_from_typespec): Only inflate if we
246         either have `context->gclass' or `context->gmethod'.
247
248 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
249
250         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
251
252         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
253
254         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
255
256         * reflection.c (mono_assembly_get_object): Remove the workaround put
257         in for the release.
258         
259         * appdomain.c: Use the corlib_internal field from MonoAssembly.
260
261         * appdomain.c: Bump corlib version.
262
263         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
264         be visible in other appdomains.
265
266 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
267
268         * threads.c: Interlocked inc and dec for longs were messed up,
269         use a KISS based impl for this. Fixes 70234
270
271 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
272
273         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
274
275 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
276
277         * icall.c: fix to follow policy not to allow struct
278         arguments in icalls.
279
280 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
281
282         * process.c: make the patch that handles spaces in file paths work
283         on mono/windows too.
284
285 2004-12-06  Martin Baulig  <martin@ximian.com>
286
287         * class.c (mono_class_create_generic): Call
288         mono_class_setup_supertypes() if we're dynamic.
289         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
290
291 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
292
293         * object-internals.h: Add new fields to MonoThread.
294
295         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
296
297         * icall.c threads-types.h threads.c: Add new icalls.
298
299         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
300
301         * object-internals.h (MonoReflectionAssembly): Sync object layout with
302         managed side.
303
304         * appdomain.c: Bump corlib version.
305
306         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
307         internal assemblies. Fixes #69181.
308
309 2004-12-05  Martin Baulig  <martin@ximian.com>
310
311         * class.c (mono_class_inflate_generic_signature): Make this a
312         no-op if `context' is NULL or we don't have any type parameters;
313         also copy `sentinelpos'.        
314
315 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
316
317         * image.c: Add unbox_wrapper_cache.
318
319         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
320
321         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
322         function generator.
323         
324         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
325         Fixes #70173.
326
327         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
328         
329 2004-12-04  Martin Baulig  <martin@ximian.com>
330
331         * loader.c (mono_method_get_signature_full): New public function;
332         like mono_method_get_signature(), but with an additional
333         `MonoGenericContext *' argument.
334
335         * class.c (mono_class_inflate_generic_signature): Formerly known
336         as inflate_generic_signature(); make this public.
337
338 2004-12-04  Martin Baulig  <martin@ximian.com>
339
340         * metadata.c
341         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
342         instead of a `MonoGenericContainer *'.  
343         (mono_metadata_parse_array_full): Likewise.
344         (mono_metadata_parse_signature_full): Likewise.
345         (mono_metadata_parse_method_signature_full): Likewise.
346         (mono_metadata_parse_generic_inst): Likewise.
347         (mono_metadata_parse_generic_param): Likewise.
348         (mono_metadata_parse_mh_full): Likewise.
349         (mono_type_create_from_typespec_full): Likewise.
350
351 2004-12-03  Martin Baulig  <martin@ximian.com>
352
353         * class-internals.h (MonoGenericContainer): Replaced the
354         `MonoGenericContext * pointer with a `MonoGenericContext'
355         structure and made it the first element.
356
357 2004-12-03  Martin Baulig  <martin@ximian.com>
358
359         * class.c
360         (inflate_generic_type): Set the `context->container' when creating
361         a new MonoGenericContext.
362         (mono_class_inflate_generic_method): Likewise.
363         (mono_class_create_from_typespec): Just use `context->container'
364         to get the container.
365
366         * loader.c (method_from_methodspec): Set `context->parent' from
367         `context->container' - and if that's a method container, use its
368         parent.  Also set the `context->container' when creating a new
369         MonoGenericContext.
370         (mono_get_method_from_token): Use just `context->container' to get
371         the container.
372
373         * metadata.c (do_mono_metadata_parse_generic_class): Also set
374         `gclass->context->container'.
375
376         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
377         the `context->container' when creating a new MonoGenericContext.
378
379 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
380
381         * reflection.c (compare_genericparam): Sort params with identical
382         owner by their number. Fixes gen-111 on sparc.
383
384 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
385
386         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
387         around the domain changes.
388
389         * appdomain.c (mono_domain_unload): Handle the case when the thread
390         calling Unload is itself being aborted during unloading. Fixes #70022.
391
392         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
393
394         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
395         checkpoint_func as an icall so it gets a wrapper.
396         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
397         in the cross-appdomain wrappers too.
398
399         * threads.c (mono_thread_has_appdomain_ref): Make this public.
400
401         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
402
403         * reflection.c: Fix some memory leaks.
404         
405 2004-12-02  Martin Baulig  <martin@ximian.com>
406
407         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
408
409         * metadata.c (generic_class_cache): New static hashtable.
410         (mono_metadata_lookup_generic_class): New public method.
411
412 2004-12-02  Martin Baulig  <martin@ximian.com>
413
414         * class.c (mono_class_create_from_typedef): Call
415         mono_class_setup_parent() and mono_class_create_mono_type() before
416         parsing the interfaces.
417
418 2004-12-02  Martin Baulig  <martin@ximian.com>
419
420         * metadata.c (generic_inst_cache): New static hashtable.
421         (mono_metadata_lookup_generic_inst): New public function.
422         (mono_metadata_inflate_generic_inst): New public function.
423         (mono_metadata_parse_generic_inst): New public function.
424         (do_mono_metadata_parse_generic_class): Use the new
425         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
426         since this'll also use the cache.
427
428         * reflection.c (mono_reflection_bind_generic_method_parameters):
429         Use mono_metadata_lookup_generic_inst() to use the new cache.
430
431         * class.c (inflate_mono_type): Use
432         mono_metadata_inflate_generic_inst() to inflate a generic
433         instance; this'll also use the new cache.
434
435         * loader.c (method_from_methodspec): Use
436         mono_metadata_parse_generic_inst() and
437         mono_metadata_inflate_generic_inst() rather than parsing it
438         manually, so we can use the new cache.
439
440 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
441
442         * threads.c (wait_for_tids): Do not incorrectly free threads when 
443         the wait times out.
444
445 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
446
447         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
448         iter->args based on whether parameters are passed in registers (i.e.
449         MONO_ARCH_REGPARMS is defined)
450
451 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
452
453         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
454         the exception message. Fixes #70070.
455         (method_from_methodspec): Fix warnings.
456
457 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
458
459         * process.c: (complete_path) return the path quoted
460
461 2004-12-01  Martin Baulig  <martin@ximian.com>
462
463         * class-internals.h (MonoGenericInst): New structure.
464         (MonoGenericClass): Replaced `type_argc', `type_argv' and
465         `is_open' with `MonoGenericInst *inst'.
466         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
467         `is_open' with `MonoGenericInst *inst'.
468
469 2004-11-30  Martin Baulig  <martin@ximian.com>
470
471         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
472
473         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
474         to `generic_class_cache'.
475
476         * metadata.c
477         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
478         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
479         (mono_generic_inst_is_valuetype): Renamed to
480         mono_generic_class_is_valuetype().
481
482         * class-internals.h
483         (MonoGenericInst): Renamed to MonoGenericClass.
484         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
485         (MonoClass): Renamed `generic_inst' to `generic_class'.
486         (MonoGenericContext): Renamed `ginst' to `gclass'.
487
488         * object-internals.h
489         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
490
491         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
492         mono_reflection_generic_class_initialize().
493
494         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
495         now known as "System.Reflection.MonoGenericClass".
496         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
497
498 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
499
500         * class-internals.h: Added a flag field to MonoClass to cache the
501         declarative security attributes actions associated with the class.
502         * domain-internals.h: Added booleans to MonoJitInfo to cache the
503         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
504         applicable to the JITted method.
505         * reflection.c|h: Added functions to extract (as flags) which security
506         actions are available (declaratively) for a method, class or assembly.
507         * metadata.c|h: Added functions to search the declarative security
508         table in the metadata.
509         
510 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
511
512         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
513         EXPORTEDTYPES are already in the class name cache, so there is no
514         need to add extra code here to look at them. Just removes a bit of
515         cruft.
516
517         (ves_icall_System_Environment_get_TickCount): No need for #if
518         WINDOWS. We already have the code in io-layer.
519
520 2004-11-28  Martin Baulig  <martin@ximian.com>
521
522         * loader.c
523         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
524         Fixes gen-112.cs.
525
526 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
527
528         * assembly.c (do_mono_assembly_open): Instead of having a
529         conditional WITH_BUNDLE, incorporate support for bundles here, by
530         having a global `bundles' variable holding a pointer to the actual
531         bundles. 
532
533         (mono_register_bundled_assemblies): New API call used by the
534         bundle code. 
535
536         See mkbundle.1 for details.
537         
538 2004-11-27  Martin Baulig  <martin@ximian.com>
539
540         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
541         the vtable for generic methods.
542
543 2004-11-26  Martin Baulig  <martin@ximian.com>
544
545         * metadata.c
546         (mono_metadata_generic_method_hash): New public function.
547         (mono_metadata_generic_method_equal): Likewise.
548
549         * class-internals.h
550         (MonoGenericContainer): Added `GHashTable *method_hash'.
551
552         * reflection.c (ReflectionMethodBuilder): Added
553         `MonoGenericContainer *generic_container'.
554         (reflection_methodbuilder_to_mono_method): Don't create a new
555         MonoGenericContainer each time we're called.
556         (mono_reflection_bind_generic_method_parameters): Use
557         `container->method_hash' to cache the results so we don't create a
558         different method if we're called several times with the same
559         arguments.
560
561         * loader.c (method_from_methodspec): Use the new
562         `container->method_hash' here, too.
563
564 2004-11-26  Martin Baulig  <martin@ximian.com>
565
566         * class.c (inflate_generic_signature): Correctly compute
567         `res->has_type_parameters'.
568         (mono_class_vtable): Use the `has_type_parameters' flag to
569         determine whether we're a generic method.
570
571         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
572
573 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
574
575         * object.c (mono_runtime_run_main): Fix a small memory leak.
576
577 2004-11-25  Martin Baulig  <martin@ximian.com>
578
579         * class.c (set_generic_param_owner): Fixed the loop.
580
581 2004-11-25  Martin Baulig  <martin@ximian.com>
582
583         * object.c (mono_class_vtable): Don't create any JIT wrappers for
584         generic methods.
585
586 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
587
588         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
589         names. Fixes #69787.
590
591 2004-11-24  Martin Baulig  <martin@ximian.com>
592
593         * class.c (mono_class_create_generic_2): If we don't have a
594         `ginst->parent', inflate `gklass->parent' to get our parent.
595
596 2004-11-24  Martin Baulig  <martin@ximian.com>
597
598         * reflection.c (compare_genericparam): Correctly sort the
599         GenericParam table; fixes #69779.
600
601 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
602
603         * reflection.c: When writing a PE file, don't create a huge
604         buffer in memory. Just write the arrays we have to the file.
605         This reduces memory usage.
606
607         * metadata-internals.h: MonoDynamicStream pefile is no longer used
608         globally.
609
610 2004-11-17  Martin Baulig  <martin@ximian.com>
611
612         * class.c (mono_class_init): Don't setup `class->parent' for
613         dynamic instances; moved this to mono_class_generic_2().
614         (mono_class_create_generic): Also set `klass->inited' for dynamic
615         generic instances.
616         (mono_class_create_generic_2): Don't do anything for dynamic
617         generic instances.  Set `klass->parent' here and also call
618         mono_class_setup_parent() here. 
619
620         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
621         `MonoType *parent' argument; set `ginst->parent' before calling
622         mono_class_create_generic_2(), so we set the correct parent.
623
624 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
625
626         * reflection.c: allow getting attributes from ModuleBuilder
627         (used by ikvm).
628
629 2004-11-17  Martin Baulig  <martin@ximian.com>
630
631         * class.c (mono_class_create_from_typedef): If a type parameter is
632         inherited from an outer class, set its owner to that class.
633
634 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
635
636         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
637           for (int*) written size. This fixes bug #69592.
638
639 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
640
641         * icall.c: Added IsAuthenticodePresnet internal call.
642         * image.c|h: New function that check a MonoImage for an Authenticode
643         signature in the certificate PE data directory.
644         * security.c|h: New internal call to ask the runtime if an 
645         Authenticode signature seems referenced in the PE header.
646
647 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
648
649         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
650
651         * reflection.c (mono_image_create_pefile): Free the assembly streams
652         after writing out the assembly file.
653
654         * object.c (mono_runtime_run_main): Fix small memory leak.
655
656         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
657         property access modifiers. Fixes #69389.
658
659 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
660
661         * domain.c, object.c, object-internals.h, domain-internals.h,
662         object.h, marshal.c: keep dynamic code info per domain.
663
664 2004-11-15  Martin Baulig  <martin@ximian.com>
665
666         * class.c (mono_type_get_name_recurse): Put type arguments in
667         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
668         see bug #68387.
669
670 2004-11-15  Martin Baulig  <martin@ximian.com>
671
672         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
673         (mono_class_setup_vtable): When computing `the_cname' for a
674         generic instance, don't include the namespace since we'd otherwise
675         add it twice.
676
677 2004-11-15  Martin Baulig  <martin@ximian.com>
678
679         * class.c (mono_class_create_generic): Changed return type to void.
680         (mono_class_create_generic_2): New public function; setup
681         `class->method', `class->field' and `class->interfaces' here
682         instead of in mono_class_init().
683
684         * class.h (mono_class_create_generic): Moved to class-internals.h.
685
686 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
687
688         * reflection.c (mono_image_create_pefile): take a file HANDLE.
689         rather than writing to memory, write to this file. Right now,
690         we are just writting into a buffer, and copying that. However
691         we can avoid the buffer later.
692
693         (mono_dynamic_stream_reset): new function
694
695         * icall.c, object-internals.h: update for the above.
696
697 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
698
699         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
700         have been using gc'd memory. First it is slower, unlikely
701         the comment in the source code said, secondly, it increases
702         our footprint to do it in the gc.
703
704         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
705         the method so that it does not have to copy to managed code.
706
707 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
708
709         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
710
711 2004-11-12  Martin Baulig  <martin@localhost>
712
713         * reflection.c (mono_image_create_token): Allow generic method
714         definitions here, since they may appear in an `.override'; see
715         gen-98/gen-99 for an example.
716
717 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
718
719         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
720         #69365.
721
722         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
723         descriptive.
724
725 2004-11-11  Martin Baulig  <martin@ximian.com>
726
727         * class.c (mono_class_setup_vtable): In an explicit interface
728         implementation, the method name now includes the arity.
729
730 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
731
732         * object.c (mono_array_full_copy): Fix warning.
733
734 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
735
736         * appdomain.c: Removed look_for_method_by_name(). Use the new method
737         mono_class_get_method_from_name() instead.
738         
739         * class-internals.h: Added two new types of wrappers. 
740         Added MonoRemotingTarget enum. Added new trampoline function type, which
741         takes an additional MonoRemotingTarget value as parameter, so it is
742         possible to request a trampoline for a specific target.
743         
744         * class.c: Added new mono_class_get_method_from_name() method.
745         
746         * class.h: In MonoRemoteClass, we can have now to vtables, one for
747         general remoting sinks and one specific for cross domain calls.
748         
749         * debug-helpers.c: Added new wrapper names.
750         
751         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
752         of a remote class.
753         
754         * image.c: Porperly delete value objects form the remoting invoke hashtable.
755         
756         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
757         with several other methods (mono_marshal_get_xappdomain_dispatch,
758         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
759         and others) can generate a fast remoting wrapper for cross domain calls.
760         More information can be found in docs/remoting.
761         Other changes: Removed mono_find_method_by_name, and used
762         mono_class_get_method_from_name instead.
763         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
764         is stored in the remoting invoke hashtable.
765         
766         * marshal.h: published the new method for getting the xdomain wrapper,
767         and also added a method for getting the adequate wrapper for a given
768         method and target.
769         
770         * object-internals.h, object.c: Added a couple of methods for capying and
771         cloning arrays.
772         Modified mono_install_remoting_trampoline, which takes the new remoting
773         trampoline that has a remoting target as parameter.
774         mono_class_proxy_vtable now also takes a remoting target as parameter, and
775         will return the most suitable vtable for the target.
776         Added mono_remote_class_vtable, which returns the vtable of a remote class
777         (which can be the normal remoting vtable or the xdomain vtable).
778         
779         * threads.c: the xdomain invoke and dispatch wrappers must also be
780         protected against interruptions.
781
782 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
783
784         * icall.c: use memmove in BlockCopyInternal when the source and
785         destination arrays are the same.
786
787 2004-11-09  Martin Baulig  <martin@ximian.com>
788
789         * class-internals.h (MonoGenericContainer): Removed `method' and
790         `signature', replaced them with `is_method' and `is_signature'
791         flags.  Added `context'.
792
793         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
794         instead of a `MonoGenericContainer *'.
795
796         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
797         for dynamic type parameters.
798         (mono_metadata_load_generic_params): Setup `container->context'.
799
800         * reflection.c (mono_reflection_setup_generic_class): Setup
801         `tb->generic_container->context'.
802         (do_mono_reflection_bind_generic_parameters): Use
803         mono_class_inflate_generic_type() to correctly inflate types,
804         rather than using our own hack just for MONO_TYPE_VAR.
805
806 2004-11-09  Martin Baulig  <martin@ximian.com>
807
808         * class.c (mono_class_inflate_generic_method): Small fix; don't
809         crash here.
810
811         * icall.c
812         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
813         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
814         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
815         (ves_icall_Type_BindGenericParameters): Likewise.
816         (ves_icall_Type_get_IsGenericInstance): Likewise.
817         (ves_icall_Type_GetGenericParameterPosition): Likewise.
818         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
819         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
820         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
821
822 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
823
824         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
825         assembly versions and public key tokens. Fixes #69113.
826
827 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
828
829         * metadata.c: fix bug introduced with the type cache changes
830         on 2004-11-06.
831
832 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
833
834         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
835         the MonoClass pointer instead of the token in exception clauses.
836         * reflection.c: updates for the above and make the code not depend
837         on the structure of MonoExceptionClause.
838
839 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
840
841         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
842         Add support for dynamic assemblies. Fixes #69114.
843
844         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
845
846 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
847
848         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
849         since most only those methods use it. the code member of
850         MonoMethodPInvoke was dead, so that can be removed too. Also,
851         remove inline_count (again, not used), and move slot so that it
852         can share bits with some other flags. This saves 8 bytes in the
853         structure and gives us about 50 kb back for mcs helloworld.cs
854
855         * *.[ch]: Do naming changes for the above.
856
857         * loader.c (mono_method_get_header): Lazily init the header
858         on first access.
859         (mono_get_method_from_token): don't init the header here
860         (mono_free_method): the header may never be allocated
861
862         Overall, this saves 150 kb of unmanaged allocations
863         for mcs helloworld.cs. That accounts for 10% of the unmanaged
864         memory at runtime.
865         
866         * loader.c, loader.h (mono_method_get_header): new accessor.
867
868         * *.[ch]: use the above method. Prepares us to lazily load
869         the header.
870
871         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
872         three warnings, which are actual bugs (see 69206).
873
874         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
875         unused. Saves a cool 4 bytes / method.
876
877 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
878
879         * metadata.c (builtin_types): Add types for System.Object here.
880         (mono_metadata_parse_type_full): Cache MonoType*'s that are
881         for a class or valuetype from klass->this_arg or klass->byval_arg.
882
883         On mcs for a hello world, this gets us down from 21836 MonoType's
884         to 14560.
885
886         (mono_metadata_free_type): Account for the above change.
887
888 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
889
890         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
891         exception instead of asserting if name is null.
892         (ves_icall_System_AppDomain_GetData): Ditto.
893
894 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
895
896         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
897         EnumBuilder.
898
899         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
900         Return NULL when the domain does not have entry_assembly set.
901
902         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
903         Add a 'resource_modules' argument.
904         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
905
906         * reflection.c (mono_reflection_create_runtime_class): Move setting
907         of wastypebuilder here, so mono_get_type_object () returns a MonoType
908         for enums too.
909
910         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
911         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
912         Throw an ArgumentNullException if 'ptr' is null.
913
914         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
915         assemblies here. Fixes #69020.
916
917 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
918
919         * reflection.c (build_compressed_metadata): Fix the previous patch for
920         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
921         the stack.
922
923 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
924
925         * assembly.c (mono_assembly_names_equal): Allow a match if one of
926         the cultures is false. Fixes #69090.
927
928         * reflection.c (build_compressed_metadata): Fix invalid memory read 
929         detected by valgrind.
930         
931         * reflection.c (mono_reflection_get_type): Avoid triggering a 
932         TypeResolve multiple times for the same type. Fixes #65577.
933
934 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
935
936         * marshal.c: Avoid using ldftn to call managed functions. It is
937         much slower than just a call.
938
939         * reflection.c (mono_module_get_object): free the basename we
940         allocate here from glib.
941         
942         * reflection.c (ensure_runtime_vtable): make sure to free
943         overrides.  Also, we were allocating an array of MonoMethod not an
944         array of MonoMethod*.
945
946         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
947
948         * image.c (mono_image_close): free image->guid here.
949
950 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
951
952         * reflection.c: Fix some spec conformance issues with the PE file
953         structures so mcs compiled apps run on the Net 2.0 beta.
954
955 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
956
957         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
958         Implement this. Fixes #67264.
959
960         * debug-helpers.h debug-helpers.c marshal.c: Move 
961         mono_find_method_by_name to debug-helpers.c.
962
963 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
964
965         * object.c (mono_release_type_locks): type_initialization_hash is
966         a GHashTable.
967
968         * reflection.c object.c object-internals.h: Fix warnings.
969
970         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
971         without accessors. Fixes #61561.
972
973         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
974         application base from the root domain if not set. Fixes #65641.
975         (mono_runtime_init): Fix warning.
976
977 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
978
979         * appdomain.c: call mono_thread_pool_init.
980         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
981         of worker threads based on the number of CPUs and the environment
982         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
983         for non-windows (windows) systems.
984
985 2004-10-27  Chris Toshok  <toshok@ximian.com>
986
987         * mono-debug-debugger.c (write_class): don't call mono_class_init
988         here, as even with the check for (!klass->init_pending), we get
989         into a situation where we're hitting cycles in class
990         initialization.  Fixes #68816.
991
992 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
993
994         * image.c: Avoid overwriting values in the loaded_images_hash when an
995         assembly is loaded multiple times. Fixes #61152.
996
997         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
998         so multiple satellite assemblies for the same name can be loaded.
999         Fixes #68259.
1000
1001         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1002         not NULL.
1003
1004         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1005         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1006
1007         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1008         pending finalizers are not invoked after the appdomain has been 
1009         unloaded. Fixes #67862.
1010
1011 2004-10-22  Martin Baulig  <martin@ximian.com>
1012
1013         * mono-debug-debugger.c
1014         (mono_debugger_runtime_invoke): Don't box valuetypes.
1015
1016 2004-10-22  Chris Toshok  <toshok@ximian.com>
1017
1018         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1019         don't hide private methods.
1020
1021 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1022
1023         * icall.c: Allows the runtime to "share" (when known) the public key
1024         token of an assembly. This avoid the need to recalculate the token 
1025         (from the public key) in managed code.
1026
1027 2004-10-21  Chris Toshok  <toshok@ximian.com>
1028
1029         * debug-helpers.c (append_class_name): argh, revert last patch.
1030         
1031 2004-10-21  Chris Toshok  <toshok@ximian.com>
1032
1033         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1034         not '/', so that it matches what the debugger uses to look up
1035         methods.
1036
1037 2004-10-21  Martin Baulig  <martin@ximian.com>
1038
1039         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1040         public method; this is called each time an exception is thrown and
1041         allows the debugger to use exception catch points.
1042
1043 2004-10-21  Martin Baulig  <martin@ximian.com>
1044
1045         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1046         the stack pointer and the exception object in some struct and pass
1047         that to the debugger.
1048
1049 2004-10-21  Chris Toshok  <toshok@ximian.com>
1050
1051         * mono-debug-debugger.c (do_write_class): add instance/static
1052         event support.  We don't expose "raise" or "other" yet.
1053         (event_is_static): new method.
1054
1055 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1056
1057         * mono-debug-debugger.c
1058         (mono_debugger_handle_exception): Remove
1059         bogus return value for fussy compilers.
1060
1061 2004-10-20  Martin Baulig  <martin@ximian.com>
1062
1063         * mono-debug-debugger.c
1064         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1065         (mono_debugger_handled_exception): Likewise.
1066
1067 2004-10-20  Martin Baulig  <martin@ximian.com>
1068
1069         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1070         MONO_DEBUGGER_EVENT_EXCEPTION.
1071
1072         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1073         public function to send the debugger a notification for an
1074         exception and inform it about a catch/finally clause.
1075
1076 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1077
1078         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1079         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1080         fix 2.95 build. 
1081
1082         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1083
1084 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1085
1086         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1087         marshalled as [In,Out]. Fixes #58325.
1088
1089 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1090
1091         * reflection.c (mono_method_body_get_object): Implement some fields.
1092
1093 2004-10-12  Martin Baulig  <martin@ximian.com>
1094
1095         * reflection.c (mono_reflection_bind_generic_parameters): Small
1096         fix, correctly retrieve our parent from a generic instance.
1097
1098 2004-10-12  Martin Baulig  <martin@ximian.com>
1099
1100         * metadata.c (mono_metadata_generic_param_equal): We always have
1101         an owner.
1102
1103         * class.c
1104         (mono_class_from_generic_parameter): We need to have an owner.
1105         (my_mono_class_from_generic_parameter): Likewise.
1106
1107         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1108         mono_reflection_create_generic_class() and added a new
1109         mono_reflection_setup_generic_class().  
1110         (mono_reflection_initialize_generic_param): If we're a nested
1111         generic type and inherited from the containing class, set our
1112         owner to the outer class.
1113
1114 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1115
1116         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1117
1118         * reflection.c (mono_method_body_get_object): New function to create
1119         a MethodBody object.
1120
1121         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1122
1123 2004-10-11  Martin Baulig  <martin@ximian.com>
1124
1125         * metadata.c (_mono_metadata_type_equal): Renamed to
1126         do_mono_metadata_type_equal() and made static.
1127
1128 2004-10-11  Martin Baulig  <martin@ximian.com>
1129
1130         * appdomain.c: Bump corlib version number to 28.
1131
1132 2004-10-10  Martin Baulig  <martin@ximian.com>
1133
1134         * class-internals.h
1135         (MonoGenericInst): Added `MonoGenericContainer *container'.
1136         (MonoGenericMethod): Likewise.
1137         (MonoGenericContext): Likewise.
1138         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1139
1140         * metadata.c
1141         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1142         (do_mono_metadata_parse_generic_inst): Likewise.
1143         (mono_metadata_parse_type_full): New public method.  This is the actual
1144         mono_metadata_parse_type() implementation - with an additional
1145         `MonoGenericContainer *' argument.
1146         (mono_metadata_parse_array_full): Likewise.
1147         (mono_metadata_parse_signature_full): Likewise.
1148         (mono_metadata_parse_method_signature_full): Likewise.
1149         (mono_metadata_parse_mh_full): Likewise.
1150         (mono_type_create_from_typespec): Likewise.
1151         (mono_metadata_interfaces_from_typedef_full): New public method;
1152         this is similar to the other _full() methods, but we take a
1153         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1154         (mono_metadata_parse_generic_param): Take an additional
1155         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1156         from that container.
1157         (mono_metadata_generic_param_equal): New static method to compare
1158         two type parameters.
1159         (_mono_metadata_type_equal): New static method; takes an
1160         additional `gboolean signature_only' argument - if true, we don't
1161         compare the owners of generic parameters.
1162         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1163         with a TRUE argument - do a signature-only comparision.
1164
1165         * loader.c: Use the new _full() methods and pass the
1166         MonoGenericContainer to them.
1167
1168         * object-internals.h (MonoReflectionTypeBuilder): Added
1169         `MonoGenericContainer *generic_container' field.
1170         (MonoReflectionMethodBuilder): Likewise.
1171
1172 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1173
1174         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1175         case initial images of dynamic assemblies.
1176
1177         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1178
1179         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1180
1181         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1182         length of event->other array.
1183         (typebuilder_setup_events): Ditto.
1184
1185         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1186         'assembly_by_name' and add an 'assemblies' list.
1187
1188         * assembly.h assembly.c: Add a new search hook for determining whenever
1189         an assembly is already loaded. Use this instead of searching in the
1190         loaded_assemblies list.
1191
1192         * domain.c appdomain.c: Implement the new search hook so loaded 
1193         assemblies are now scoped by appdomain. Fixes #67727.
1194
1195 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1196
1197         * threads.c (mono_thread_attach): Initialize synch_lock field so
1198         mono_thread_detach works again.
1199
1200         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1201         'lib' too. Fixes #63130.
1202
1203 2004-10-06  Jackson Harper  <jackson@ximian.com>
1204
1205         * culture-info-tables.h: regenerated.
1206
1207 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1208
1209         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1210         implemented by other interfaces in the result. Fixes #65764.
1211         
1212         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1213         Handle unloadable modules without crashing.
1214
1215         * image.c (load_modules): Revert the previous patch since modules must
1216         have a fixed index inside the array.
1217         
1218         * image.c (load_modules): Don't include native modules in the modules
1219         array.
1220
1221 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1222
1223         * reflection.h: Add param_defaults field.
1224
1225         * reflection.c: Add support for parameter defaults in dynamic methods.
1226         Fixes #64595.
1227
1228         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1229         an empty string when a type has no namespace. Fixes #64230.
1230
1231 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1232
1233         * tabledefs.h: Added "internal" security actions to support non-CAS
1234         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1235         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1236
1237 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1238
1239         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1240         constructor of abstract class. Fixes #61689.
1241
1242 2004-10-04  Martin Baulig  <martin@ximian.com>
1243
1244         * class-internals.h (MonoGenericContainer): New type.
1245         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1246         `MonoGenericContainer *generic_container'.
1247         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1248         `MonoGenericContainer *generic_container'.
1249
1250         * metadata.c (mono_metadata_load_generic_params): Return a
1251         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1252         removed the `num' argument.
1253
1254 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1255
1256         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1257         for dynamic images.
1258
1259         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1260         machine fields.
1261
1262         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1263
1264         * reflection.c: Save pe_kind and machine values into the generated
1265         image file.
1266
1267         * appdomain.c: Bump corlib version number.
1268
1269         * object-internals.h: Reorganize layout of LocalBuilder.
1270
1271         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1272         New helper function.
1273
1274         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1275         created MonoType for dynamic types. Fixes #66180.
1276
1277 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1278
1279         * threadpool.c: the ares hashtable needs a critical section around it.
1280         this prevents some nasty segfaults
1281
1282 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1283
1284         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1285         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1286         bug 67324).
1287         
1288 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1289
1290         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1291         
1292 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1293
1294         * image.c: Always canonicalize image file names, to avoid loading
1295         the same assembly twice when referenced using a relative path.
1296
1297 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1298
1299         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1300
1301         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1302
1303         * marshal.c: Fix warnings.
1304
1305 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1306
1307         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1308         attempting to marshal the delegate_trampoline as the method_addr.
1309         This patch has a static hashtable of marshalled delegates so that 
1310         we can map delegate_trampoline addresses back to delegates.  This
1311         allows a delegate passed to managed code to be passed back into native
1312         code.  Fixes #67039
1313
1314 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1315
1316         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1317
1318         * reflection.c (method_encode_code): Align method headers properly.
1319         Fixes #66025.
1320
1321 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1322
1323         * marshal.c: In the runtime invoke wrapper, reset the abort
1324         exception if it is cached. This avoids the automatic rethrowal of 
1325         the exception after the catch of the wrapper. Also check for pending
1326         interruptions before calling the managed method. This is done using
1327         the new method emit_thread_force_interrupt_checkpoint, since the
1328         normal checkpoint method is ignored when running the invoke wrapper.
1329         * object.c: If the abort exception is rethrown, set the abort_exc
1330         field of the thread, so it will be rethrown aftere every catch.
1331         * threadpool.c: Only run an interruption checkpoint if what has been
1332         requested is a stop of the thread (aborts will be ignored).
1333         * threads.c: By default, a thread will now never be interrumped while
1334         running the runtime invoke wrapper (this ensures that runtime_invoke
1335         will always return to the caller if an exception pointer is provided).
1336         There is a new special method mono_thread_force_interruption_checkpoint()
1337         to force an interruption checkpoint even if running a protected
1338         wrapper, which is used by the same runtime invoke wrapper to do a check
1339         at a safe point.
1340
1341 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1342
1343         * object.c, object-internals.h: Implemented mono_release_type_locks,
1344         which releases the cctor locks held by a thread.
1345         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1346         by a thread. Added mono_thread_exit() method to be used to safely stop
1347         a thread.
1348
1349 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1350
1351         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1352         Move null check before dereference.  Avoid indexing beyond the end
1353         of the 'modules' array.
1354
1355 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1356
1357         * metadata-internals.h (MonoImage): Add module_count field.
1358         * image.c (load_modules): Set image->module_count.
1359         (mono_image_load_file_for_image): Use image->module_count.
1360         * reflection.c (mono_image_load_module): Append to image->modules array 
1361         of dynamic assembly.
1362         (mono_module_get_object): Fix loop to actually increment index.
1363         Use image->module_count.
1364         * assembly.c (mono_assembly_load_references): Use image->module_count.
1365         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1366         Likewise.
1367
1368 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1369
1370         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1371         Avoid assert on generic types.
1372
1373 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1374
1375         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1376
1377         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1378
1379         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1380         function to convert a MarshalSpec structure to its managed counterpart.
1381
1382         * reflection.c: Fix warnings.
1383         
1384         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1385         field.
1386
1387         * icall.c (mono_create_icall_signature): Fix build.
1388
1389 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1390
1391         * icall.c: Add MakePointType icall.
1392
1393         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1394         warnings.
1395
1396 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1397
1398         * threadpool.c: reuse allocated slots in the queue.
1399
1400 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1401
1402         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1403
1404         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1405
1406         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1407         previous change.
1408
1409         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1410         ThrowOnUnmappableChar.
1411
1412         * icall.c (ves_icall_Type_GetPacking): New icall.
1413
1414 2004-09-24  Martin Baulig  <martin@ximian.com>
1415
1416         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1417
1418 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1419
1420         * appdomain.c:
1421         (mono_domain_set): allow setting a domain that is being unloaded.
1422         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1423         being unloaded.
1424
1425 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1426
1427         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1428         the GetCustomAttributes icall.
1429
1430 2004-09-23  Martin Baulig  <martin@ximian.com>
1431
1432         * object-internals.h (MonoReflectionGenericParam): Replaced
1433         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1434         with `guint32 attrs'.
1435
1436 2004-09-23  Martin Baulig  <martin@ximian.com>
1437
1438         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1439
1440 2004-09-23  Martin Baulig  <martin@ximian.com>
1441
1442         * object-internals.h (GenericParameterAttributes): New enum.
1443
1444 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1445
1446         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1447         
1448         * class.c (init_events): Fill out event->other field.
1449
1450         * class.c: Fix warnings.
1451
1452         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1453
1454 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1455
1456         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1457         walk which doesn't supply the IL offset.
1458
1459 2004-09-22  Martin Baulig  <martin@ximian.com>
1460
1461         * reflection.c (mono_reflection_setup_internal_class): If we're
1462         System.ValueType, System.Object or System.Enum, set
1463         `klass->instance_size' and create the vtable.
1464         (mono_reflection_create_internal_class): If we're an enum type,
1465         get the base class from our current corlib.
1466
1467 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1468
1469         * reflection.h (MonoResolveTokenError): New type.
1470
1471         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1472         icall.
1473
1474         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1475
1476 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1477
1478         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1479         Support also calling constructors, but only for already allocated objects.
1480
1481 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1482
1483         * reflection.c (type_get_qualified_name): If the klass is null
1484         return the typename to avoid a NullRefEx.
1485         (encode_cattr_value): Get the qualified name of the boxed type,
1486         not the underlying enumtype.  Fixes #62984.
1487
1488 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1489
1490         * marshal.c: Fix problems with previous checkin.
1491
1492 2004-09-21    <vargaz@freemail.hu>
1493
1494         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1495         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1496
1497         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1498
1499 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1500
1501         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1502         should only return a type for pointers, arrays, and passbyref types.
1503         Fixes bug #63841.
1504
1505 2004-09-21  Martin Baulig  <martin@ximian.com>
1506
1507         * domain.c (mono_debugger_check_runtime_version): New public
1508         function.
1509
1510         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1511
1512 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1513
1514         * reflection.c: Added missing sort to the declarative security 
1515         attributes table. MS implementation stops seeing the attributes if the
1516         token number regress in the table (as shown by ildasm and permview).
1517
1518 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1519
1520         * object-internals.h (MonoReflectionModule): Add 'token' field.
1521         
1522         * reflection.c (mono_reflection_get_token): Add support for Module
1523         and Assembly.
1524         (mono_module_get_object): Set 'token' field.
1525         (mono_module_file_get_object): Set 'token' field.
1526
1527         * icall.c: Add new Assembly and Module icalls.
1528
1529         * appdomain.c: Bump corlib version.
1530
1531 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1532
1533         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1534         tokens of metadata objects.
1535
1536         * reflection.h reflection.c (mono_reflection_get_token): New function
1537         to obtain the token of a metadata object.
1538
1539         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1540
1541 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1542
1543         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1544         
1545         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1546
1547 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1548
1549         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1550         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1551         AssemblyBuilder to access the permissions set in the class lib.
1552         * reflection.c: Added security attributes encoding step in 
1553         mono_image_build_metadata.
1554         * tabledefs.h: Added new security actions defined in 2.0:
1555         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1556
1557 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1558
1559         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1560         macro parameter.
1561
1562 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1563  
1564         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1565           finalized. There where random SIGSEVs at program termination, when
1566           an object being finalized was trying to do a string comparison and
1567           the current culture was already finalized.
1568  
1569 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1570
1571         * threads.c: call thread_cleanup before finishing the thread if we get
1572         there.
1573
1574 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1575
1576         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1577         assemblies from the parent. Fixes #65665.
1578
1579 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1580
1581         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1582         modifiers.
1583
1584 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1585
1586         * reflection.h: add prototype for mono_get_dbnull_object
1587         * reflection.c: add prototypes for get_default_param_value_blobs 
1588         and mono_get_object_from_blob for fussier compilers
1589
1590 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1591  
1592         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1593         false deadlock checks in class initialization.
1594  
1595 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1596
1597         * image.c (mono_image_addref): Fix comment.
1598
1599         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1600         possible.
1601
1602 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1603
1604         * reflection.c (mono_param_get_objects): Modified to return
1605         ParameterInfo.DefaultValue object.
1606
1607         (get_default_param_value_blobs):
1608         (mono_get_object_from_blob):
1609         (mono_get_dbnull_object): New helper routines. 
1610
1611         * object.c (mono_get_constant_value_from_blob): New helper routine
1612         carved out from get_default_field_value ()
1613
1614         * object-internals.h (mono_get_constant_value_from_blob): Added
1615         function declaration.
1616
1617 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1618
1619         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1620         referenced assemblies. Fixes #62135.
1621
1622         * exception.h exception.c (mono_get_exception_file_not_found2): New
1623         helper function.
1624
1625 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1626
1627         * class.h class.c: Add mono_type_get_underlying_type ().
1628
1629 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1630
1631         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1632         Fix GetTypes() to support dynamically created assemblies.
1633
1634 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1635
1636         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1637         
1638         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1639         previous patch.
1640
1641         * reflection.h reflection.c loader.c: Allow dynamic construction of
1642         pinvoke methods. Fixes #65571.
1643         
1644         * reflection.c (mono_reflection_get_type): Revert previous change since
1645         it causes regressions.
1646
1647 2004-09-08  Martin Baulig  <martin@ximian.com>
1648
1649         * class.c (class_compute_field_layout): Don't call
1650         mono_class_layout_fields() for open generic instances.
1651
1652 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1653         * threads.c appdomain.c: fix typo in GC macro
1654
1655 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1656
1657         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1658         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1659
1660 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1661
1662         * image.c (mono_image_close): Applied patch from 
1663         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1664         assembly is loaded multiple times from data.
1665         
1666         * image.c (mono_image_open): Fix warning.
1667
1668 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1669
1670         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1671         once. Fixes #58334.
1672         
1673         * reflection.c (mono_reflection_create_runtime_class): Initialize
1674         klass->nested_classes. Fixes #61224.
1675
1676 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1677
1678         * threads.c: sched_yield() on exit, to allow threads to quit.
1679
1680 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1681
1682         * object.c (mono_unhandled_exception): Remove leftover debug code.
1683
1684 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1685
1686         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1687
1688 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1689
1690         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1691         
1692         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1693
1694 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1695
1696         * marshal.c (emit_marshal_array): Null terminate string arrays.
1697         
1698         * marshal.c (raise_auto_layout_exception): Fix warning.
1699
1700         * reflection.c (mono_param_get_objects): Initialize the default value
1701         with DBNull.Value, not null. Fixes #62123.
1702
1703 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1704
1705         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1706         throw an exception with a cute explanation.
1707
1708 2004-09-06  Dick Porter  <dick@ximian.com>
1709
1710         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1711         Close the new process's thread handle, as we don't use it.  The
1712         handle stays around forever otherwise.
1713
1714 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1715
1716         * object.c (arith_overflow): Fix warning.
1717
1718         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1719         calling conventions in method refs. Fixes #65352.
1720
1721         * reflection.c: Fix warnings.
1722
1723 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1724
1725         * icall.c: Add a new icall for Array.Clear
1726
1727 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1728
1729         * object.c: When allocating an array, we have to throw
1730         an overflow exception if any of the lengths are < 0.
1731
1732 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1733
1734         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1735         properly. Also move implementation of string array marshalling to 
1736         managed code. Fixes #42316.
1737
1738 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1739
1740         * assembly.c: provide more information when loading an assembly fails.
1741
1742 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1743
1744         * filewatcher.c: don't expect the development fam package to be
1745         installed.
1746
1747 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1748
1749         * marshal.c: Make a copy of the signature cookie since it will be
1750         freed by the caller.
1751         
1752         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1753
1754         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1755
1756         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1757         marshal specs.
1758
1759         * marshal.c: More refactoring.
1760         
1761         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1762         smaller functions.
1763
1764 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1765
1766         * object.c: In mono_message_invoke, fill the output parameter array after
1767           calling the managed method (it was done before the call). This fixes
1768           bug #59299.
1769
1770 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1771
1772         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1773         as well.
1774
1775 2004-09-02  Martin Baulig  <martin@ximian.com>
1776
1777         * class.c (mono_class_instance_size): Don't allow generic type
1778         definitions or open generic instances.
1779         (mono_class_array_element_size): If we're a value type, call
1780         mono_class_instance_size() on the original class.
1781
1782         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1783         handle generic instances.
1784
1785         * mono-debug-debugger.c (write_type): Handle generic instances
1786         like classes.
1787
1788 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1789
1790         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
1791         the allocation request fails. Fixes #65089.
1792
1793         * object.c (mono_runtime_free_method): Do not call mono_free_method.
1794         
1795         * object.c (mono_runtime_free_method): New function to free a dynamic
1796         method.
1797
1798         * marshal.c (mono_delegate_free_ftnptr): New function to free the
1799         delegate trampoline.
1800
1801         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
1802         with hasthis as dynamic,
1803
1804         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
1805
1806         * domain.c (mono_jit_info_table_remove): New function to remove an
1807         entry from the jit info table.
1808
1809         * class-internals.h (MonoMethod): Add 'dynamic' field.
1810
1811         * loader.c: Fix warnings.
1812
1813 2004-09-01  Martin Baulig  <martin@ximian.com>
1814
1815         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
1816         instead of mono_debugger_lock() because the latter one is a no-op
1817         unless running in the debugger.
1818
1819 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1820
1821         * class.c (class_compute_field_layout): Classes with auto-layout or
1822         reference fields are not blittable.
1823         
1824 2004-09-01  Dick Porter  <dick@ximian.com>
1825
1826         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
1827         mono_image_get_filename() to get the assembly location.
1828
1829         * icall.c:
1830         * metadata.h: Fix compile warnings
1831
1832 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1833
1834         * class.c (class_compute_field_layout): System.Object is blittable.
1835
1836         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
1837         as in/out. Fixes #59909.
1838
1839 2004-09-01  Martin Baulig  <martin@ximian.com>
1840
1841         * metadata.h (MONO_TYPE_ISREFERENCE): Call
1842         mono_metadata_generic_inst_is_valuetype() if we're a generic
1843         instance to check whether our underlying type is a reference type.
1844
1845 2004-09-01  Martin Baulig  <martin@ximian.com>
1846
1847         * metadata.c (mono_type_size): If we're a generic instance, call
1848         mono_class_value_size() for value types.
1849
1850 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
1851
1852         * marshal.c: Implement more custom marshalling functionality. Fixes
1853         #64915.
1854
1855 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1856
1857         * mono-debug.c, debug-mono-symfile.c: add some locking love.
1858
1859 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
1860
1861         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
1862
1863         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
1864
1865         * icall.c: Fix some warnings.
1866
1867         * threads.c (abort_appdomain_thread): Fix unref errors.
1868         (mono_thread_current): Fix THREAD_DEBUG define.
1869
1870 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
1871
1872         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
1873
1874         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
1875
1876 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
1877
1878         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
1879         string arrays.
1880
1881 2004-08-28  Martin Baulig  <martin@ximian.com>
1882
1883         * metadata.c
1884         (mono_metadata_generic_inst_is_valuetype): New public function.
1885
1886         * metadata.h (MONO_TYPE_ISSTRUCT): Call
1887         mono_metadata_generic_inst_is_valuetype() if we're a generic
1888         instance to check whether our underlying type is a valuetype.
1889
1890 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
1891
1892         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
1893         #63768.
1894
1895 2004-08-25  Martin Baulig  <martin@ximian.com>
1896
1897         * loader.c (mono_get_method_from_token): Abstract methods can also
1898         be generic and thus have type parameters.
1899
1900         * metadata-internals.h
1901         (MonoDynamicImage): Added `GPtrArray *gen_params'.
1902
1903         * reflection.c (mono_image_get_generic_param_info): Don't create a
1904         metadata row, just add an entry to the `gen_params' array.
1905         (build_compressed_metadata): Sort the `gen_params' array and then
1906         actually create the metadata.
1907
1908 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1909
1910         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
1911
1912 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
1913
1914         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
1915
1916 2004-08-24  Martin Baulig  <martin@ximian.com>
1917
1918         * class.cs (mono_class_is_subclass_of): Like an interface, a
1919         generic instance also derives from System.Object.
1920
1921 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
1922
1923         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
1924         custom modifiers to be in any order. Fixes #61990.
1925
1926 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
1927
1928         * object.c: Register mono_object_new_fast icall.
1929         
1930         * object.c (mono_class_get_allocation_ftn): Return to calling
1931         mono_object_new_fast, since it seems faster to compute the object 
1932         size in unmanaged code than passing it as a parameter.
1933
1934         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
1935
1936         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
1937         this function with Boehm as the oom handler, so we don't have to check
1938         the result of GC_malloc.
1939
1940         * object.c: Remove checks for oom.
1941
1942         * object.h object.c (mono_class_get_allocation_ftn): New function to
1943         return the icall which can be used to allocate an instance of a given
1944         class. 
1945
1946         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
1947
1948         * class-internals.h: Add 'enabled' field.
1949
1950 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
1951
1952         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
1953
1954 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
1955         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
1956         value 0x0010.
1957
1958 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
1959
1960         * appdomain.c: use the Tls function for appdomain too,
1961         at Zoltan's request. Actually return in mono_context_get
1962
1963         * appdomain.c, profiler.c, threads.c: use __thread
1964
1965 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
1966
1967         * appdomain.c threads.c: Call GC_CreateThread on windows.
1968
1969         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
1970         multiple libraries since this don't work on windows.
1971
1972 2004-08-18  Martin Baulig  <martin@ximian.com>
1973
1974         * class-internals.h
1975         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
1976         MonoMethodHeader.
1977
1978         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
1979         MonoMethodNormal since we also need it for abstract and interface
1980         methods.
1981
1982         * reflection.c
1983         (build_compressed_metadata): Sort the GenericParam table.
1984         (mono_image_create_token): Added `gboolean create_methodspec'
1985         argument; this is false when generating a MethodImpl token.
1986         (reflection_methodbuilder_to_mono_method): Abstract and interface
1987         methods may also have generic parameters.
1988
1989 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
1990
1991         * appdomain.c: thread local alloc
1992
1993 2004-08-17  Martin Baulig  <martin@ximian.com>
1994
1995         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
1996
1997         * icall.c
1998         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
1999         argument.
2000
2001         * class.c (mono_type_get_full_name): New public function.
2002         (mono_type_get_name): Don't include the type arguments.
2003
2004 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2005
2006         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2007         for inclusion into the mono executable.
2008
2009 2004-08-16  Martin Baulig  <martin@ximian.com>
2010
2011         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2012         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2013
2014 2004-08-14  Martin Baulig  <martin@ximian.com>
2015
2016         * class.c (dup_type): Also copy the `byref' field.
2017
2018 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2019
2020         * reflection.c (create_dynamic_mono_image): Revert the last change 
2021         since it breaks bootstrap.
2022
2023 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2024
2025         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2026
2027         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2028         not free them with g_free.
2029
2030 2004-08-11  Martin Baulig  <martin@ximian.com>
2031
2032         * reflection.c (mono_reflection_setup_internal_class): Also call
2033         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2034
2035 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2036
2037         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2038         called during default (first) AppDomain creation. Keep track of
2039         Evidence when loading assemblies.
2040
2041 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2042
2043         * opcodes.c, opcodes.h: reduce runtime relocations.
2044
2045 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2046
2047         * culture-info.h, locales.c: fixes and chages to sue the new
2048         optimized format of the locale data.
2049         * culture-info-tables.h: regenerated.
2050
2051 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2052         
2053         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2054
2055 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2056
2057         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2058         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2059         * domain-internals.h: icall declaration.
2060         * icall.c: icall registration.
2061         * object-internals.h: New fields in MonoAssembly for CAS.
2062
2063 2004-08-05  Duncan Mak  <duncan@ximian.com>
2064
2065         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2066         CEE_LDELEM_ANY.
2067
2068 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2069
2070         * reflection.c: fix to deal with object[] arrays in custom ctors
2071         (bug #62550).
2072
2073 2004-08-05  Martin Baulig  <martin@ximian.com>
2074
2075         * class.c (mono_class_array_element_size): Added support for
2076         generic instances and correctly handle "recursive" types.
2077
2078 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2079
2080         * assembly.c: Fix warnings.
2081
2082 2004-08-04  Martin Baulig  <martin@ximian.com>
2083
2084         * class.c
2085         (mono_type_get_name_recurse): Added `gboolean include_arity'
2086         argument specifying whether or not we should include the generic
2087         arity in the type name.
2088         (_mono_type_get_name): New static function.
2089         (mono_class_setup_vtable): If we're a generic instance, don't
2090         include the generic arity in the names of explicit method
2091         implementations.        
2092
2093 2004-08-03  Martin Baulig  <martin@ximian.com>
2094
2095         * class.c (mono_type_get_name_recurse): Enclose the generic type
2096         arguments in `<', '>'.
2097
2098 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2099
2100         * gc.c: make GC warning messages use the trace API, they are just
2101         noise to most of the users.
2102
2103 2004-08-03  Martin Baulig  <martin@ximian.com>
2104
2105         * debug-mono-symfile.c (read_string): Correctly read the string.
2106
2107 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2108
2109         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2110         
2111         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2112         icalls.
2113         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2114
2115 2004-07-30  Martin Baulig  <martin@ximian.com>
2116
2117         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2118         Reflect latest symbol writer changes.   
2119
2120 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2121
2122         * object.c: always create an object if null is passed
2123         to Invoke() where a valuetype is expected.
2124
2125 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2126
2127         * marshal.c (mono_marshal_init): make managed
2128         signatures match native ones better for 64bits.
2129
2130 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2131
2132         * appdomain.c: hack to build correctly the private bin path on windows.
2133         Fixes bug #61991.
2134
2135 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2136
2137         * assembly.c: Load mscorlib from the correct framework directory
2138           (mono/<version>/mscorlib.dll).
2139         * appdomain.h: Added prototypes for new functions.
2140         * internals.h: Added some prototypes.
2141         * domain.c: When initializing the runtime, get from the executable and
2142           the configuration files the runtime version that the app supports.
2143           Added support methods for reading app.exe.config. Added list of versions
2144           supported by the JIT. Added two new methods: mono_init_from_assembly,
2145           which initializes the runtime and determines the required version from
2146           the provided exe file, and mono_init_version, which initializes
2147           the runtime using the provided version.
2148         * icall.c: Get machine.config from version-specific directory.
2149         * reflection.c: When generating an image, embed the version number
2150           of the current runtime.
2151
2152 2004-07-28  Dick Porter  <dick@ximian.com>
2153
2154         * socket-io.c
2155         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2156         returned sockaddr size before creating the remote address object.
2157         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2158         61608.
2159
2160 2004-07-28  Dick Porter  <dick@ximian.com>
2161
2162         * locales.c (string_invariant_compare_char): Fix invariant char
2163         compares between upper and lower cases.  Fixes bug 61458.
2164
2165 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2166         
2167         * marshal.c: actually cache stelem.ref wrappers.
2168         
2169 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2170
2171         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2172         sections and remove the mono_cli_rva_map () function.
2173
2174 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2175
2176         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2177         by Geoff Norton (<gnorton@customerdna.com>).
2178
2179 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2180
2181         * class.c: fix class loads for pointer types (typeof(int) !=
2182         typeof(int*)).
2183
2184 2004-07-27  Martin Baulig  <martin@ximian.com>
2185
2186         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2187         reading the debugging information from an external ".mdb" file.
2188
2189 2004-07-24  Martin Baulig  <martin@ximian.com>
2190
2191         * reflection.c (mono_image_get_type_info): Only write a class
2192         layout entry if we actually have a size or a packing size.
2193
2194 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2195
2196         * reflection.c (type_get_fully_qualified_name): 
2197         insert cast to get type checking of ?: with non-gcc compilers
2198
2199 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2200
2201         * rand.c: use g_getenv for both lookups of
2202         MONO_EGD_SOCKET
2203
2204 2004-07-17  Martin Baulig  <martin@ximian.com>
2205
2206         * reflection.c (mono_reflection_bind_generic_method_parameters):
2207         Set `gmethod->reflection_info'.
2208
2209 2004-07-17  Martin Baulig  <martin@ximian.com>
2210
2211         * class.c (mono_class_create_from_typedef): Insert the newly
2212         created class into the hash table before computing the interfaces
2213         since we could be called recursively.
2214
2215 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2216
2217         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2218         function to implement stelem.ref in managed code
2219         * class-internals.h, debug-helpers.c: a new wrapper type
2220         for the above.
2221
2222 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2223
2224         * gc.c: allow GC handles to work even when no GC is compiled in.
2225         Fix part of bug #61134 (GetAddrOfPinnedObject).
2226
2227 2004-07-13  Peter Williams  <peter@newton.cx>
2228  
2229         * process.c (complete_path): Make sure we don't attempt to execute
2230         directories.
2231  
2232 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2233
2234         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2235           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2236           and will add/subtract the hour if needed
2237
2238 2004-07-12  Martin Baulig  <martin@ximian.com>
2239
2240         * reflection.c (mono_field_get_object): If we have
2241         `field->generic_info', take the attributes from
2242         `field->generic_info->generic_type'.    
2243
2244 2004-07-12  Martin Baulig  <martin@ximian.com>
2245
2246         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2247         This function must be called before initializing the runtime.
2248         (mono_debug_init_1): New function; call this after initializing
2249         the runtime, but before loading the assembly.  It tells the
2250         debugger to load corlib and the builtin types.
2251
2252         * mono-debug-debugger.c: Did some larger changes in the debugging
2253         code; support recursive class declarations, make sure we actually
2254         add all classes.
2255
2256 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2257
2258         * debug-helpers.c: undo my previous patch and fixed the real issue in
2259         ../mini/exceptions-x86.c
2260
2261 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2262
2263         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2264         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2265         called from other .cctors.
2266
2267 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2268
2269         * loader.c: Removed the mono_loader_wine_init hack now that we are
2270         doing a managed version of Windows.Forms.
2271
2272 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2273
2274         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2275         threadpool.c, threads.c: remove static data from rootset.
2276
2277 2004-07-09  Dick Porter  <dick@ximian.com>
2278
2279         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2280         Don't do any more processing if the matched length was 0.  It was
2281         increasing the size of the string before.  Fixes bug 61167.
2282
2283 2004-07-09  Dick Porter  <dick@ximian.com>
2284
2285         * socket-io.h:
2286         * socket-io.c
2287         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2288         Add support for SO_PEERCRED if its available.
2289
2290 2004-07-09  Peter Bartok <pbartok@novell.com>
2291         * loader.c: winelib.exe.so error message is now only displayed if
2292         MONO_DEBUG is set. To help us avoid questions when people are trying
2293         out the new Managed.Windows.Forms.
2294
2295 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2296
2297         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2298         for isinst and castclass wrappers.
2299
2300         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2301         to libmetadata from the JIT, so they could be used by the marshalling
2302         code and the interpreter.
2303
2304         * marshal.c: Register marshalling related JIT icalls here instead of
2305         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2306         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2307
2308         * metadata.h: Remove unneeded marshalling conversions.
2309
2310         * opcodes.c: Update for new opcodes.
2311         
2312 2004-07-08  Martin Baulig  <martin@ximian.com>
2313
2314         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2315         (mono_debug_get_domain_data): Make this function static.
2316
2317 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2318
2319         * gc.c, object.h: add nice GC handle API for embedders.
2320
2321 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2322
2323         * reflection.c: more changes for the new api
2324
2325         * object.c: When we reflect on a field w/ a constant value, it
2326         will not have a memory location, so we must access metadata. Also,
2327         allow easier reading of strings so that we can read them from
2328         the constant data.
2329
2330         * class.c (mono_class_layout_fields): no need for literal fields here.
2331
2332         * class-internals.h: api changes for const fields
2333
2334         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2335
2336 2004-07-06  Martin Baulig  <martin@ximian.com>
2337
2338         * mono-debug.h: Increment version number to 44.
2339
2340         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2341         now a gpointer, rewrote this whole method.
2342
2343         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2344         function.  Add information about the wrapper in a new "misc table".
2345
2346         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2347         for the new misc table.
2348
2349 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2350
2351         * metadata-internals.h image.c: Add a cache for helper signatures.
2352
2353         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2354
2355 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2356
2357         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2358         delegates from a delegate. Fixes #61033.
2359         
2360         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2361         marshalling of stringbuilder arrays. Fixes #59900.
2362
2363 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2364
2365         * icall.c: Add EnumBuilder:setup_enum_type icall.
2366
2367 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2368
2369         * icall.c: Added a new icall for the property version of
2370         OffsetOfStringData.
2371
2372 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2373
2374         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2375         it has a constant size across platforms.
2376
2377         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2378         stack trace.
2379
2380 2004-06-29  Martin Baulig  <martin@ximian.com>
2381
2382         * mono-debug.c (mono_debug_add_method): Protect the whole function
2383         in mono_debugger_lock(), not just parts of it.
2384
2385 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2386
2387         * reflection.c: make sure padding bytes in heaps are zeroed.
2388
2389 2004-06-24  David Waite  <mass@akuma.org>
2390
2391         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2392         image.c, loader.c, locales.c, marshal.c, metadata.c,
2393         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2394         string-icalls.c, threads.c: change to C90-style comments from C99 /
2395         C++ -style
2396
2397 2004-06-24  Dick Porter  <dick@ximian.com>
2398
2399         * threads.c
2400         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2401         return createdNew.  Fixes bug 60412.
2402
2403         * threads-types.h: 
2404         * icall.c: Add createdNew parameter to CreateMutex icall
2405
2406 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2407
2408         * reflection.c, object-internals.h: save default value in params.
2409
2410 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2411
2412         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2413         no need to build a new path combining that with the application base.
2414         Fixes bug #60442.
2415
2416 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2417
2418         * reflection.c: fixed minor standard compliance issues.
2419
2420 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2421
2422         * reflection.c: fixed issue with encoding some custom attributes
2423         (arrays in properties and fields, bug #60411).
2424
2425 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2426
2427         * reflection.c: fix start address when copying the public key token.
2428
2429 2004-06-23  Martin Baulig  <martin@ximian.com>
2430
2431         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2432         the `exc' object in a static object to put it into the GC's root set.
2433
2434 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2435
2436         * reflection.c: make mono_reflection_setup_internal_class ()
2437         callable a second time to setup a new parent class.
2438
2439 2004-06-23  Dick Porter  <dick@ximian.com>
2440
2441         * threads.c: Check for WAIT_IO_COMPLETION return values.
2442
2443 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2444
2445         * appdomain.c: Removed the g_free on the public key token. Now copy 
2446         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2447         * assembly.c: Added public key token string value when loading 
2448         assemblies. Fix bug #60439.
2449         * icall.c: Added missing informations (like public key) in 
2450         GetReferencedAssemblies. Fix #60519.
2451         * image.h: Changed definition for public key token from const char*
2452         public_tok_value to guchar public_key_token [17];
2453         * reflection.c: Updated for changes to public key token.
2454
2455 2004-06-22  Lluis Sanchez Gual
2456
2457         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2458         for the field in base classes.
2459
2460 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2461
2462         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2463         mark headers as not supported, they are installed only for use by the
2464         debugger.
2465
2466 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2467
2468         * *.c, *.h: avoid namespace pollution in public headers.
2469
2470 2004-06-21  Martin Baulig  <martin@ximian.com>
2471
2472         * exception.c (mono_get_exception_security): It's in
2473         "System.Security", not in "System".
2474
2475         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2476         the exception classes.
2477
2478 2004-06-21  Martin Baulig  <martin@ximian.com>
2479
2480         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2481         Protect the exception object from being finalized.
2482
2483 2004-06-21  Martin Baulig  <martin@ximian.com>
2484
2485         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2486         public function.
2487
2488 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2489
2490         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2491         if it was not loaded before. Fix parts of #60439.
2492
2493 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2494
2495         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2496         code that was broken since Ben's change: wrappers are now
2497         dependent on the method signature only again.
2498
2499 2004-06-21  Martin Baulig  <martin@ximian.com>
2500
2501         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2502         added interface support.
2503
2504 2004-06-21  Martin Baulig  <martin@ximian.com>
2505
2506         * class.c (mono_vtable_get_static_field_data): New public method.
2507
2508 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2509
2510         * filewatcher.c : Windows build fix to be compliant with API changes.
2511
2512 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2513
2514         * class.h, class.c: more accessors.
2515         * metadata.h, metadata.c: prepare for hiding MonoType and
2516         MonoMethodSignature: people should use the accessors from now on
2517         outside of the tree.
2518
2519 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2520
2521         * *.c, *.h: more API cleanups.
2522
2523 2004-06-18  Jackson Harper  <jackson@ximian.com>
2524
2525         * assembly.c: Trace loading assemblies.
2526         * loader.c: Trace loading native libraries.
2527         * mono-config.c: Trace loading config files.
2528         
2529 2004-06-18  Dick Porter  <dick@ximian.com>
2530
2531         * locales.c: Tell ICU the lengths of strings, it can cope with
2532         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2533
2534 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2535
2536         * image.c: swapped name/filename;
2537
2538 2004-06-18  Martin Baulig  <martin@ximian.com>
2539
2540         * mono-debug-debugger.c (write_class): Write the parent class at
2541         the end of the header.
2542
2543 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2544
2545         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2546
2547 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2548
2549         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2550         (bundle_obj): New conditional define.
2551         (BUILT_SOURCES): Remove.
2552         ($(bundle_srcs)): Make parallel-make safe.
2553         (libmonoruntime_la_LIBADD): Make unconditional.
2554         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2555         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2556
2557 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2558
2559         * culture-info-tables.h: It was inconsistent with the latest
2560           supp info files.
2561
2562 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2563
2564         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2565         be loaded.
2566
2567         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2568         with gcc 2.95.
2569
2570 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2571
2572         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2573         cleaned up public header threads.h.
2574
2575 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2576
2577         * Makefile.am, *.c, *.h: more API cleanups.
2578
2579 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2580
2581         * Makefile.am: removed monosn from compilation.
2582         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2583         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2584         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2585         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2586         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2587         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2588
2589 2004-06-15  Jackson Harper  <jackson@ximian.com>
2590
2591         * assembly.c: Make locales lower case when searching the GAC for
2592         assemblies. gacutil will always make locales lowercase when
2593         installing so this effectively makes them case insensitive.
2594         
2595 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2596
2597         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2598         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2599           parameter which allows to choose whether the wait can be interrupted or 
2600           not. Also added the method mono_monitor_enter(), which locks the monitor
2601           using an infinite wait and without allowing interruption.
2602           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2603           interrupted.
2604         * object.h: Added new fields in MonoThread. suspend_event holds the event
2605           used to susped/resume the thread. synch_lock is the lock object to use for
2606           modifying the thread state.
2607         * threads.c: Use the new synch_lock object for locking, instead of "this",
2608           which can generate deadlocks.
2609           Moved thread state change in Thread.Sleep and Thread.Join from managed
2610           to unmanaged code. This avoids a deadlock when the thread was suspended
2611           just after acquiring the thread lock.
2612           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2613           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2614           which is not fully implemented in the io-layer.
2615         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2616
2617 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2618
2619         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2620         threads-types.h: more API cleanups.
2621
2622 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2623
2624         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2625         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2626         threadpool.c, threads.c: first pass at the exported API cleanup.
2627
2628 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2629
2630         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2631
2632 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2633
2634         * icall.c: added internalGetHome.
2635
2636 2004-06-14  Dick Porter  <dick@ximian.com>
2637
2638         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2639         possible to return successfully when '.' or '..' were the only
2640         entries in a directory, but were skipped.  The MonoIOStat was not
2641         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2642         Fixes bug 59574.
2643
2644 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2645
2646         * reflection.c: make binaries run on .Net 1.1 by default.
2647
2648 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2649
2650         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2651
2652 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2653
2654         * marshal.c: keep track of struct size with explicit layout
2655         (bug #59979).
2656
2657 2004-06-12  Martin Baulig  <martin@ximian.com>
2658
2659         * mono-debug-debugger.c: Comment out a debugging g_message().
2660
2661 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2662
2663         * reflection.c, reflection.h: do not free custom attrs that are cached.
2664         * icall.c: use braces to make code clearer.
2665
2666 2004-06-11  Martin Baulig  <martin@ximian.com>
2667
2668         * class.h (MonoInflatedField): New type.
2669         (MonoClassField): Replaced `MonoType *generic_type' with
2670         `MonoInflatedField *generic_info'.
2671
2672         * icall.c
2673         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2674
2675 2004-06-11  Martin Baulig  <martin@ximian.com>
2676
2677         * reflection.c (mono_image_create_method_token): Correctly encode
2678         varargs methods.
2679
2680 2004-06-11  Martin Baulig  <martin@ximian.com>
2681
2682         * metadata.c (mono_metadata_parse_method_signature): When parsing
2683         a MethodDef which has VarArgs, also set sentinelpos if we don't
2684         have any parameters.
2685
2686 2004-06-11  Martin Baulig  <martin@ximian.com>
2687
2688         * verify.c (mono_method_verify): In CEE_CALL, use
2689         mono_method_get_signature() to get the method's signature, unless
2690         we're a PInvoke method.
2691
2692 2004-06-10  Jackson Harper  <jackson@ximian.com>
2693
2694         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2695         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2696         logical name as the supplied path is just a prefix to the gac not
2697         the direct path to it.
2698         
2699 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2700
2701         * reflection.c: make the token for a created method match
2702         the token of the MethodBuilder it was created from
2703         (IKVM requires this behaviour now).
2704
2705 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2706
2707         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2708         reflection.c, socket-io.c: leak fixes.
2709
2710 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2711
2712         * icall.c: handle sentinel pos in vararg methods in position different
2713         from 0.
2714
2715 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2716
2717         * culture-info-tables.h: freshly generated.
2718
2719 2004-06-09  Martin Baulig  <martin@ximian.com>
2720
2721         * loader.c (mono_get_method_constrained): Call `mono_class_init
2722         (constrained_class)'.   
2723
2724 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2725
2726         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2727         any methods. Fixes #59629.
2728
2729 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2730
2731         * culture-info-tables.h: reflecting locale-builder updates.
2732
2733 2004-06-08  Dick Porter  <dick@ximian.com>
2734
2735         * object.h:
2736         * locales.c: Fixed compile warnings, including a real bug in
2737         CompareInfo_internal_compare.
2738         
2739 2004-06-08  Dick Porter  <dick@ximian.com>
2740
2741         * locales.c
2742         (ves_icall_System_Globalization_CompareInfo_internal_index):
2743         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2744         Double-check the resuls of usearches, because ICU currently
2745         ignores most of the collator settings here.  Fixes bug 59720.
2746         
2747 2004-06-08  Dick Porter  <dick@ximian.com>
2748
2749         * locales.c
2750         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2751         Fix memory leak and segfault-causing typo.  No idea how this one
2752         lasted so long without being noticed.
2753
2754 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2755
2756         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2757         any methods. Fixes #59629.
2758
2759 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2760
2761         * assembly.c:
2762         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2763         own the critical section before). Removed dead code (that's done
2764         in the preload hook).
2765
2766         (mono_assembly_load_with_partial_name): call the preload hook.
2767
2768 2004-06-08  Martin Baulig  <martin@ximian.com>
2769
2770         * metadata.c (mono_metadata_signature_alloc): Default
2771         `sentinelpos' to -1.
2772
2773         * reflection.c (mono_image_get_array_token): Likewise.
2774
2775 2004-06-08  Martin Baulig  <martin@ximian.com>
2776
2777         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2778
2779         * metadata.c (mono_metadata_parse_method_signature): When parsing
2780         a MethodDef which has VarArgs, set sentinelpos.
2781
2782         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2783         `gint16' since we're using -1 for non-varargs methods.
2784
2785         * reflection.c
2786         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
2787         (method_encode_signature): Added varargs support.
2788         (method_builder_encode_signature): Likewise.
2789         (mono_image_get_varargs_method_token): New static method.
2790         (mono_image_create_method_token): New public method; this is
2791         called via an icall instead of mono_image_create_token() when
2792         calling a varargs method.       
2793
2794 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
2795
2796         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
2797
2798 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2799
2800         * culture-info-tables.h : Reflecting the latest locale-builder that
2801           fixed empty array representation ({} to {0}).
2802
2803 2004-06-07  Jackson Harper  <jackson@ximian.com>
2804
2805         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
2806         looking up extra gac paths. This allows MONO_GAC_PATH to act
2807         exactly like a prefix.
2808         
2809 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2810
2811         * reflection.c (mono_reflection_type_from_name): Make a copy of the
2812         type name before modifying it. Fixes #59405.
2813
2814 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2815
2816         * culture-info.h: added fields for "all datetime patterns".
2817         * locales.c: (  ves_icall_System_Globalization_CultureInfo
2818           _construct_datetime_format ()): fill xxx_patterns fields.
2819         * object.h: added fields for "all datetime patterns" to
2820           MonoDateTimeFormatInfo.
2821         * culture-info-tables.h: reflecting locale-builder updates.
2822
2823 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2824
2825         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
2826         the event has no add and remove methods. Fixes #59629.
2827
2828 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
2829
2830         * object.c: Fixed possible integer overflow when allocating large
2831         strings.
2832
2833 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2834
2835         * culture-info-tables.h: reflecting locale-builder updates.
2836
2837 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2838
2839         * culture-info-tables.h: reflecting locale-builder updates.
2840
2841 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
2842
2843         * culture-info-tables.h: reflecting locale-builder updates.
2844
2845 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
2846
2847         * threads.c: Made Thread.Sleep abortable.
2848
2849 2004-06-02  Martin Baulig  <martin@ximian.com>
2850
2851         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
2852
2853         * debug-mono-symfile.h: Bumped symbol file version number to 37.
2854
2855 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
2856
2857         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
2858
2859 2004-05-30  Jackson Harper  <jackson@ximian.com>
2860
2861         * reflection.c: Do not hardcode assembly versions or public key
2862         tokens anymore. All of this except the corlib section was dead
2863         code anyways.
2864         
2865 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
2866
2867         * object.c (mono_runtime_invoke_array): Automatically create boxed
2868         objects for byref valuetypes if needed. Fixes #59300.
2869         
2870         * object.c (mono_method_return_message_restore): Handle 
2871         MONO_TYPE_OBJECT as well.
2872
2873 2004-05-28  Jackson Harper  <jackson@ximian.com>
2874
2875         * reflection.c: The modified type encoding was causing build
2876         problems. Reverted for now.
2877         
2878 2004-05-28  Jackson Harper  <jackson@ximian.com>
2879
2880         * reflection.c/h: Take an assembly ref so that we dont create
2881         fully qualified names when encoding types in the same assembly as
2882         the custom attribute being emitted.
2883         * appdomain.c: Increment version number.
2884         
2885 2004-05-26  Duncan Mak  <duncan@ximian.com>
2886
2887         * icall.c
2888         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
2889         Set the full version number (major, minor, build, revision).
2890
2891 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
2892
2893         * marshal.c (emit_struct_conv): increment src/dst after blit
2894         (mono_marshal_get_managed_wrapper,
2895         mono_marshal_get_native_wrapper): make sure we have marshalling
2896         info before marshalling params (info computation affects
2897         blittable)
2898
2899         * class.c (class_compute_field_layout): correctly deal with
2900         blittable
2901         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
2902         value types (as per what windows dows by default)
2903         (mono_class_setup_mono_type): System.ValueType is blittable
2904         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
2905         blittable
2906
2907         * marshal.c (mono_marshal_load_type_info): flag types  as
2908         non-blittable if the native layout doesn't match the managed
2909         layout
2910
2911 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2912
2913         * appdomain.c: don't add stuff in the private search path that is
2914         above the application base. If application base is not set, there's
2915         no private search path.
2916
2917 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
2918
2919         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
2920         byref struct arguments in native->managed marshalling.
2921
2922 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
2923
2924         * marshal.c (mono_marshal_get_runtime_invoke): correctly
2925         cache methods using signature (special case for methods
2926         that are value type or string class)
2927         
2928         * image.c (mono_image_close): clean up allocated GSList's
2929         in runtime_invoke_cache.
2930
2931 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2932
2933         * mono-config.c: set the correct path for mono_cfg_dir on windows when
2934         there's no MONO_CFG_DIR environment variable defined.
2935
2936 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2937
2938         * threads.c: windows version must be >= 0x0500 to include OpenThread.
2939
2940 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
2941
2942         * threadpool.c: Really wait for 500ms after the async call, even if the wait
2943           is interrumped.
2944         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
2945           before waiting for it, and call CloseHandle after the wait to unref it.
2946           This will make sure that handles are not disposed too early.
2947
2948 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2949
2950         * appdomain.c:
2951         * appdomain.h:
2952         * icall.c: removed
2953         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
2954         needed now.
2955
2956         * object.c: se the application_base only for the domain that runs
2957         Main. Fixes bug #59216,
2958
2959 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2960
2961         * appdomain.c:
2962         * object.c: only the domain in which Main is run have
2963         SetupInformation.ConfigurationFile set, so moved a few lines from
2964         appdomain.c to object.c.
2965
2966 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2967
2968         * appdomain.c: we tried to load [name].(dll|exe), but according
2969         to bug #57710, we must also try [culture]/[name].(dll|exe) and
2970         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
2971         There's a test case attached to bug #58922.
2972
2973 2004-05-27  Dick Porter  <dick@ximian.com>
2974
2975         * icall.c:
2976         * file-io.c: Implemented icalls for locking and unlocking regions
2977         in a file.
2978         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
2979         FALSE on error (fixes both compiler warning and real bug.)
2980
2981 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
2982
2983         * culture-info-tables.h: reflecting locale-builder updates.
2984
2985           (Added missing ChangeLog entry for 05/26)
2986
2987 2004-05-27  Jackson Harper  <jackson@ximian.com>
2988
2989         * locales.c: Fix some cut and paste errors.
2990         
2991 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2992
2993         * mono-config.c: set the correct path for config. directory on windows.
2994
2995 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
2996
2997         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
2998           on win32.
2999
3000 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3001
3002         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3003         from pinvoke functions.
3004         
3005         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3006
3007 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3008
3009         * culture-info-tables.h: reflecting locale-builder updates.
3010
3011 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3012
3013         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3014         #59086.
3015
3016 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3017
3018         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3019         * icall.c: Modified icalls for RNG.
3020         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3021         Windows (CryptoAPI).
3022
3023 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3024
3025         * locales.c: Fix build.
3026
3027 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3028
3029         * culture-info-tables.h: reflecting locale-builder updates.
3030
3031 2004-05-25  Jackson Harper  <jackson@ximian.com>
3032
3033         * locales.c: When creating the current culture use the $LANGs
3034         specific culture. So DateTimeFormat and NumberFormat entries are created.
3035         
3036 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3037
3038         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3039         a char array as parameter.
3040
3041 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3042
3043         * image.c: In mono_image_open(), always use an absolute path name to
3044           look for already loaded images.
3045
3046 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3047
3048         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3049         missing in the windows build (like older cygwin include files).
3050
3051 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3052
3053         * icall.c: Fixed check for possible integer overflow in Buffer_
3054         BlockCopy icall. Replaced comments style // by /* */.
3055
3056 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3057
3058         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3059         
3060         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3061         check after MONO_VTADDR. Fixes pinvoke2.exe.
3062
3063         * marshal.h marshal.c metadata.h: Add beginnings of support for
3064         ftnptr -> delegate marshalling.
3065
3066 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3067
3068         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3069         * threads.c: Fix warnings.
3070
3071 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3072
3073         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3074         * icall.c: Registered icalls for Suspend and Resume.
3075         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3076           Thread.Abort.
3077         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3078         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3079         * process.c: Use WaitForSingleObjectEx.
3080         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3081           checkpoints.
3082         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3083           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3084           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3085           background threads. Added basic support for Abort in Windows.
3086           Start new threads using a managed delegate invoke wrapper. This wrapper
3087           has an interruption checkpoint that is needed since an interruption
3088           can be requested before the thread leaves the unmanaged code that starts 
3089           the thread.
3090         * marshal.c: Added interruption checkpoint after every native call, and
3091           also before managed calls for wrappers called from unmanaged code to
3092           go into managed code.
3093         * object.h: Added new field in MonoThread to keep track of interruption
3094           requests.
3095
3096 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3097
3098         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3099         calls.
3100
3101 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3102
3103         * appdomain.c:
3104         * assembly.c:
3105         * gc.c:
3106         * locales.c:
3107         * mono-config.c:
3108         * rand.c: getenv -> g_getenv (windows!)
3109
3110         * process.c: complete_path is also used on non-windows platforms.
3111
3112 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3113
3114         * icall.c: new signature for Process_Start.
3115
3116         * process.[ch]: new signature for Process_Start. If we're on windows
3117         and UseShellExecute is false, we have to search for the program by
3118         ourselves if we don't get a full path.
3119
3120 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3121
3122         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3123         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3124
3125 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3126
3127         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3128         Fixes bug #58373.
3129
3130 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3131
3132         * process.c: use double quotes to quote program name and arguments on
3133         windows. Fixes bug #58575.
3134
3135 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3136
3137         * file-io.c: don't return "." and ".." when using windows Find*File.
3138
3139 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3140
3141         * marshal.c: Don't pass wrappers to message init because method 
3142         addressed used to lookup metadata. part of remoting[2|3] fix.
3143
3144 2004-05-15  Jackson Harper  <jackson@ximian.com>
3145
3146         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3147         path is essentially the same as MONO_PATH except that it points to
3148         GACs instead of lib directories.
3149         * loader.h: The user gac is gone so we dont need function to
3150         enable/disable it.
3151         * mono-config.c: user gac option is now gone.
3152         
3153 2004-05-15  Jackson Harper  <jackson@ximian.com>
3154
3155         * culture-info.h: Make defines more consistent, add calendar data
3156         to the culture info table.
3157         * culture-info-tables.h: Add basic calendar data. Basically
3158         everyone gets default gregorian until all the data is
3159         updated.
3160         * locales.c: Use the new consistent defines. Set calendar data for
3161         culture info objects.
3162         * object.h: add a field for calendar data to CultureInfo
3163         
3164 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3165
3166         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3167         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3168         a signature.
3169         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3170         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3171         an extra param that is the pointer of the method to invoke. The IL for
3172         the invoke method is no longer specific to the method, but to the
3173         signature of the method. Thus, we can share the same code for multiple
3174         methods. This reduces the number of methods that have to be compiled.
3175
3176 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3177
3178         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3179
3180         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3181
3182         * icall.c: Optimize Buffer.BlockCopy.
3183
3184 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3185
3186         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3187         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3188         quote). Changed them to "MMMM yyyy".
3189
3190 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3191
3192         * rand.c
3193         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3194
3195 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3196
3197         * reflection.h: Updated after changes to managed structures.
3198
3199         * appdomain.c: Bump corlib version.
3200
3201 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3202
3203         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3204         windows.
3205
3206 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3207
3208         * Makefile.am: link to ../os/libmonoos.la on windows.
3209
3210         * assembly.c:
3211                 -If MONO_DEBUG, warn about non-existing directories in
3212                 MONO_PATH.
3213                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3214                 compile time variable.
3215                 -Removed init_default_path and call mono_set_rootdir from
3216                 libmonoos.a instead (windows only).
3217
3218         * assembly.h: declare mono_assembly_getrootdir().
3219
3220         * domain.c:
3221         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3222
3223         * loader.c: s/getenv/g_getenv/
3224
3225 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3226
3227         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3228
3229         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3230
3231         * metadata.h: Add new marshalling conversions.
3232
3233         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3234         function.
3235
3236         * reflection.c (mono_reflection_get_type): Lookup the type in all
3237         modules of a multi-module assembly. Fixes #58291.
3238
3239 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3240
3241         * threads.c: Before aborting a background, set the StopRequested
3242         state.  This avoids throwing the Abort exception.
3243         In mono_thread_manage, don't continue with the shutdown until all
3244         aborted threads have actually stopped.
3245
3246 2004-05-10  Jackson Harper  <jackson@ximian.com>
3247
3248         * locales.c: Remove the modifier from culture names.
3249         
3250 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3251
3252         * Makefile.am: monosn is not installed any more. It has been deprecated
3253         in favor of sn.
3254
3255 2004-05-07  Jackson Harper  <jackson@ximian.com>
3256
3257         * locales.c
3258         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3259         Fix array construction, add bailout if the length is 0.
3260
3261 2004-05-07  Dick Porter  <dick@ximian.com>
3262
3263         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3264         machine doesn't have a DNS entry.  Patch by Urs Muff
3265         (umuff@quark.com), fixes bug 57928.
3266
3267 2004-05-06  Jackson Harper  <jackson@ximian.com>
3268
3269         * reflection.c: Handle null PublicTokens properly. alloc mem for
3270         assembly names culture so we dont crash when freeing it.
3271         
3272 2004-05-06  Jackson Harper  <jackson@ximian.com>
3273
3274         * assembly.c: Check the usergac when loading with partial names.
3275         
3276 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3277
3278         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3279         does nothing for now (not required for Linux/Windows) but the class
3280         library can call it (and a newer or modified runtime could need it).
3281         * icall.c: Registred icall.
3282
3283 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3284
3285         * loader.c: prints a message on module loading error we set MONO_DEBUG
3286         environment variable.
3287
3288 2004-05-05  Jackson Harper  <jackson@ximian.com>
3289
3290         * appdomain.c: Handle PublicKeyToken=null properly.
3291         
3292 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3293
3294         * environment.c|h: Added icall ves_icall_System_Environment_
3295         GetOSVersionString to get the current OS version as a string.
3296         * icall.c: Registred icall.
3297
3298 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3299
3300         * object.c: in mono_object_get_virtual_method(), take into account that
3301         non-virtual methods don't have a slot in the vtable. Check needed when
3302         the object is a proxy.
3303
3304 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3305
3306         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3307         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3308
3309         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3310
3311         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3312         passed when a valuetype is expected.
3313
3314         * object.c (mono_unhandled_exception): Only set the exit code if the
3315         exception happens in the main thread. Fixes thread5.exe.
3316
3317         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3318         invalid names. Fixes #58047.
3319
3320 2004-05-03  Jackson Harper  <jackson@ximian.com>
3321
3322         * assembly.c: This line was committed accidently and is unneeded.
3323         
3324 2004-05-03  Jackson Harper  <jackson@ximian.com>
3325
3326         * icall.c: Add new icall for Assembly::LoadWithPartialName
3327         * assembly.c/.h: new function that probes the GAC to load partial
3328         assembly names by Paolo Molaro.
3329         
3330 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3331
3332         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3333         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3334         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3335         full type name.
3336
3337 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3338
3339         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3340         * reflection.c: fix bug when parsing a full type name and Version is not
3341         the last thing in the string.
3342
3343 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3344
3345         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3346         crashes when it is freed.
3347
3348 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3349
3350         * assembly.c: print the compat warning to stderr.
3351
3352 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3353
3354         * assembly.c (mono_assembly_load_references): Add a compatibility
3355         hack to run old applications that might be still referencing the
3356         3300-based assemblies, only do this for System.xxx.
3357
3358 2004-05-01  Jackson Harper  <jackson@ximian.com>
3359
3360         * appdomain.c: If the culture is neutral we set it to "".
3361         
3362 2004-04-29  Jackson Harper  <jackson@ximian.com>
3363
3364         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3365
3366 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3367  
3368         * string-icalls.c: added low overhead function for copying chars
3369         * icall.c: added needed icall for the above function
3370  
3371 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3372
3373         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3374         Environment.GetLogicalDrives.
3375
3376 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3377
3378         * rand.c: try and talk to egd or prngd
3379         for random bytes if opening devices fail.
3380
3381 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3382
3383         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3384         alignment for the type using the native alignment of its members 
3385         instead of using klass->min_align.
3386
3387         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3388
3389 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3390
3391         * file-io.c:
3392         * socket-io.c: added check for sys/aio.h.
3393
3394 2004-04-28  Dick Porter  <dick@ximian.com>
3395
3396         * threads.c: Don't abort a thread thats already aborting, when
3397         terminating everything.
3398
3399 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3400
3401         * icall.c: added 2 new async calls for Socket.
3402
3403         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3404         IO on *nix systems.
3405
3406         * threadpool.c: removed unused variable.
3407
3408 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3409
3410         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3411
3412 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3413
3414         * locales.c: put back string_invariant_tolower () and
3415         string_invariant_toupper ().
3416
3417 2004-04-26 David Waite <mass@akuma.org>
3418
3419         * file-io.h:
3420         * socket-io.h:
3421         * threads.h:
3422         * unicode.h: remove comma from end of enumeration declarations
3423
3424 2004-04-26 David Waite <mass@akuma.org>
3425
3426         * debug-mono-symfile.h:
3427         * decimal.c:
3428         * mono_debug.h:
3429         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3430
3431
3432 2004-04-26  Jackson Harper  <jackson@ximian.com>
3433
3434         * appdomain.c: Increment version number.
3435         
3436 2004-04-26  Jackson Harper  <jackson@ximian.com>
3437
3438         * appdomain.c: Set assembly references public token value when
3439         PublicKeyToken is specified, not the hash_value. Free public token
3440         values when free assembly name data. Previously the public key
3441         token was hex decoded, however we are using hex encoded public key
3442         tokens, so this is not neccasary.
3443         * assembly.c: Lookup assemblies in the gac if their public token
3444         value is set. Add function to allow enabling user gac
3445         lookups. Specify whether or not the assembly was loaded from the
3446         GAC. Compare full assembly names when checking the cache for
3447         assemblies (Temporarily disabled see comment in code). Remove
3448         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3449         specifies trace-loader they get extra info to stdout on the
3450         loading of assemblies.
3451         * image.h: Add a field for an assembly references public token
3452         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3453         whether an assembly has been loaded from the GAC.
3454         * image.c: Remove a corlib -> mscorlib name mapping.
3455         * loader.h: Add function to enable/disable the user gac.
3456         * mono-config.c: Check if the usergac is enabled in the config
3457         file.
3458         * icall.c: New icall to determine whether or not an assembly has
3459         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3460         * tabldefs.h: Add constant for assemblyref flag that specifies a
3461         full public key is used instead of a public token.
3462         * reflection.c: Remove mscorlib -> corlib mappings. Set
3463         PublicTokenValue instead of hash value. This value is a hex
3464         string so it does not need to be expanded.
3465
3466 2004-04-26  Martin Baulig  <martin@ximian.com>
3467
3468         * mono-debug-debugger.c (mono_debugger_initialize): Set
3469         `mono_debugger_initialized' before calling mono_debug_lock().
3470
3471 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3472
3473         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3474           InternalToUpper/InternalToLower.
3475         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3476           removed invariant culture shortcut.  This is now done in managed code.
3477         * locales.c: (string_invariant_toupper/tolower) removed.
3478
3479 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3480
3481         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3482         Added Poll internal call.
3483
3484         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3485         call for Poll. Select was too heavy for polling a single socket.
3486
3487         * threadpool.[ch]: added mono_threadpool_cleanup.
3488         * threads.c: use it. Don't use Thread_Abort on windows.
3489
3490 2004-04-23  Martin Baulig  <martin@ximian.com>
3491
3492         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3493
3494 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3495
3496         * icall.c: Registred new icalls for key pair protection and added an
3497         icall for Environment.GetFolderPath on Windows.
3498         * security.c|h: Added new icalls for key pair protection.
3499
3500 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3501
3502         * socket-io.c: don't display the non-supported family warning for known
3503         families. Now this is not displayed on windows when checking support
3504         for IPv4/IPv6.
3505
3506 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3507
3508         * class.c: don't display the layout warning for static fields.
3509
3510 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3511
3512         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3513         * locales.c, locales.h: Added new icalls for culture-specific
3514         Char.ToLower and Char.ToUpper.
3515
3516 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3517
3518         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3519         by David Waite.
3520
3521 2004-04-20  Martin Baulig  <martin@ximian.com>
3522
3523         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3524         of the type name before passing it to mono_reflection_type_from_name().
3525
3526 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3527
3528         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3529         encodings here. Fixes #56965.
3530
3531 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3532
3533         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3534         fix test on strstr result not that I can see anything that
3535         relies on the result.
3536
3537 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3538
3539         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3540         Fixes #57081.
3541
3542         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3543
3544         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3545         function to determine which marshalling to use for strings. Fixes
3546         #56965.
3547
3548         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3549
3550         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3551
3552 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3553
3554         * icall.c: #include mono-config.h
3555
3556 2004-04-15  Jackson Harper  <jackson@ximian.com>
3557
3558         * culture-info-tables.h: Fix date formats for en-US culture.
3559         
3560 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3561
3562         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3563         ThreadPool.SetMinThreads.
3564         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3565         ThreadPool.SetMinThreads.
3566
3567 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3568
3569         * mono-config.c: also load the .config file in the directory
3570         where the assembly was found.
3571
3572 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3573
3574         * assembly.c: load per-assembly config files.
3575         * icall.c: decrapified code to get the config dir and moved to
3576         mono-config.c.
3577         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3578         per-assembly config files. When doing a dll map lookup give precedence
3579         to the per-assembly data.
3580
3581 2004-04-14  Martin Baulig  <martin@ximian.com>
3582
3583         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3584         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3585         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3586
3587         * mono-debugger-debugger.c: While the debugger is locked, remember
3588         whether the symbol tables have changes and send one single
3589         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3590
3591 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3592
3593         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3594
3595         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3596         function.
3597
3598         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3599         account when marshalling string arrays. Fixes #56965.
3600
3601 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3602
3603         * icall.c: Add new icalls mapping for security.
3604         * security.c|h: Add internal calls for WindowsIdentity,
3605         WindowsImpersonationContext and WindowsPrincipal.
3606
3607 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3608
3609         * class.c: Added comment to ensure the System.MonoDummy class
3610         is removed when no longer necessary
3611
3612 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3613
3614         * appdomain.c: Pass arguments to the bootstraping exceptions to
3615         minimize JITed methods at boot
3616
3617         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3618         second string to be null.
3619
3620         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3621         Change the protocol to minimize the JIT methods at startup.  Now
3622         it Returns the internal codepage, if the value of "int_code_page"
3623         is 1 at entry, and we can not compute a suitable code page
3624         number, returns the code page as a string.
3625
3626 2004-04-13  Jackson Harper  <jackson@ximian.com>
3627
3628         * culture-info-tables.h: Fix number of decimal digits for all
3629         english locales.
3630
3631 2004-04-13  Jackson Harper  <jackson@ximian.com>
3632
3633         * icall.c: Clairfy out of sync error message. It is not always
3634         your corlib that is out of sync.
3635
3636 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3637
3638         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3639         properties when only the set accessor is overriden. Fixes #55874.
3640
3641 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3642
3643         * assembly.c (mono_assembly_load_references): Make this thread safe.
3644         Fixes #56327.
3645
3646 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3647
3648         * monosn.c: Add missing initialization calls.
3649
3650 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3651
3652         * locales.c:
3653         ves_icall_System_Globalization_CultureInfo_construct_number_format
3654         Fix g_assert so it compiles on fussier compilers re int/ptr
3655         mismatch
3656
3657 2004-04-08  Dick Porter  <dick@ximian.com>
3658
3659         * socket-io.h:
3660         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3661         53992.  Also rearrange the code so that the internal calls return
3662         an error value and exceptions are thrown from managed code.
3663
3664         * icall.c: Add type info to the socket icalls.
3665
3666 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3667
3668         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3669         owes me a beer.
3670
3671 2004-04-07  Martin Baulig  <martin@ximian.com>
3672
3673         * class.c (mono_class_from_generic_parameter): Don't default
3674         `klass->parent' to `mono_defaults.object_type'.
3675
3676 2004-04-07  Martin Baulig  <martin@ximian.com>
3677
3678         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3679         `param->pklass->reflection_info'.       
3680
3681 2004-04-07  Jackson Harper  <jackson@ximian.com>
3682
3683         * culture-info-tables.h: Fix date separator symbol.
3684         
3685 2004-04-07  Martin Baulig  <martin@ximian.com>
3686
3687         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3688         from System.Type to System.MonoType.
3689
3690 2004-04-07  Martin Baulig  <martin@ximian.com>
3691
3692         * reflection.h
3693         (MonoReflectionGenericParam): Added `has_reference_type' and
3694         `has_value_type' fields.
3695
3696         * reflection.c (mono_image_get_generic_param_info): Encode the
3697         correct flags if we have the `class' or `struct' constraint.
3698
3699 2004-04-07  Martin Baulig  <martin@ximian.com>
3700
3701         * reflection.h
3702         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3703
3704 2004-04-07  Jackson Harper  <jackson@ximian.com>
3705
3706         * appdomain.c: Revert extra patches, just wanted to bump the
3707         version number.
3708         
3709 2004-04-07  Jackson Harper  <jackson@ximian.com>
3710
3711         * Makefile.am: Add culture-info private headers.
3712         * icall.c: Add new icalls for contructing locales.
3713         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3714         * locales.h: Declare new culture info construction methods.
3715         * object.h: Add new fields used to avoid the CultureMap to
3716         MonoCultureInfo.
3717         * culture-info.h: Definition of structs used in the culture info
3718         tables.
3719         * culture-info-tables.h: Autogenerated tables that contain culture
3720         info data. This file was generated with the locale-builder tool.
3721         * appdomain.c: Incement corlib version number.
3722         
3723 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3724
3725         * appdomain.c: (mono_runtime_init) move mono_thread_init
3726         to before mono_object_new calls so critical sections
3727         are initialized before use.
3728
3729 2004-04-07  Martin Baulig  <martin@ximian.com>
3730
3731         * icall.c
3732         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3733         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3734         (ves_icall_MonoGenericParam_initialize): Removed.
3735         (monogenericparam_icalls): Removed.
3736         (generictypeparambuilder_icalls): Added new table for
3737         System.Reflection.Emit.GenericTypeParameterBuilder.
3738
3739         * reflection.c
3740         (mono_reflection_define_generic_parameter): Removed.
3741         (mono_reflection_initialize_generic_parameter): This is now called
3742         from GenericTypeParameterBuilder's .ctor.
3743
3744 2004-04-06  Martin Baulig  <martin@ximian.com>
3745
3746         * class.c (mono_class_init): Don't inflate nested classes in a
3747         generic instance.
3748         (mono_type_get_name_recurse): Include the generic arguments for
3749         generic instances and generic type declarations.
3750         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3751         (_mono_class_get_instantiation_name): Removed.
3752         (mono_class_create_generic): Always use `gklass->name' as our name.
3753
3754         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3755
3756         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3757         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3758         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3759         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3760         closed generic methods here.
3761
3762         * reflection.c
3763         (mono_reflection_generic_inst_get_nested_types): Removed.
3764         (inflate_mono_method): Copy the generic parameters from the
3765         MonoMethodHeader into out MonoGenericMethod.
3766
3767 2004-04-06  Martin Baulig  <martin@ximian.com>
3768
3769         * row-indexes.h
3770         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3771
3772         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3773
3774         * reflection.c (build_compressed_metadata): If we have any entries
3775         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3776         set the header version to 1.1.
3777
3778 2004-04-06  Martin Baulig  <martin@ximian.com>
3779
3780         * class.c (mono_class_init): If we're a generic instance,
3781         initialize our nested classes, too.
3782         (_mono_class_get_instantiation_name): Deal with the new `!%d'
3783         suffix. 
3784
3785 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3786
3787         * process.c: quote the argument passed to the shell on windows.
3788
3789 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
3790
3791         * threads.c (mono_alloc_special_static_data): Allow this to be
3792         called during startup.
3793
3794 2004-04-02  Martin Baulig  <martin@ximian.com>
3795
3796         * icall.c
3797         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
3798
3799 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
3800
3801         * icall.c: Fix build.
3802
3803 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
3804
3805         * Makefile.am: Added security.c|h.
3806         * icall.c: Added icall for get_UserName;
3807         * security.c: New file for security related icalls. Added function
3808         get_UserName for System.Environment (fix #56144).
3809         * security.h: New. Header file for security.c
3810
3811 2004-04-02  Dick Porter  <dick@ximian.com>
3812
3813         * icall.c: Deleted the icalls that were obsoleted some time ago
3814         by the ICU string code, and which were mixed into the icall
3815         rearranging.  Fixes bug 55969.
3816
3817         * string-icalls.h: 
3818         * string-icalls.c: Deleted the code that those icalls reference.
3819
3820 2004-04-01  Martin Baulig  <martin@ximian.com>
3821
3822         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
3823
3824         * class.c (mono_class_from_generic_parameter): Don't set 
3825         TYPE_ATTRIBUTE_INTERFACE.
3826         (my_mono_class_from_generic_parameter): Likewise.
3827
3828 2004-04-01  Martin Baulig  <martin@ximian.com>
3829
3830         * loader.c (find_method): Added an optional `MonoClass *ic'
3831         argument to search in a specific interface.
3832         (mono_get_method_constrained): New public function.
3833
3834 2004-04-01  Martin Baulig  <martin@ximian.com>
3835
3836         * reflection.c (mono_image_get_generic_field_token): Use the
3837         `handleref' cache here.
3838
3839 2004-04-01  Martin Baulig  <martin@ximian.com>
3840
3841         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
3842
3843         * reflection.c (create_generic_typespec): Use the `typespec' hash
3844         here, not the `typeref' one.    
3845
3846 2004-04-01  Martin Baulig  <martin@ximian.com>
3847
3848         * class.c (mono_class_inflate_generic_type): Moved the
3849         functionality into a new static inflate_generic_type() which
3850         returns NULL if it didn't do anything.  Only increment the
3851         `mono_stats.inflated_type_count' if we actually inflated
3852         something.
3853         (mono_class_get_full): Check the classes type to see whether we
3854         need to inflate it; also inflate MONO_TYPE_(M)VAR.
3855
3856 2004-04-01  Jackson Harper  <jackson@ximian.com>
3857
3858         * reflection.c: Set culture for assembly references.
3859         
3860 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
3861
3862         * reflection.[ch], icall.[ch], Fix support for pinning variables.
3863
3864 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3865
3866         * assembly.c:
3867         (do_mono_assembly_open): the critical section also covers
3868         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
3869
3870 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3871
3872         * threads.c:
3873         (mono_manage_threads): abort the background threads when finishing.
3874         Fixes bug #47232.
3875
3876 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3877
3878         * gc.c: only close the done_event handle if there was no timeout.
3879         C-ified comments.
3880
3881 2004-03-30  Martin Baulig  <martin@ximian.com>
3882
3883         * icall.c (icall_entries): It's called "System.Activator", not
3884         "System.Activation".    
3885
3886 2004-03-30  Martin Baulig  <martin@ximian.com>
3887
3888         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
3889         (mono_class_create_from_typespec): Likewise.
3890
3891 2004-03-30  Martin Baulig  <martin@ximian.com>
3892
3893         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
3894         `has_ctor_constraint' and `initialized'.
3895
3896 2004-03-30  Martin Baulig  <martin@ximian.com>
3897
3898         * reflection.c (encode_new_constraint): New static function to add
3899         the constructor constraint attribute to a type parameter.
3900         (encode_constraints): Call encode_new_constraint() if necessary.
3901
3902         * reflection.h
3903         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
3904
3905         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
3906         
3907 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
3908
3909         * reflection.c, icall.c: add support for pinning variables. 
3910
3911 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
3912
3913         * marshal.c (mono_marshal_get_managed_wrapper):
3914         init bool local with zero rather than null.
3915
3916 2004-03-29  Martin Baulig  <martin@ximian.com>
3917
3918         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
3919         the "official" behavior here.
3920         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
3921
3922 2004-03-29  Martin Baulig  <martin@ximian.com>
3923
3924         * icall.c: Reflect latest API changes.
3925
3926 2004-03-29  Martin Baulig  <martin@ximian.com>
3927
3928         * loader.c (mono_get_method_from_token): Also call
3929         mono_metadata_load_generic_params () for abstract and interface
3930         methods; replace the type arguments in the method signature with
3931         the ones which are loaded from the metadata.
3932
3933 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
3934
3935         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
3936         of the lock is not the current thread. MS.NET don't do it, in spite of
3937         what the documentation says. See bug #56157.
3938
3939 2004-03-28  Martin Baulig  <martin@ximian.com>
3940
3941         * class.c (mono_class_init): Don't call init_properties() and
3942         init_events() for generic instances; set `prop->parent' when
3943         inflating properties.
3944
3945         * reflection.c (mono_generic_inst_get_object): Call
3946         `mono_class_init (ginst->klass)'.
3947         (mono_type_get_object): Only create a MonoGenericInst if your
3948         generic type is a TypeBuilder.
3949         (do_mono_reflection_bind_generic_parameters): Only set
3950         `ginst->is_dynamic' if our generic type is a TypeBuilder.
3951
3952 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
3953
3954         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
3955         Fixes #56091.
3956
3957 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3958
3959         * icall.c: added Kill_internal icall.
3960         * process.[ch]: added Kill_internal icall.
3961
3962 2004-03-25  Martin Baulig  <martin@ximian.com>
3963
3964         * class.h (MonoStats): Added `generic_instance_count',
3965         `inflated_method_count', `inflated_type_count' and
3966         `generics_metadata_size'.       
3967
3968 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3969
3970         * reflection.c: no warnings now.
3971
3972 2004-03-25  Martin Baulig  <martin@ximian.com>
3973
3974         * class.c (mono_class_get_full): New public function; does a
3975         mono_class_get(), but also takes a `MonoGenericContext *'.
3976
3977         * loader.c (mono_field_from_memberref): Renamed to
3978         `field_from_memberref', made static and added `MonoGenericContext *'
3979         argument.
3980         (mono_field_from_token): Added `MonoGenericInst *' argument.
3981         (method_from_memberef): Likewise.
3982         (mono_get_method_from_token): Likewise.
3983         (mono_get_method_full): New public function; does a
3984         mono_get_method(), but also takes a `MonoGenericContext *'.
3985
3986         * verify.c (mono_method_verify): Get the method's generic context
3987         and pass it to mono_field_from_token(), mono_get_method_full() and
3988         mono_class_get_full().
3989
3990 2004-03-25  Martin Baulig  <martin@ximian.com>
3991
3992         * class.c (mono_class_inflate_generic_type): Take a
3993         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
3994         `MonoGenericMethod *'.
3995
3996 2004-03-25  Martin Baulig  <martin@ximian.com>
3997
3998         * loader.h (MonoMethodInflated): Store the MonoGenericContext
3999         instead of the MonoGenericMethod here.
4000
4001 2004-03-25  Martin Baulig  <martin@ximian.com>
4002
4003         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4004         each time we create a new MonoGenericInst, we also create a new
4005         context which points back to us.
4006
4007         * class.c (inflate_method): Use `ginst->context' instead of
4008         creating a new context.
4009
4010         * loader.c (method_from_memberref): Use
4011         `klass->generic_inst->context' instead of creating a new context.
4012
4013 2004-03-25  Martin Baulig  <martin@ximian.com>
4014
4015         * class.h (MonoGenericContext): New struct.
4016         (MonoGenericMethod): Removed `generic_inst'.
4017
4018         * class.c (mono_class_inflate_generic_method): Take a
4019         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4020
4021 2004-03-25  Martin Baulig  <martin@ximian.com>
4022
4023         * loader.h (MonoMethodInflated): New typedef.
4024
4025         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4026         `generic_param_count' consume just 30 bits, added `is_inflated'
4027         and `has_type_parameters' flags (one bit each).
4028
4029         * class.c (mono_class_inflate_generic_method): Create a
4030         MonoMethodInflated instead of a MonoMethodNormal and set
4031         `is_inflated' in the method signature.
4032
4033         * class.h (MonoGenericMethod): Removed `generic_method'.
4034
4035 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4036
4037         * image.c: Make sure the name of a MonoImage is always an absolute path.
4038           This fixes bug #54415.
4039
4040 2004-03-24  Martin Baulig  <martin@ximian.com>
4041
4042         * class.c (mono_class_setup_vtable): If we're a generic instance,
4043         use our generic type's vtable size.
4044
4045 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4046
4047         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4048         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4049         problems.
4050
4051 2004-03-23  Martin Baulig  <martin@ximian.com>
4052
4053         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4054         `MonoEvent *events'.
4055
4056         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4057         (typebuilder_icalls): Added "get_event_info"; calls
4058         mono_reflection_event_builder_get_event_info(). 
4059
4060         * reflection.c (mono_reflection_generic_inst_initialize): Added
4061         `MonoArray *events'.
4062         (mono_reflection_event_builder_get_event_info): New function.
4063
4064 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4065
4066         * object.h: add mono_type_initialization_init
4067
4068         * object.c (mono_runtime_class_init): 
4069         implement class constructor synchronization rules
4070         to cope with threading issues.  
4071         add mono_type_initialization_init
4072
4073         * appdomain.c (mono_runtime_init): call 
4074         mono_type_initialization_init
4075
4076         * class.h: removing initializing field from MonoVTable
4077
4078 2004-03-23  Martin Baulig  <martin@ximian.com>
4079
4080         * class.c (my_mono_class_from_generic_parameter): Use
4081         `param->name' if it's not NULL. 
4082
4083 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4084
4085         * class.c: do not insert non-virtual methods in the vtable.
4086         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4087         that means the method is non-virtual. This never would have
4088         happened before.
4089
4090 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4091
4092         * profiler.c: Added lock for accessing coverage_hash.
4093
4094 2004-03-22  Martin Baulig  <martin@ximian.com>
4095
4096         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4097         `method->method->signature->generic_param_count != 0' to make it
4098         work for interface methods.
4099
4100 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4101
4102         * process.c: quote the string passed to the shell using g_shell_quote.
4103
4104 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4105
4106         * threads.c:
4107         (mono_threads_manage): don't remove the finalizer thread and self
4108         from the threads hash table so that mono_thread_manage can be called
4109         more than once.
4110
4111 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4112
4113         * process.c: quote the arguments when UseShellExecute is true. Fixes
4114         bug #55790.
4115
4116 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4117
4118         * threads.c: set mono_thread_detach as a cleanup routine for every
4119         thread. This way it's always executed upon thread termination, either
4120         aborted or finished normally. No more xsp hangs!
4121
4122 2004-03-17  Martin Baulig  <martin@ximian.com>
4123
4124         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4125         `int count_nested' and a `MonoType **nested'.
4126
4127         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4128         most of the functionality into a new static
4129         do_mono_reflection_bind_generic_parameters() and don't take a
4130         `MonoType *nested_in' argument any more.  Don't compute nested
4131         types here.
4132         (mono_reflection_generic_inst_get_nested_types): New public method
4133         to get nested types.
4134
4135         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4136         we're a nested class.
4137
4138         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4139         mono_reflection_generic_inst_get_nested_types() to compute the
4140         nested types.
4141
4142 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4143
4144         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4145         descriptive error message under windows.
4146         
4147 2004-03-17  Martin Baulig  <martin@ximian.com>
4148
4149         * class.c (dup_type): Added `const MonoType *original' argument;
4150         copy the attrs from the original type.
4151
4152 2004-03-17  Martin Baulig  <martin@ximian.com>
4153
4154         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4155         `m->generic_inst_cache' here.
4156
4157 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4158
4159         * exception.h exception.c: Add stack_overflow_exception.
4160
4161 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4162
4163         * threadpool.c:
4164         (overlapped_callback): call SetEvent *after* invoking the callback.
4165         No need to call CloseHandle.
4166
4167 2004-03-16  Martin Baulig  <martin@ximian.com>
4168
4169         * reflection.c (mono_image_get_fieldref_token): Take a
4170         `MonoReflectionField *' instead of a `MonoClassField *' and a
4171         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4172
4173 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4174
4175         * appdomain.c: don't add the culture to the filename we're looking for
4176         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4177
4178 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4179
4180         * locales.c: don't ignore symbols when doing case insensitive compares.
4181         Thanks Dick! Fixes bug #54046.
4182
4183         * threads.c: surround 'threads' usage with enter/leave in
4184         mono_thread_manage.
4185
4186 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4187
4188         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4189         implicitly marshalled as [Out]. Fixes #55450.
4190
4191         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4192         an exception.
4193
4194 2004-03-16  Martin Baulig  <martin@ximian.com>
4195
4196         * class.c (mono_class_from_generic_parameter): Use the actual
4197         parameter name. 
4198
4199 2004-03-16  Martin Baulig  <martin@ximian.com>
4200
4201         * reflection.c (type_get_signature_size): New static function.
4202         Compues the size of the type in a method signature.
4203         (method_get_signature_size): New static function; calls
4204         type_get_signature_size() to compute the actual size of the
4205         method's signature.
4206         (method_encode_signature): Use method_get_signature_size() to get
4207         the signature's size rather than using `nparams * 10'.
4208
4209 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4210
4211         * file-io.h: define here WapiOverlapped on windows. I don't want the
4212         regular OVERLAPPED one.
4213
4214         * file-io.c:
4215         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4216         Disabling AIO on windows.
4217
4218 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4219
4220         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4221         bug #55385.
4222
4223 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4224
4225         * appdomain.c: upgraded corlib version.
4226
4227         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4228         and BeginWrite. Allow opening files for asynchrnous operations.
4229
4230         * file-io.h: new struct that maps FileStreamAsyncResult.
4231         * icall.c: added new icalls.
4232         * process.[ch]: support setting child process environment variables
4233         and use the SHELL or COMSPEC when UseShellExecute is true.
4234
4235         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4236         callback for async. IO is here and also BindHandle.
4237
4238         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4239         from here.
4240
4241 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4242
4243         * reflection.c (create_custom_attr): Allow len == 0.
4244
4245         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4246         computation on big-endian machines.
4247
4248 2004-03-13  Martin Baulig  <martin@ximian.com>
4249
4250         * class.h (MonoGenericInst): Added `int count_ifaces'.
4251
4252         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4253         `ginst->count_ifaces' instead `klass->interface_count' since we
4254         may get called before the vtable is created.
4255
4256         * loader.c (mono_method_get_param_names): If we're a generic
4257         instance, return and don't initialize the class.
4258
4259         * reflection.c (mono_reflection_setup_generic_class): Don't call
4260         ensure_runtime_vtable().
4261         (mono_reflection_bind_generic_parameters): Set
4262         `ginst->count_ifaces'.
4263
4264 2004-03-11  Jackson Harper <jackson@ximian.com>
4265
4266         * icall.c:
4267         * unicode.c:
4268         * unicode.h: Remove unused System.Char icalls.
4269         
4270 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4271
4272         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4273         code when we P/Invoke the first library in Windows.Forms, instead
4274         of when we first open the assembly.
4275
4276         * assembly.c: Drop the lookup from here.
4277
4278 2004-03-10  Martin Baulig  <martin@ximian.com>
4279
4280         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4281         class for properties, fields and events.  Finally fixes #54945.
4282
4283 2004-03-10  Martin Baulig  <martin@ximian.com>
4284
4285         * metadata.c (mono_metadata_class_equal): New static function;
4286         checks whether two generic instances or two generic parameters are
4287         equal.
4288         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4289         compare classes.        
4290
4291 2004-03-10  Martin Baulig  <martin@ximian.com>
4292
4293         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4294
4295         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4296         argument and write it into the `reflection_info' field.
4297
4298         * icall.c
4299         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4300         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4301
4302 2004-03-09  Jackson Harper  <jackson@ximian.com>
4303
4304         * char-conversions.h: use 8 bits for numeric data its all we need
4305         * icall.c: numeric data is only 8 bits now.
4306
4307 2004-03-09  Martin Baulig  <martin@ximian.com>
4308
4309         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4310
4311         * class.c (init_properties, init_events): Initialize the new
4312         `parent' field.
4313
4314         * reflection.c (typebuilder_setup_properties): Likewise.
4315         (typebuilder_setup_events): Likewise.
4316
4317         * reflection.h (MonoEventInfo): Replaced `parent with
4318         `declaring_type' and `reflected_type'.
4319
4320         * icall.c (ves_icall_get_property_info): Distinguish between
4321         declaring and reflected type.
4322         (ves_icall_get_event_info): Likewise.
4323
4324 2004-03-09  Martin Baulig  <martin@ximian.com>
4325
4326         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4327         (ves_icall_Type_GetField): Correctly set field->klass.
4328
4329 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4330
4331         * loader.h: Fix warning.
4332
4333 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4334
4335         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4336         library routine if present.  Notice that it will still continue
4337         executing even if its missing, for those working on the Gtk#
4338         edition of Windows.Forms.
4339
4340         * assembly.c (do_mono_assembly_open): If loading the
4341         System.Windows.Forms call mono_loader_wini_init.
4342
4343 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4344
4345         * class.h: Added MonoRemoteClass struct.
4346         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4347         function for MonoStrings.
4348         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4349         Added internal call for getting the proxy type.
4350         * marshal.c: Get the type of transparent proxies from its remote_class.
4351         Added methods that generate the IL for type checks and casts:
4352         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4353         mono_marshal_get_proxy_cancast.
4354         * marshal.h: Declaration of the previous new methods.
4355         * object.c: Added new moethods for creating and updating MonoRemoteClass
4356         instances: mono_remote_class, mono_upgrade_remote_class, 
4357         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4358         * verify.c: FIx transparent_proxy_fields layout.
4359         * appdomain.c: Bump corlib version.
4360
4361 2004-03-04  Jackson Harper  <jackson@ximian.com>
4362
4363         * icall.c: Add icall to access char conversion tables.
4364         * char-conversions.h: Character conversion tables.
4365         * Makefile.am: Add char-conversions.h private header file.
4366         
4367 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4368
4369         * appdomain.c (unload_thread_main): Increase unloading timeout to
4370         10 sec as a temporary workaround for Nant problems.
4371
4372 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4373
4374         * gc.c: Add checks for GC_enable and GC_disable.
4375
4376         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4377         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4378         (bug #54988).
4379         
4380 2004-02-27  Martin Baulig  <martin@ximian.com>
4381
4382         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4383         `MonoReflectionType *' instead of a `MonoType *'.
4384
4385 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4386
4387         * gc.c (run_finalize): Avoid finalizing the object representing the
4388         finalizer thread.
4389         (finalizer_thread): Fix warning.
4390
4391 2004-02-25  Martin Baulig  <martin@ximian.com>
4392
4393         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4394         argument for nested types.
4395         (mono_class_create_generic): Added support for nested generictypes.
4396
4397         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4398         `GList *nested'.
4399
4400         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4401
4402         * reflection.c (method_encode_signature): Increase the minimum
4403         value of `size' from 10 to 11.
4404         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4405         and `MonoType **types' arguments instead of the `MonoArray
4406         *types'; added `MonoType *nested_in'.  Recursively instantiate
4407         nested classes. 
4408
4409 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4410
4411         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4412         stack_overflow_ex members which are used by exception handling.
4413
4414         * appdomain.c (mono_runtime_init): Initialize the new members.
4415
4416         * gc.c (mono_gc_enable): New helper function.
4417         * gc.c (mono_gc_disable): New helper function.
4418
4419 2004-02-23  Martin Baulig  <martin@ximian.com>
4420
4421         * icall.c: I must have been really stupid - make it actually work
4422         this time ;-)
4423
4424 2004-02-23  Martin Baulig  <martin@ximian.com>
4425
4426         * loader.c (method_from_memberref): Only inflate the method if
4427         it's in another klass.
4428
4429 2004-02-23  Martin Baulig  <martin@ximian.com>
4430
4431         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4432         (mono_class_init): If we're a generic instance and an interface,
4433         compute `class->interface_id'; also create `class->interfaces'
4434         here and inflate them.
4435
4436         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4437         `ginst->is_open'.
4438         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4439
4440         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4441
4442 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4443
4444         * reflection.c (method_encode_code): Improved the error message
4445         generated by the exception.
4446
4447 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4448
4449         * icall.c: Martin did not do what he said in the ChangeLog for
4450         2004-02-18, but put back the changes for properties and events.
4451         Commenting those changes out again and adding comment to bug #54518.
4452         
4453         * process.c: removed warning.
4454
4455 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4456
4457         * marshal.c (emit_struct_conv): Print an error message instead of
4458         asserting when a type does not have the StructLayout attribute.
4459
4460 2004-02-20  Martin Baulig  <martin@ximian.com>
4461
4462         * reflection.c (mono_type_get_object): Also use the cache for
4463         generic instances.
4464         (mono_reflection_bind_generic_parameters): Always compute
4465         `ginst->ifaces'.        
4466
4467 2004-02-20  Martin Baulig  <martin@ximian.com>
4468
4469         * class.h (MonoGenericMethod): Removed `klass'.
4470
4471         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4472         *klass' argument.
4473
4474 2004-02-20  Martin Baulig  <martin@ximian.com>
4475
4476         * reflection.c (method_encode_methodspec): Actually use the
4477         uninflated signature for the memberref.
4478
4479 2004-02-20  Martin Baulig  <martin@ximian.com>
4480
4481         * class.h (MonoGenericMethod): Removed `declaring'.
4482
4483         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4484         is NULL, compute it here.
4485
4486 2004-02-20  Martin Baulig  <martin@ximian.com>
4487
4488         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4489
4490         * metadata.c (mono_metadata_generic_inst_hash): New method.
4491         (mono_metadata_generic_inst_equal): New method.
4492
4493         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4494         `klass->image->generic_inst_cache' cache to avoid creating
4495         duplicate MonoGenericInst's.
4496
4497         * class.c (mono_class_inflate_generic_type): Use the cache.
4498
4499 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4500
4501         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4502
4503 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4504
4505         * icall.c: added Socket.WSAIoctl icall.
4506
4507         * socket-io.[ch]: implemented
4508         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4509
4510 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4511
4512         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4513
4514 2004-02-18  Urs C Muff  <umuff@quark.com>
4515
4516         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4517         this work on PPC and other big-endian architectures.
4518
4519         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4520         fields with an underscore to make sure they're only accessed by
4521         the read32() macro.
4522
4523 2004-02-18  Martin Baulig  <martin@ximian.com>
4524
4525         * icall.c: Put the klass->refclass changes back for methods and
4526         fields, but not for properties and events.  We're currently not
4527         distinguishing between DeclaringType and ReflectedType for
4528         properties and events, that's what caused the regressions.
4529
4530 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4531
4532         * object.c:
4533         (mono_async_result_new): the handle can be NULL.
4534
4535         * threadpool.c: Use an event instead of a semaphore, don't initialize
4536         it until needed. This saves quite a few semaphores from being created
4537         when using the threadpool.
4538
4539 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4540
4541         * object.c (mono_string_is_interned_lookup): Fix interning of long
4542         strings. Fixes #54473.
4543
4544         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4545
4546         * icall.c: Revert the klass->refclass changes since they introduce
4547         regressions (bug #54518).
4548
4549 2004-02-18  Martin Baulig  <martin@ximian.com>
4550
4551         * class.c (mono_class_init): If we're a generic instance and don't
4552         come from a TypeBuilder, inflate our members here.
4553         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4554         (mono_class_create_generic): New public method.
4555         (mono_class_initialize_generic): Removed.
4556         (get_instantiation_name): Renamed to
4557         _mono_class_get_instantiation_name() and made it public.
4558
4559 2004-02-18  Martin Baulig  <martin@ximian.com>
4560
4561         * class.c (mono_class_inflate_generic_type): Clear the new
4562         instance's `nginst->klass' when inflating a generic instance.
4563         (mono_class_is_subclass_of): Added (basic) support for generic
4564         instances.
4565
4566 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4567
4568         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4569         MonoMempool to hold compiled native code.
4570
4571 2004-02-17  Martin Baulig  <martin@ximian.com>
4572
4573         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4574         `properties'.
4575
4576         * reflection.c (mono_reflection_generic_inst_initialize): Added
4577         `MonoArray *properties' argument.
4578
4579         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4580
4581 2004-02-17  Martin Baulig  <martin@ximian.com>
4582
4583         * icall.c (ves_icall_Type_GetFields): Renamed to
4584         ves_icall_Type_GetFields_internal() and added a
4585         `MonoReflectionType *rtype' argument; pass it to
4586         mono_field_get_object() to set the field's "reflected" type.
4587         (ves_icall_Type_GetConstructors): Likewise.
4588         (ves_icall_Type_GetEvents): Likewise.
4589         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4590         argument; pass it to mono_method_get_object() to set the method's
4591         "reflected" type.       
4592
4593 2004-02-17  Martin Baulig  <martin@ximian.com>
4594
4595         * class.h (MonoDynamicGenericInst): New type.
4596         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4597
4598         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4599         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4600         (ves_icall_MonoGenericInst_GetFields): New interncall.
4601
4602         * class.c (mono_class_from_generic): Don't call
4603         mono_class_initialize_generic() if this is a dynamic instance;
4604         ie. it's being created from a TypeBuilder.
4605         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4606         `class->byval_arg.type'.
4607
4608         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4609         to `inflate_method' and made static.
4610         (mono_reflection_inflate_field): Removed.
4611         (mono_reflection_generic_inst_initialize): New public method.
4612
4613         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4614         `ctors' and `fields'; added `initialized'.
4615
4616 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4617
4618         * debug-helpers.c (mono_method_full_name): Fix output for empty
4619         namespaces.
4620
4621 2004-02-12  Martin Baulig  <martin@ximian.com>
4622
4623         * class.h (MonoClassField): Added `MonoType *generic_type'.
4624
4625         * reflection.c (mono_image_get_fieldref_token): Added support for
4626         instantiated generic types.
4627         (field_encode_inflated_field): Removed.
4628         (mono_image_get_inflated_field_token): Removed.
4629         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4630
4631         * reflection.h (MonoReflectionInflatedField): Removed.
4632
4633 2004-02-12  Martin Baulig  <martin@ximian.com>
4634
4635         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4636         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4637
4638         * reflection.c (mono_image_get_methodspec_token): Take a
4639         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4640         (mono_image_create_token): Check whether we have a
4641         `method->signature->gen_method' and call
4642         mono_image_get_methodspec_token() if appropriate.
4643         (inflated_method_get_object): Removed.
4644         (mono_reflection_bind_generic_method_parameters): Return a
4645         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4646         (mono_reflection_inflate_method_or_ctor): Likewise.
4647
4648         * reflection.h (MonoReflectionInflatedMethod): Removed.
4649
4650 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4651
4652         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4653         for custom valuetype marshalling.
4654
4655         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4656
4657 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4658
4659         * icall.c: fixed WSAGetLastError_internal name.
4660
4661 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4662
4663         * threads.c (mono_thread_attach): Allow this to be called multiple
4664         times for a thread.
4665         
4666         * threads.c (build_wait_tids): Do not wait for ourselves.
4667
4668         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4669         appdomain list is empty.
4670
4671         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4672         memory returned by mono_string_builder_to_utf16, since it points into
4673         managed memory. Thanks to Bernie Solomon for noticing this.
4674
4675         * icall.c: Add AppDomainSetup icalls.
4676
4677         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4678
4679         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4680         types.
4681
4682         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4683         custom attributes to the method_aux struct. Also fix array indexes etc.
4684
4685         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4686         
4687 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4688
4689         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4690         (both static and runtime) and reduce startup time.
4691
4692 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4693
4694         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4695         AsAny marshalling conversion instead of crashing.
4696
4697         * marshal.c: Fix warnings.
4698
4699 2004-02-09  Martin Baulig  <martin@ximian.com>
4700
4701         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4702
4703         * reflection.h (MonoReflectionInflatedMethod): Removed the
4704         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4705
4706         * reflection.c (method_encode_methodspec): Removed the `method'
4707         argument; we get it from `gmethod->declaring'.
4708         (inflated_method_get_object): Removed the `declaring' argument.
4709
4710 2004-02-09  Martin Baulig  <martin@ximian.com>
4711
4712         * class.h (MonoGenericMethod): New type.
4713         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4714         `generic_method'.
4715
4716         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4717         a `MonoGenericMethod *gen_method' one.
4718
4719         * class.c (mono_class_inflate_generic_type): Take an additional
4720         `MonoGenericMethod * argument.  This is only non-NULL if we're
4721         inflating types for a generic method.   
4722         (mono_class_inflate_generic_signature): Renamed to
4723         inflate_generic_signature() and made static; take a
4724         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4725         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4726         instead of a `MonoGenericInst *' one.
4727         (mono_class_inflate_generic_method): Likewise.
4728
4729         * reflection.c (encode_generic_method_sig): Take a
4730         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4731         (method_encode_methodspec): Likewise.
4732         (inflated_method_get_object): Likewise. 
4733
4734         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4735         field with a `MonoGenericMethod *gmethod' one.  
4736
4737 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4738
4739         * class.h (mono_class_has_parent): add parens to expansion
4740         so you can ! this.
4741
4742 2004-02-08  Martin Baulig  <martin@ximian.com>
4743
4744         * image.h (MonoImage): Removed `generics_cache'.
4745
4746         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4747         instead of a `MonoType *' argument; removed the `inflate_methods'
4748         argument.  Don't inflate methods here.
4749
4750         * loader.c (find_method): If it's a generic instance, call
4751         mono_class_init() on the `sclass->generic_inst->generic_type'.
4752
4753         * metadata.c (mono_type_size): Make this work on uninitialized
4754         generic instances; call it on the `ginst->generic_type's class.
4755
4756         * reflection.c (mono_reflection_bind_generic_parameters): Call
4757         mono_class_from_generic() to create the `ginst->klass'.
4758
4759 2004-02-08  Martin Baulig  <martin@ximian.com>
4760
4761         * class.h (MonoClass): Changed type of `generic_inst' from
4762         `MonoType *' to `MonoGenericInst *'.
4763
4764 2004-02-08  Martin Baulig  <martin@ximian.com>
4765
4766         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4767         mono_type_get_object(), this is now creating a `MonoGenericInst'
4768         for MONO_TYPE_GENERICINST.
4769         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4770         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4771
4772         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4773         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4774         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4775         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4776         and reflected type.
4777
4778         * reflection.h (MonoReflectionInflatedMethod): Removed
4779         `declaring_type' and `reflected_type'.
4780
4781 2004-02-08  Martin Baulig  <martin@ximian.com>
4782
4783         * class.h (MonoGenericInst): Added `MonoType *parent' and
4784         `MonoType **ifaces'.
4785
4786         * reflection.h (MonoReflectionGenericInst): Removed `klass',
4787         `parent' and `interfaces'.
4788
4789         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4790         `MonoType *' argument and return a `MonoType *'.
4791
4792         * icall.c
4793         (ves_icall_MonoGenericInst_GetParentType): New interncall.
4794         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
4795
4796 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4797
4798         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
4799         valuetype marshalling.
4800
4801 2004-02-06  Martin Baulig  <martin@ximian.com>
4802
4803         * class.c
4804         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
4805         (my_mono_class_from_generic_parameter): Likewise.
4806
4807 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4808
4809         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
4810         contents of the symbol files lazily.
4811
4812         * object.h (MonoThread): Add 'name' and 'name_len' fields.
4813
4814         * threads.h threads.c icall.c: New icalls for getting and setting the
4815         threads name.
4816
4817 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
4818
4819         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
4820         Raise an exception when the domain is not found.
4821
4822 2004-02-03  Martin Baulig  <martin@ximian.com>
4823
4824         * reflection.c (mono_image_get_methodspec_token): Use the
4825         uninflated signature; fixes gen-33.
4826
4827 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
4828
4829         * gc.c threads.c: Make the finalizer thread a normal managed thread so
4830         the finalizer code can use thread functionality.
4831
4832         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
4833         the finalizer thread.
4834
4835         * threads.c: Make some functions more robust.
4836
4837         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
4838
4839         * metadata.h: Add new marshalling conventions.
4840
4841         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
4842         stringbuilder marshalling. Fixes #53700.
4843
4844         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
4845
4846         * reflection.c (mono_image_get_type_info): Save declarative security
4847         info.
4848
4849         * reflection.c (mono_image_get_field_info): Handle uninitialized 
4850         unmanaged fields as well.
4851
4852         * appdomain.c: Bump corlib version.
4853
4854 2004-02-01  Martin Baulig  <martin@ximian.com>
4855
4856         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
4857         method type arguments.  
4858
4859 2004-01-30  Duncan Mak  <duncan@ximian.com>
4860
4861         * marshal.h: Add prototype for
4862         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
4863         and
4864         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
4865         fix the build.
4866
4867 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
4868
4869         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
4870         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
4871
4872 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4873
4874         * marshal.c (mono_marshal_get_native_wrapper): Add support for
4875         custom marshalling of valuetypes.
4876
4877         * marshal.c: Fix some warnings.
4878
4879 2004-01-29  Martin Baulig  <martin@ximian.com>
4880
4881         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
4882         for generic method parameters.
4883
4884         * reflection.c (method_encode_methodspec): Write the uninflated
4885         signature into the methodspec table.
4886         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
4887         is always the uninflated method.
4888         (reflection_methodbuilder_to_mono_method): Copy the generic
4889         parameters from the MethodBuilder into `header->gen_params'.
4890
4891 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4892
4893         * class.c (mono_class_from_generic_parameter): Fix warning.
4894
4895 2004-01-27  Martin Baulig  <martin@ximian.com>
4896
4897         * class.c (mono_class_from_generic_parameter): Don't create
4898         `klass->methods' here.  
4899
4900 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
4901
4902         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
4903         extension since it does not work with libraries named lib<FOO>.dll.so.
4904
4905 2004-01-25  Martin Baulig  <martin@ximian.com>
4906
4907         * class.c (mono_class_inflate_generic_type): Added support for
4908         MONO_TYPE_GENERICINST.
4909
4910         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
4911         inflate methods on open constructed types.      
4912
4913 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4914
4915         * object.c: fire ProcessExit event in the root AppDomain after running
4916         Main. Fixes bug #53299.
4917
4918 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
4919
4920         * socket-io.c: include the new socket-wrappers.h header.
4921         Use the wrappers instead of the unix socket functions to make the code
4922         more clear.
4923
4924 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
4925
4926         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
4927
4928         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4929         Fixes #22532.
4930
4931 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
4932
4933         * reflection.c (mono_image_create_pefile): Handle the case when the
4934         entry point is not a MethodBuilder.
4935
4936         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4937         field to ReflectionMethod since it is not allways a builder.
4938
4939         * reflection.c (type_get_fully_qualified_name): New helper function to
4940         return the fully qualified name of a type.
4941
4942         * reflection.c (encode_marshal_blob): Always emit the fully qualified
4943         type name for custom marshallers.
4944
4945         * reflection.c (mono_marshal_spec_from_builder): Ditto.
4946
4947         * class.c (mono_class_setup_vtable): If a parent class already 
4948         implements an interface, use the implementing methods from that class.
4949         Fixes #53148.
4950
4951 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4952
4953         * threadpool.c: just return instead of ExitThread to allow for thread
4954         clean up earlier.
4955
4956 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
4957
4958         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
4959         when closing resource modules.
4960
4961         * reflection.c (mono_image_create_pefile): Handle the case when the
4962         entry point is not a MethodBuilder.
4963
4964         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4965         field to ReflectionMethod since it is not allways a builder.
4966
4967 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
4968
4969         * marshal.c (mono_marshal_get_managed_wrapper): 
4970         mono_marshal_alloc takes native int so CONV_I
4971         the arg for 64bits.
4972
4973 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
4974
4975         * reflection.c (fixup_cattrs): New function to fixup the methoddef
4976         tokens in the cattr table. Fixes #53108.
4977
4978 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4979
4980         * loader.c: don't trim ".dll" before looking up in the config file.
4981         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
4982
4983 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
4984
4985         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
4986         Return the module which contains the resource as well.
4987         (ves_icall_System_Reflection_Module_Close): New icall.
4988
4989         * appdomain.c: Bump corlib version number.
4990
4991         * image.c (mono_image_addref): New public function.
4992
4993         * assembly.c: Call mono_image_addref.
4994
4995         * reflection.c (mono_module_get_object): Increase reference count of 
4996         the image.
4997
4998         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4999         Fixes #22532.
5000
5001         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5002         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5003         proper exceptions on DllImport problems.
5004
5005 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5006
5007         * class.c, metadata.c: eliminate CSIZE macro.
5008
5009 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5010
5011         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5012         * object.h: Added async_callback field in MonoAsyncResult.
5013         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5014         * verify.c: Added async_callback in MonoAsyncResult layout.
5015
5016 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5017
5018         * reflection.c (mono_reflection_get_custom_attrs): Add support
5019         for Modules.
5020
5021 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5022
5023         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5024         marshalling.
5025         (mono_marshal_method_from_wrapper): Add null pointer check.
5026
5027 2004-01-16  Martin Baulig  <martin@ximian.com>
5028
5029         * debug-mono-symfile.h: Set version number to 36 and reflect
5030         latest symbol writer changes.
5031
5032 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5033
5034         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5035         multi-dimensional arrays.
5036         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5037         (mono_class_from_mono_type): Use bounded_array_class_get.
5038         
5039         * class.c (mono_bounded_array_class_get): New function which takes
5040         a 'bounded' bool argument to distinguish vectors from one dimensional
5041         arrays.
5042
5043         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5044         bounded_array_class_get if the array has bounds.
5045
5046         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5047         Search modules loaded using AssemblyBuilder:AddModule as well.
5048
5049 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5050
5051         * appdomain.c: increased corlib version.
5052         * filewatcher.c: removed g_print.
5053         * icall.c:
5054         (get_property_info): only allocate what is actually requested.
5055         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5056
5057 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5058
5059         * Makefile.am: added filewatcher.[ch]
5060         * filewatcher.[ch]: FileSystemWatcher runtime support.
5061         * icall.c: added new FSW icalls.
5062
5063 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5064
5065         * string-icalls.c: fix stringbuilder regression as suggested by
5066         Iain McCoy <iain@mccoy.id.au>.
5067
5068 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5069
5070         * process.c (process_read_stringtable_block): Recognize '007f' as
5071         a language neutral stringtable block.
5072
5073 2004-01-12  Patrik Torstensson
5074
5075         * object.h (MonoStringBuilder) : Changed layout to support our
5076         new stringbuilder class.
5077         * marshal.c: Change marshalling to support the new layout of 
5078         string builder.
5079         * appdomain.c: increased version number because new layout of
5080         string builder.
5081
5082 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5083
5084         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5085         assembly name as an string instead of an AssemblyName, since it is
5086         easier to extract info from it.
5087
5088         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5089         the culture subdirectories too. Fixes #52231.
5090
5091 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5092
5093         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5094         It takes 2 new parameters with an optional name for the method to look
5095         for and case ignoring info.
5096
5097         * threadpool.c: removed unused variable.
5098
5099 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5100
5101         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5102         It takes 2 new parameters with an optional name for the property to look
5103         for and case ignoring info.
5104         Fixes bug #52753.
5105
5106 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5107
5108         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5109         Fix #52451.
5110
5111 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5112
5113         * appdomain.c:
5114         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5115         Fixes bug #52630.
5116
5117 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5118
5119         * reflection.c: Add support for more than one unmanaged resource.
5120
5121         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5122         in field->def_value, as done in all other cases.
5123
5124         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5125         TypeBuilders.
5126
5127         * reflection.c (mono_reflection_create_runtime_class): Remove 
5128         errorneous assignment to klass->element_class, since it is already
5129         done in mono_reflection_setup_internal_class.
5130
5131 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5132
5133         * gc.c: added missing LeaveCriticalSection.
5134         * icall.c: indented a couple of lines.
5135         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5136         if we call EndInvoke inside a callback. Fixes bug #52601.
5137
5138 2004-01-07  Martin Baulig  <martin@ximian.com>
5139
5140         * mono-debug-debugger.h
5141         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5142
5143 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5144
5145         * appdomain.c: Use messages in NotImplementedException.
5146
5147         * exception.c (mono_get_exception_not_implemented): Now this takes
5148         a message argument.
5149
5150         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5151         exception instead of g_asserting an aborting when something is not
5152         implemented.
5153
5154         Add some inline docs.
5155
5156 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5157
5158         * reflection.h: Update after changes to object layout.
5159
5160         * reflection.c: Implement saving of unmanaged aka win32 resources.
5161
5162         * appdomain.c: Bump version number.
5163
5164         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5165         Handle missing domains gracefully.
5166
5167 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5168
5169         * file-io.c : On Windows, there are much more invalid_path_chars.
5170
5171 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5172
5173         * class.h, object.c: prepare for GetType () speedup.
5174
5175 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5176
5177         * profiler.c: workaround for --profile null reference exception on
5178           cygwin. Patch by Patrik Torstensson.
5179
5180 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5181
5182         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5183         make work for unaligned access.
5184
5185 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5186
5187         * class.c: small cleanup (class->fields [i] -> field).
5188         * image.c: check address of metadata is valid.
5189
5190 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5191
5192         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5193         search the list of loaded assemblies.
5194
5195         * reflection.c (mono_reflection_type_from_name): Use 
5196         mono_assembly_loaded instead of mono_image_loaded.
5197
5198         * reflection.c: Fix warnings.
5199
5200 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5201
5202         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5203         is dynamic. This is needed since an assembly can contain both dynamic and
5204         non-dynamic images.
5205
5206         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5207         assembly->dynamic.
5208
5209         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5210
5211         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5212         to store modules loaded using AddModule.
5213
5214         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5215         on Modules.
5216
5217         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5218
5219         * reflection.c (mono_image_fill_export_table_from_module): New function to
5220         fill out the EXPORTEDTYPES table from a module.
5221
5222         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5223         into a separate function. Also handle loaded non-dynamic modules.
5224
5225         * reflection.c (mono_image_basic_init): Fix memory allocation.
5226
5227         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5228
5229         * assembly.c (mono_assembly_load_references): Make this public.
5230
5231 2003-12-19  Martin Baulig  <martin@ximian.com>
5232
5233         * class.c (mono_class_initialize_generic): Made this static, take
5234         a `MonoGenericInst *' instead of a `MonoClass *'.
5235         (mono_class_from_generic): Call mono_class_initialize_generic()
5236         unless we're already initialized or being called from
5237         do_mono_metadata_parse_generic_inst().
5238
5239         * class.h (MonoGenericInst): Added `initialized' and
5240         `init_pending' flags.
5241
5242         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5243         `mono_class_init (gklass)' or mono_class_initialize_generic()
5244         here; set `generic_inst->init_pending' while parsing the
5245         `type_argv'.
5246
5247 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5248
5249         * locales.c: include string.h for memxxx prototypes
5250
5251 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5252
5253         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5254         constructor when accessing literal fields.
5255
5256 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5257
5258         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5259
5260         * reflection.c (assembly_add_resource_manifest): New function to fill
5261         the MANIFESTRESOURCE table.
5262
5263         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5264
5265         * reflection.h: Update to changes in class layout.
5266
5267         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5268         Reenable call to mono_runtime_is_shutting_down ().
5269
5270         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5271         determine if the runtime is shutting down.
5272
5273 2003-12-16  Jackson Harper <jackson@ximian.com>
5274
5275         * icall.c: comment out call to mono_runtime_is_shutting_down to
5276         fix build.
5277         
5278 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5279
5280         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5281         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5282
5283 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5284
5285         * reflection.c: move definition of swap_with_size
5286         to before its first call
5287
5288 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5289
5290         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5291
5292         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5293         icall.
5294
5295         * object.c: Fix warnings.
5296
5297         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5298         members if FlattenHierarchy is set.
5299
5300         * reflection.c (mono_image_add_decl_security): New function to emit
5301         declarative security.
5302
5303         * reflection.h reflection.c: Add support for declarative security.
5304
5305         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5306         
5307 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5308
5309         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5310         
5311         * appdomain.c verify.c: Moved corlib version checking into its own
5312         function in appdomain.c since it needs to create vtables etc.
5313
5314 2003-12-13  Patrik Torstensson <p@rxc.se>
5315
5316         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5317         instead of unwrapped server.
5318
5319 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5320
5321         * verify.c (check_corlib): Fix field index.
5322
5323 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5324
5325         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5326         GetGacPath icall.
5327
5328 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5329
5330         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5331         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5332         cope with sizeof(size_t) != sizeof(guint32).
5333
5334 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5335
5336         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5337         in case of failure.
5338
5339 2003-12-10  Mark Crichton <crichton@gimp.org>
5340
5341         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5342         in managed code.
5343
5344         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5345
5346 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5347
5348         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5349         marked as deleted.
5350
5351 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5352
5353         * verify.c (check_corlib): Handle the case when the version field is 
5354         initialized by a static constructor.
5355
5356 2003-12-08  Patrik Torstensson  <p@rxc.se>
5357
5358     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5359
5360 2003-12-08  Martin Baulig  <martin@ximian.com>
5361
5362         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5363         a MonoReflectionGenericParameter, also take the parameter index
5364         and name as arguments.
5365         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5366         (ves_icall_MonoGenericParam_initialize): New interncall.
5367         (ves_icall_Type_make_byref_type): New interncall.
5368
5369         * reflection.h (MonoReflectionGenericParam): Derive from
5370         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5371         `index' fields.
5372
5373         * reflection.c (mono_reflection_define_generic_parameter): Create
5374         and return a new MonoReflectionGenericParam; don't initialize the
5375         constraints here.
5376         (mono_reflection_initialize_generic_parameter): New public method;
5377         initializes the constraints and creates the `param->pklass'.
5378
5379 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5380
5381         * reflection.h reflection.c: Use the new fields 'num_types', 
5382         'num_fields' and 'num_methods' to track the number of types etc.
5383
5384         * verify.c (check_corlib): Check corlib version number.
5385
5386 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5387
5388         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5389         function works on all methods.
5390
5391 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5392
5393         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5394         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5395         the custom_type_info flag of the transparent proxy.
5396         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5397         objects that supports IRemotingTypeInfo.
5398         * object.h: Added custom_type_info field in transparent proxy.
5399
5400 2003-12-06  Martin Baulig  <martin@ximian.com>
5401
5402         * class.c (mono_class_create_from_generic): Removed.
5403         (mono_class_from_generic): Check `ginst->klass' before doing
5404         anything else.  This is important to fully support "recursive"
5405         generic types.
5406
5407         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5408         empty `generic_inst->klass' before doing anything else.
5409
5410 2003-12-06  Dick Porter  <dick@ximian.com>
5411
5412         * verify.c: 
5413         * object.h:
5414         * icall.c:
5415         * locales.c: Use C structs to access class fields.  Don't do a
5416         conversion between MonoString and UChar because both are
5417         platform-endian UTF-16.  Compare now takes startindex and count
5418         parameters.  Add a char overload for IndexOf.  Speed up the
5419         invariant string IndexOf.
5420
5421 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5422
5423         * Makefile.am (monosn_LDADD): Fix parallel build.
5424
5425 2003-12-04  Martin Baulig  <martin@ximian.com>
5426
5427         * icall.c
5428         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5429         (ves_icall_Type_make_array_type): New interncall.       
5430
5431 2003-12-04  Martin Baulig  <martin@ximian.com>
5432
5433         * locales.c: also change it in the !HAVE_ICU case.
5434
5435 2003-12-04  Dick Porter  <dick@ximian.com>
5436
5437         * icall.c:
5438         * locales.c: construct_compareinfo is now in CompareInfo, not
5439         CultureInfo.
5440
5441 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5442
5443         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5444         image->files array.
5445
5446         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5447         table as well.
5448
5449         * assembly.c (mono_assembly_load_references): Only load references
5450         once.
5451
5452         * class.c (mono_class_from_name): Avoid linear search of the 
5453         EXPORTEDTYPE table.
5454
5455         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5456
5457 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5458
5459         * image.h (MonoImage): Add 'field_cache' field.
5460
5461         * loader.c (mono_field_from_token): Cache field lookups.
5462         
5463         * reflection.c (mono_module_get_object): Fix name property.
5464
5465         * icall.c (ves_icall_get_enum_info): Update after changes to 
5466         mono_metadata_get_constant_index ().
5467
5468         * icall.c: Get rid of get_type_info icall, use a separate icall for
5469         each type property to avoid needless memory allocations. Fixes #51514.
5470
5471         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5472         to avoid needless binary searches.
5473
5474         * class.c (class_compute_field_layout): Move the initialization of
5475         field->def_value to mono_class_vtable ().
5476
5477         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5478         non-corlib types.
5479
5480         * object.c (mono_object_allocate): Make it inline.
5481
5482         * object.c (mono_object_allocate_spec): Make it inline.
5483         
5484 2003-12-02  Dick Porter  <dick@ximian.com>
5485
5486         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5487         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5488
5489 2003-12-01  Dick Porter  <dick@ximian.com>
5490
5491         * threads.c: Fix signature and call in CreateMutex and
5492         CreateEvent.
5493
5494 2003-12-01  Dick Porter  <dick@ximian.com>
5495
5496         * icall.c: 
5497         * locales.c: Implement string compares and searching
5498
5499         * object.h: Add extra Thread field
5500
5501 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5502
5503         * reflection.c (fixup_method): Add support for MonoCMethod.
5504
5505 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5506
5507         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5508
5509         * reflection.c (assembly_name_to_aname): Allow extra characters in
5510         assembly names. Fixes #51468.
5511
5512 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5513
5514         * exception.c (mono_exception_from_name_domain): New helper function.
5515
5516         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5517         exception object in the correct domain.
5518
5519         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5520         formatting + make a copy a the input data.
5521
5522         * loader.c (mono_get_method_from_token): Methods which contain
5523         native code do not have entries in the ImplMap.
5524
5525         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5526         Thanks to Gonzalo for spotting this.
5527         
5528         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5529         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5530
5531         * assembly.h (mono_assembly_load_from): Split the second part of 
5532         assembly loading into a new public function.
5533
5534         * exception.h (mono_get_exception_bad_image_format): New function.
5535
5536 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5537
5538         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5539         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5540         
5541         * icall.c: Add new icall for creating dynamic methods.
5542
5543         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5544
5545         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5546
5547         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5548         create a dynamic method.
5549
5550         * reflection.c (resolve_object): New helper function.
5551
5552         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5553         which manipulate it so they can also work on dynamic methods.
5554
5555         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5556         creating the MonoReflectionMethodAux structure if it is not needed.
5557         
5558         * reflection.h verify.c: Update after changes to object layout.
5559
5560         * reflection.c (method_builder_encode_signature): Fix compilation on
5561         gcc 2.95.x.
5562
5563 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5564
5565         * appdomain.h: Added support for context static fields. Added static_data
5566           field to MonoAppContext and renamed thread_static_fields to a more
5567           generic special_static_fields in MonoAppDomain, since it can now contain
5568           context static fields.
5569         * domain.c: Updated hashtable name.
5570         * object.c: Replaced field_is_thread_static() for a more generic
5571           field_is_special_static() which also checks for context static attribute.
5572           In mono_class_vtable(), added support for static context fields.
5573         * threads.c: Changed methods that manage thread static fields to more
5574           generic methods so they can be reused both for thread and context static
5575           data.
5576         * threads.h: Declared some new methods.
5577
5578 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5579
5580         * reflection.h: Update after changes to the managed types.
5581
5582         * reflection.c (encode_custom_modifiers): New helper function.
5583
5584         * reflection.c (method_encode_signature): Emit custom modifiers.
5585
5586         * reflection.c (field_encode_signature): Emit custom modifiers.
5587
5588 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5589
5590         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5591
5592         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5593         implementation.
5594
5595         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5596         icall.
5597
5598         * object.c (mono_field_get_value_object): New function.
5599
5600         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5601         specific.
5602
5603 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5604
5605         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5606         return a preallocated out-of-memory exception instance.
5607
5608         * object.c (out_of_memory): Use the new function.
5609
5610         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5611         flag is before the custom modifiers. Fixes #49802.
5612
5613 2003-11-16  Martin Baulig  <martin@ximian.com>
5614
5615         * class.c (mono_class_is_open_constructed_type): Implemented the
5616         MONO_TYPE_GENERICINST case.
5617
5618 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5619
5620         * assembly.c (mono_assembly_fill_assembly_name): New function to
5621         fill out the MonoAssemblyName structure.
5622         (mono_assembly_open): Use the new function.
5623
5624         * icall.c (fill_reflection_assembly_name): New helper function.
5625
5626         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5627         new function.
5628
5629         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5630
5631 2003-11-15  Martin Baulig  <martin@ximian.com>
5632
5633         * class.c (mono_class_is_open_constructed_type): New public
5634         function; checks whether a type is an open constructed type,
5635         ie. whether it still contains type parameters.
5636         (mono_class_inflate_generic_type): If we're a type parameter and
5637         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5638         type.
5639
5640         * class.h (MonoGenericInst): Added `guint32 is_open'.
5641
5642         * loader.c (method_from_methodspec): Check whether we're an open
5643         or closed constructed type and set `ginst->is_open'.
5644
5645         * reflection.c (mono_reflection_bind_generic_parameters): Check
5646         whether we're an open or closed constructed type and set
5647         `ginst->is_open'.
5648         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5649         from open constructed types.
5650
5651 2003-11-15  Martin Baulig  <martin@ximian.com>
5652
5653         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5654         a generic instance (instead of a generic type declaration) with
5655         unbound generic parameters, bind them to our actual types.
5656
5657 2003-11-14  Martin Baulig  <martin@ximian.com>
5658
5659         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5660
5661         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5662         an interface type, populate `res->interfaces' with instantiated
5663         versions of all the interfaces we inherit.
5664
5665 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5666
5667         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5668         when MONO_PATH is set but doesn't contain the install dir.
5669
5670 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5671
5672         * icall.c:
5673         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5674         it's also implemented in base classes. Fixes bug #50927.
5675
5676 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5677
5678         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5679         if this method is called from a finalizer. Fixes #50913.
5680
5681 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5682
5683         * threads.c: Implement VolatileRead/VolatileWrite
5684
5685         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5686
5687 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5688
5689         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5690         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5691         2.95.3.
5692
5693         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5694         from Peter Ross (pro@missioncriticalit.com).
5695         
5696 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5697
5698         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5699
5700 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5701
5702         * assembly.c (mono_assembly_load_references): Disable check because it
5703         triggers on older corlibs which lots of people have.
5704
5705 2003-11-12  Jackson Harper  <jackson@ximian.com>
5706
5707         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5708         load corlib.dll if mscorlib.dll is not found.
5709         * assembly.h: Remove corlib name define.
5710         * class.c:
5711         * domain.c:
5712         * image.c: Change corlib name to mscorlib.
5713         
5714 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5715
5716         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5717
5718 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5719
5720         * appdomain.h: Added loader_optimization here to sync with the C#
5721         code, and add disallow_binding_redirects field.
5722
5723 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5724
5725         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5726
5727         * reflection.c (mono_image_build_metadata): Fix crash on modules
5728         with no types.
5729
5730         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5731
5732         * icall.c (ves_icall_get_method_info): Return callingConvention as
5733         well.
5734
5735         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5736         namespaces from the EXPORTEDTYPE table as well.
5737
5738         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5739         from all modules inside the assembly.
5740         
5741 2003-11-11  Martin Baulig  <martin@ximian.com>
5742
5743         * reflection.c (mono_reflection_bind_generic_parameters): Make
5744         this work for interfaces.
5745
5746 2003-11-11  Martin Baulig  <martin@ximian.com>
5747
5748         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5749
5750 2003-11-11  Martin Baulig  <martin@ximian.com>
5751
5752         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5753         "MonoInflatedMethod" and "MonoInflatedCtor".
5754
5755 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5756
5757         * reflection.c (resolution_scope_from_image): Use the assembly table
5758         from the manifest module, since other modules don't have it.
5759
5760         * debug-helpers.c (mono_type_full_name): New helper function.
5761
5762         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5763
5764         * image.c (mono_image_load_file_for_image): New public function which
5765         is a replacement for the load_file_for_image in class.c.
5766
5767         * assembly.c (mono_assembly_load_module): A wrapper for the function
5768         above which does assembly association and reference loading too.
5769
5770         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5771
5772 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5773
5774         * appdomain.c: not all of the attributes for the full assembly name
5775         are required and the order doesn't matter. Fixes bug #50787.
5776
5777 2003-11-10  Dick Porter  <dick@ximian.com>
5778
5779         * locales.c: Use platform-endian UTF16
5780
5781 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5782
5783         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5784         
5785 2003-11-10  Martin Baulig  <martin@ximian.com>
5786
5787         * metadata.c
5788         (mono_metadata_load_generic_params): Make this actually work.
5789
5790         * reflection.c (mono_reflection_bind_generic_parameters): If our
5791         parent is a generic instance, pass all the `types' to it, no
5792         matter whether it has the same number of type parameters or not.
5793
5794 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5795
5796         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5797
5798         * assembly.c (mono_assembly_load_references): Move the image<->assembly
5799         assignment code to this function so it gets called recursively for all
5800         modules.
5801
5802         * image.c (load_modules): Remove the assembly assignment since it is
5803         now done by mono_assembly_load_references.
5804         
5805         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5806         Add 'module' argument.
5807         (mono_module_get_types): New helper function.
5808         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
5809
5810 2003-11-08  Martin Baulig  <martin@ximian.com>
5811
5812         * class.c (mono_class_inflate_generic_method): Interface method
5813         don't have a header.
5814
5815         * reflection.c (mono_image_get_methodspec_token): Take an
5816         additional `MonoGenericInst *' argument instead of reading it from
5817         the header; this is necessary to support interfaces.
5818         (mono_image_create_token): Pass the `MonoGenericInst *' from the
5819         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
5820         (inflated_method_get_object): Take an additional `MonoGenericInst *'
5821         argument.
5822
5823         * reflection.h (MonoReflectionInflatedMethod): Added
5824         `MonoGenericInst *ginst'.
5825
5826 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
5827
5828         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
5829
5830 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
5831
5832         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
5833
5834 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
5835
5836         * reflection.c 
5837         (reflection_methodbuilder_from_method_builder):
5838         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
5839         initialize a ReflectionMethodBuilder structure.
5840         (mono_image_get_methodbuilder_token):
5841         (mono_image_get_ctorbuilder_token): New functions to emit memberref
5842         tokens which point to types in another module inside the same assembly.
5843
5844         * reflection.c: Use the new helper functions.
5845         
5846         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
5847
5848         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
5849         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
5850
5851         * reflection.c (resolution_scope_from_image): Emit a moduleref if
5852         neccesary.
5853
5854         * reflection.c (mono_image_build_metadata): Emit metadata only for the
5855         current module. Emit the manifest only for the main module.
5856
5857         * reflection.c (mono_image_create_token): Add assertion when a 
5858         memberref needs to be created.
5859
5860         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
5861
5862         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
5863         larger buffer for the custom attribute blob. Fixes #50637.
5864         
5865 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5866
5867         * threadpool.c: notify listener on async processing handles after
5868         invoking the async callback. Thanks to Zoltan.
5869
5870 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5871
5872         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
5873         avoid code duplication.
5874
5875         * reflection.h (MonoDynamicImage): New type which is currently unused,
5876         but will be used through the ref.emit code in place of 
5877         MonoDynamicAssembly.
5878
5879         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5880         object layout.
5881
5882         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
5883         a MonoDynamicImage instead of just a MonoImage.
5884         
5885         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
5886         icalls to ModuleBuilder but keep their semantics, so they will work
5887         with moduleb->assemblyb. This will change later.
5888         
5889 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5890
5891         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5892         object layout.
5893
5894         * reflection.c (mono_image_build_metadata): Avoid creation of a default
5895         main module, since it is now done by the managed code.
5896
5897 2003-11-03  Martin Baulig  <martin@ximian.com>
5898
5899         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
5900         `ginst->klass' here.
5901         (method_encode_methodspec): Don't use the `ginst->generic_method's
5902         klass if it's a generic instance, use `ginst->klass' in this case.
5903
5904 2003-11-03  Martin Baulig  <martin@ximian.com>
5905
5906         * reflection.c (mono_image_get_generic_method_param_info):
5907         Removed, use mono_image_get_generic_param_info() instead.
5908         (mono_image_get_type_info): Write the GenericParam table before
5909         the Method table.  This is neccessary because in the GenericParam
5910         table, type parameters of the class (ie. '!0' etc.) must come
5911         before the ones from its generic methods (ie. '!!0' etc).
5912
5913 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5914
5915         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
5916
5917 2003-11-02  Martin Baulig  <martin@ximian.com>
5918
5919         * reflection.c (create_generic_typespec): Take a
5920         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
5921         the generic parameters from it.
5922
5923 2003-11-02  Martin Baulig  <martin@ximian.com>
5924
5925         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
5926         instead of a `MonoClassField *' since we just need the type.
5927         (create_generic_typespec): New static function.  Creates a
5928         TypeSpec token for a generic type declaration.
5929         (mono_image_get_generic_field_token): New static function.
5930         (mono_image_create_token): If we're a FieldBuilder in a generic
5931         type declaration, call mono_image_get_generic_field_token() to get
5932         the token.
5933
5934 2003-11-02  Martin Baulig  <martin@ximian.com>
5935
5936         * reflection.h
5937         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
5938         `MonoReflectionGenericInst *declaring_type' and
5939         `MonoReflectionGenericInst *reflected_type' fields.
5940
5941         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
5942         `MonoReflectionGenericInst *declaring_type' and a
5943         `MonoReflectionGenericInst *reflected_type' argument instead of a
5944         single `MonoReflectionGenericInst *type' one.  Set
5945         `res->declaring_type' and `res->reflected_type' from them.
5946         (mono_reflection_inflate_field): Likewise.      
5947
5948 2003-11-02  Martin Baulig  <martin@ximian.com>
5949
5950         * class.c (mono_class_setup_vtable): Don't store generic methods
5951         in the vtable.  
5952
5953 2003-11-02  Martin Baulig  <martin@ximian.com>
5954
5955         * reflection.h (MonoReflectionGenericInst): Added
5956         `MonoReflectionType *declaring_type'.
5957
5958         * reflection.c (mono_reflection_bind_generic_parameters): Use
5959         `if (tb->parent)' instead of `klass->parent'.
5960
5961 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
5962
5963         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
5964         with an empty ASSEMBLY table.
5965
5966         * reflection.c (mono_image_build_metadata): Avoid using the same loop
5967         variable in the inner and outer loops.
5968
5969 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
5970
5971         * metadata.h (mono_metadata_make_token): Put parentheses around macro
5972         argument.
5973
5974         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
5975         
5976         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
5977         icalls. Instead, do everything in managed code. This is needed since
5978         it is hard to restore the original domain etc. in unmanaged code in the
5979         presence of undeniable exceptions.
5980
5981         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
5982         New icalls to push and pop appdomain refs.
5983
5984 2003-10-31  Martin Baulig  <martin@ximian.com>
5985
5986         * class.c (inflate_generic_type): Renamed to
5987         mono_class_inflate_generic_type() and made it public.
5988
5989         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
5990         New interncall.
5991
5992         * loader.c (mono_field_from_memberref): Also set the retklass for
5993         typespecs.
5994
5995         * fielder.c (mono_image_get_inflated_field_token): New static
5996         method; creates a metadata token for an inflated field.
5997         (mono_image_create_token, fixup_method): Added support for
5998         "MonoInflatedField".
5999         (fieldbuilder_to_mono_class_field): New static function.
6000         (mono_reflection_inflate_field): New public function.
6001
6002         * reflection.h
6003         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6004         (MonoReflectionInflatedField): New typedef.     
6005
6006 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6007
6008         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6009         for Solaris and other platforms without s6_addr16
6010
6011 2003-10-30  Martin Baulig  <martin@ximian.com>
6012
6013         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6014         argument instead of two.
6015         (mono_class_inflate_generic_signature): Likewise.
6016         (inflate_generic_header): Likewise.
6017         (mono_class_inflate_generic_method): Likewise.  In addition, if
6018         `ginst->klass' is set, it becomes the new `method->klass'.
6019
6020         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6021         field.
6022
6023         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6024         first byte. [FIXME]
6025         (method_encode_methodspec): If we have generic parameters, create
6026         a MethodSpec instead of a MethodRef.
6027         (fixup_method): Added support for "MonoInflatedMethod" and
6028         "MonoInflatedCtor".
6029         (mono_image_create_token): Added support for "MonoInflatedMethod"
6030         and "MonoInflatedCtor".
6031         (inflated_method_get_object): New static function; returns a
6032         managed "System.Reflection.MonoInflatedMethod" object.
6033         (mono_reflection_bind_generic_method_parameters): Return a
6034         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6035         (mono_reflection_inflate_method_or_ctor): Likewise.
6036         (mono_image_get_generic_method_param_info): Initialize unused
6037         fields to zero.
6038         (mono_image_get_generic_param_info): Likewise.
6039
6040         * reflection.h (MonoReflectionInflatedMethod): New public
6041         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6042         "S.R.MonoInflatedCtor" classes.
6043
6044         * loader.c (method_from_memberref): If we're a TypeSpec and it
6045         resolves to a generic instance, inflate the method.
6046
6047 2003-10-28  Dick Porter  <dick@ximian.com>
6048
6049         * object.c (mono_runtime_run_main): Convert command-line arguments
6050         into utf8, falling back to the user's locale encoding to do so.
6051
6052 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6053
6054         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6055         at this time.
6056
6057         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6058
6059         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6060         up icalls at method definition time. Partially fixes #33569.
6061
6062 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6063
6064         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6065         marshalling of arrays. Fixes #50116.
6066
6067         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6068
6069         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6070         points to a vtable in the dying appdomain.
6071
6072         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6073         listeners into unmanaged code inside the lock.
6074
6075         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6076         domains and add some comments.
6077
6078 2003-10-25  Martin Baulig  <martin@ximian.com>
6079
6080         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6081
6082         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6083
6084         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6085         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6086         currently parsing.  Create the generic class and store it in
6087         `generic_inst->klass' before parsing the type arguments.  This is
6088         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6089         for an example.
6090         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6091         to support recursive typespec entries.
6092
6093         * class.c (mono_class_setup_parent): If our parent is a generic
6094         instance, we may get called before it has its name set.
6095         (mono_class_from_generic): Splitted into
6096         mono_class_create_from_generic() and mono_class_initialize_generic().
6097
6098 2003-10-25  Martin Baulig  <martin@ximian.com>
6099
6100         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6101         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6102         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6103         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6104
6105         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6106         (create_typespec): Likewise.
6107         (mono_reflection_bind_generic_parameters): Return a
6108         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6109         (mono_reflection_inflate_method_or_ctor): New public function.
6110
6111         * reflection.h (MonoReflectionGenericInst): New typedef.        
6112
6113 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6114
6115         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6116         inside the domain lock. Fixes #49993.
6117         
6118         * object.c (mono_class_vtable): When typed allocation is used, 
6119         allocate vtables in the GC heap instead of in the mempool, since the
6120         vtables contain GC descriptors which are used by the collector even
6121         after the domain owning the mempool is unloaded.
6122
6123         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6124
6125         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6126         reflect what it does. Also invalidate mempools instead of freeing
6127         them if a define is set.
6128
6129         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6130         of the appdomain.
6131         
6132         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6133         hold the finalizable objects in this domain.
6134
6135         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6136         appdomain.
6137
6138         * appdomain.c (mono_domain_set): New function to set the current
6139         appdomain, but only if it is not being unloaded.
6140
6141         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6142         appdomain which is being unloaded.
6143         
6144         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6145         unloading of the root appdomain.
6146
6147         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6148         icall to execute a method in another appdomain. Intended as a 
6149         replacement for InternalSetDomain, which can confuse the code 
6150         generation in the JIT.
6151
6152         * appdomain.c (mono_domain_is_unloading): New function to determine
6153         whenever an appdomain is unloading.
6154
6155         * appdomain.c (mono_domain_unload): New function to correctly unload
6156         an appdomain.
6157
6158         * assembly.c (mono_assembly_load_references): Check that an assembly
6159         does not references itself.
6160
6161         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6162         domain manually, it asks the finalizer thread to do it, then waits for
6163         the result. Also added a timeout.
6164
6165         * icall.c: Register the new icalls.
6166
6167         * threads.h threads.c: Export the mono_gc_stop_world and 
6168         mono_gc_start_world functions.
6169         
6170         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6171         function to fill out the mempool with 0x2a.
6172
6173 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6174
6175         * reflection.h (MonoReflectionMethodAux): New structure to store
6176         information which is rarely used, thus is not in the MonoMethod
6177         structure.
6178
6179         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6180         store the aux info.
6181
6182         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6183         and marshalling info into the aux structure.
6184
6185         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6186         from the aux structure.
6187
6188         * loader.c (mono_method_get_param_names): Retrieve the param names from
6189         the aux structure.
6190         
6191 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6192
6193         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6194         warning.
6195
6196 2003-10-21  Dick Porter  <dick@ximian.com>
6197
6198         * socket-io.c
6199         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6200         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6201
6202 2003-10-21  Martin Baulig  <martin@ximian.com>
6203
6204         * reflection.c (mono_reflection_bind_generic_parameters):
6205         `klass->parent' is NULL for interfaces.
6206
6207 2003-10-21  Martin Baulig  <martin@ximian.com>
6208
6209         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6210
6211 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6212
6213         * exception.c (mono_exception_from_name_msg): New helper function for
6214         creating exceptions and initializing their message field.
6215
6216         * exception.c: Simplify functions using the new helper.
6217
6218         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6219         New function.
6220
6221         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6222         mono_raise_exception, since otherwise gcc doesn't generate the function
6223         epilog for raise_exception, confusing the stack unwinding in the JIT.
6224         Fixes #45043.
6225
6226         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6227         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6228         Fixes #49499.
6229
6230 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6231
6232         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6233         utf8.
6234
6235 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6236
6237         * icall.c: Removed GetUninitializedObject method because
6238           AllocateUninitializedClassInstance does the same.
6239
6240 2003-10-18  Martin Baulig  <martin@ximian.com>
6241
6242         * class.c (inflate_generic_signature): Renamed to
6243         mono_class_inflate_generic_signature() and made it public.
6244         (my_mono_class_from_generic_parameter): New static function; if we
6245         don't already have the generic parameter's MonoClass, create a
6246         very simple one which is just used internally in the runtime and
6247         not passed back to managed code.
6248
6249         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6250
6251         * metadata.h (MonoMethodSignature): Moved the
6252         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6253         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6254
6255         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6256         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6257         interncall on the MonoMethod class, not on MethodInfo.
6258         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6259         calling mono_reflection_bind_generic_method_parameters() directly.
6260
6261         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6262         return the already computed `method->signature'.
6263         (method_from_methodspec): New static function to load a method
6264         from a MethodSpec entry.
6265         (mono_get_method_from_token): Call the new method_from_methodspec()
6266         for MethodSpec tokens.  
6267         (mono_get_method_from_token): If we're a generic method, load the
6268         type parameters.
6269
6270         * reflection.c (mono_image_get_memberref_token): Allow
6271         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6272         table.
6273         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6274         (mono_image_create_token): First check whether it's a generic
6275         method (so we'd need to create a MethodSpec), then do the other
6276         two alternatives.
6277         (mono_reflection_bind_generic_method_parameters): Return a
6278         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6279         called directly from the interncall.
6280
6281 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6282
6283         * reflection.c (load_public_key): Move loading of the public key
6284         into managed code.
6285
6286         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6287
6288         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6289         fields.
6290
6291         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6292         culture, hash_alg and public_key. Fixes #49555.
6293
6294 2003-10-17  Martin Baulig  <martin@ximian.com>
6295
6296         * class.h (MonoGenericInst): Moved this declaration here and added
6297         `MonoMethod *generic_method'.
6298
6299         * icall.c
6300         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6301         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6302
6303         * metadata.c (mono_metadata_type_equal): Two types of
6304         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6305         index; ie. don't compare the address of the `MonoGenericParam'
6306         structure.
6307         (mono_metadata_load_generic_params): Removed the `MonoMethod
6308         *method' argument.
6309
6310         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6311         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6312
6313         * reflection.c (method_encode_signature): Encode the number of
6314         generic parameters.
6315         (encode_generic_method_sig): New static function.
6316         (method_encode_methodspec): New static function; creates an entry
6317         in the MethodSpec table for a generic method.
6318         (mono_image_get_methodspec_token): New static function.
6319         (mono_image_create_token): Call mono_image_get_methodspec_token()
6320         for generic methods.
6321         (mono_reflection_bind_generic_method_parameters): New public
6322         function.  Instantiates a generic method.
6323
6324 2003-10-16  Martin Baulig  <martin@ximian.com>
6325
6326         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6327         *gen_params' here from MonoMethodHeader.
6328
6329         * metadata.c (mono_metadata_parse_method_signature): If we have
6330         generic parameters, initialize `method->gen_params' and then set
6331         the correct `type->data.generic_param' in all the parameters.
6332
6333 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6334
6335         * threads.c (mono_threads_get_default_stacksize): New function to 
6336         return the default stacksize.
6337
6338         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6339         termination of the finalizer thread, since the previous method had
6340         race conditions. Fixes #49628.
6341
6342         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6343         as for the other managed threads.
6344
6345 2003-10-16  Martin Baulig  <martin@ximian.com>
6346
6347         * class.c (inflate_generic_signature): Copy `generic_param_count'
6348         and `gen_params'.
6349
6350         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6351         New interncall.
6352
6353         * metadata.c (mono_metadata_parse_method_signature): Actually set
6354         the `method->generic_param_count' here.
6355         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6356
6357 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6358
6359         * object.h: Add a new field to TypedRef to simplify the implementation
6360         of the REFANY opcodes in the JIT.
6361
6362         * icall.c: Make use of the new field.
6363
6364         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6365         dynamically.
6366
6367 2003-10-15  Martin Baulig  <martin@ximian.com>
6368
6369         * class.c (mono_class_from_gen_param): Renamed to
6370         mono_class_from_generic_parameter() and moved most of the
6371         functionality from mono_reflection_define_generic_parameter()
6372         here; ie. we create a "real" class here.
6373         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6374         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6375         previously been called.
6376
6377         * class.h (MonoGenericParam): Moved the declaration of this struct
6378         here from metadata.h and added `MonoMethod *method'.
6379
6380         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6381         interncall.
6382
6383         * loader.c (mono_get_method_from_token): If we have any generic
6384         parameters, call mono_metadata_load_generic_params() to read them
6385         from the MONO_TABLE_GENERICPAR.
6386
6387         * metadata.c (mono_metadata_load_generic_params): Added
6388         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6389
6390         * metadata.h (MonoMethodSignature): Replaced
6391         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6392         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6393
6394         * reflection.c (mono_reflection_define_generic_parameter): Moved
6395         most of the functionality into the new
6396         mono_class_from_generic_parameter(); set the `method' field if
6397         we're a method parameter.       
6398
6399 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6400
6401         * marshal.c (emit_struct_conv): if native size is 0
6402         emit no code.
6403
6404 2003-10-14  Martin Baulig  <martin@ximian.com>
6405
6406         * icall.c: The generics API has changed in the spec since it was
6407         added to System.Type; these modifications make it match the spec
6408         again.
6409         (ves_icall_Type_GetGenericParameters): Renamed to
6410         `ves_icall_Type_GetGenericArguments'.
6411         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6412         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6413         `ves_icall_MonoType_get_HasGenericArguments'.
6414         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6415         `ves_icall_MonoType_get_IsGenericParameter'.
6416         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6417         this is no interncall anymore.
6418         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6419         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6420
6421 2003-10-14  Martin Baulig  <martin@ximian.com>
6422
6423         * reflection.c (mono_reflection_bind_generic_parameters): Also
6424         inflate generic methods if we're reading the class from IL.
6425
6426 2003-10-13  Martin Baulig  <martin@ximian.com>
6427
6428         * reflection.c (mono_reflection_define_generic_parameter): This
6429         method isn't called directly from the icall anymore; take a
6430         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6431         method generic parameters.
6432         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6433         (method_builder_encode_signature): Encode generic parameters.
6434         (mono_image_get_method_info): Write generic params to the
6435         MONO_TABLE_GENERICPARAM table.
6436
6437         * reflection.h (MonoReflectionMethodBuilder): Added
6438         `MonoArray *generic_params'.
6439
6440         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6441
6442         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6443         wrapper for mono_reflection_define_generic_parameter().
6444         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6445
6446 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6447
6448         * marshal.h: Add missing function to fix build.
6449
6450         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6451         the SetLastError pinvoke attribute.
6452
6453         * marshal.c (mono_marshal_set_last_error): New helper function called
6454         by the generated code.
6455         
6456         * marshal.c (mono_mb_emit_branch): New helper function.
6457
6458         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6459
6460         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6461         classes as parameters and return values of delegates. Fixes #29256. 
6462
6463 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6464
6465         * locales.c: use gint32 in non HAVE_ICU case
6466
6467 2003-10-11  Martin Baulig  <martin@ximian.com>
6468
6469         * mono-debug.c (mono_debug_add_method): Added a workaround for
6470         bug #48591.
6471
6472 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6473
6474         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6475         delegates passed to native code must use the STDCALL calling 
6476         convention. Fixes #35987.
6477
6478 2003-10-10  Martin Baulig  <martin@ximian.com>
6479
6480         * class.c (inflate_generic_type): If we're inflating for a generic
6481         type instance (and not for a generic method), return
6482         MONO_TYPE_MVAR unchanged.
6483
6484 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6485
6486         * string-icalls.c: Join ignores null strings in the source array.
6487         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6488         * threads.c: GetAvailableTheads is slightly more accurate.
6489
6490 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6491
6492         * threads.h threads.c : add mono_threads_set_default_stacksize
6493         and pass default to CreateThread calls.
6494
6495 2003-10-09  Dick Porter  <dick@ximian.com>
6496
6497         * icall.c:
6498         * locales.h:
6499         * locales.c: Internal calls for constructing CultureInfo and
6500         related objects from libicu (if its available.)
6501
6502 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6503
6504         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6505
6506 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6507
6508         * threadpool.c: added an argument to async_invoke_thread that is the
6509         item to process, pass the MonoAsyncResult to the thread start function
6510         when creating a new thread. This way we don't need to acquire any lock
6511         when we're creating a new thread. Readded a semaphore for faster
6512         response times (instead of that Sleep i added).
6513
6514 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6515
6516         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6517         get daylight change dates better on Windows, fix handling
6518         of platforms without tm_gmtoff.
6519
6520 2003-10-06  Martin Baulig  <martin@ximian.com>
6521
6522         * class.c (inflate_generic_method): Renamed to
6523         mono_class_inflate_generic_method() and made public.
6524         (mono_class_init): Don't inflate the generic methods here.
6525         (mono_class_from_generic): Added `gboolean inflate_methods'
6526         argument.  Inflate the methods here.
6527
6528         * loader.c (mono_method_get_param_names): Ignore instances of
6529         generic types for the moment.
6530
6531         * reflection.c (fixup_method): Added support for inflated methods.
6532         (mono_image_create_token): Use mono_image_get_methodref_token()
6533         for inflated methods.
6534         (mono_custom_attrs_from_param): Ignore instances of generic types
6535         for the moment.
6536         (mono_reflection_bind_generic_parameters): New public function.
6537         Moved all the functionality from
6538         ves_icall_Type_BindGenericParameters() here and added support for
6539         dynamic types.
6540         (mono_reflection_define_generic_parameter): Initialize
6541         `klass->methods' here.
6542
6543         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6544         functionality into mono_reflection_define_generic_parameter().
6545         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6546         TypeBuilder, return that TypeBuilder.
6547
6548 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6549
6550         * appdomain.c: removed mono_delegate_semaphore.
6551
6552         * threadpool.c:
6553         (mono_thread_pool_add): moved hash table creation inside and the thread 
6554         creation outside of the critical region.
6555         (mono_thread_pool_finish): removed obsolete code.
6556         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6557         continue or exit the thread depending on the queue.
6558
6559 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6560
6561         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6562         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6563         handle more bool marshalling options
6564
6565 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6566
6567         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6568         arrays of structs. Also add a more descriptive error message when
6569         a structure member is marshalled as LPArray.
6570
6571 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6572
6573         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6574         marshalling arrays of complex types. Fixes #29098. Also remove an
6575         usused and incomplete function.
6576
6577 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6578
6579         * gc.c: report heap_size - free_bytes as total memory allocated
6580         (bug#49362).
6581
6582 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6583
6584         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6585         fix timezone handling problems on Windows.
6586         
6587         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6588         asserts when the year is outside the range handled by ms the functions.
6589
6590         * class.c (setup_interface_offsets): If the class is an interface,
6591         fill out its interface_offsets slot.
6592
6593 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6594
6595         * threadpool.c: mark threadpool threads as background.
6596
6597 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6598
6599         * decimal.c - define DECINLINE to nothing if not using GCC
6600
6601 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6602
6603         * assembly.c: More refcount fixes.
6604
6605 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6606
6607         * string-icalls.c: if we're not trimming, return the same string.
6608         When not splitting, don't create a new string.
6609
6610 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6611
6612         * image.c:
6613         (mono_image_open): increment the ref_count inside the critical section.
6614
6615 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6616
6617         * image.c (mono_image_open): Fix reference counting bug.
6618
6619 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6620
6621         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6622         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6623         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6624         mono_lookup_pinvoke_call throws.        
6625
6626 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6627
6628         * reflection.c (mono_reflection_parse_type): Fix #49114.
6629
6630         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6631         temporary workaround for cygwin header problem.
6632
6633         * object.c (mono_object_isinst): Synchronize this with the code
6634         generated by the JIT for casts.
6635
6636 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6637
6638         * reflection.c (encode_type): Fix #38332.
6639
6640 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6641
6642         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6643         the original method from the wrapper method.
6644
6645 2003-09-25  Martin Baulig  <martin@ximian.com>
6646
6647         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6648         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6649         (ves_icall_Type_get_IsGenericInstance): New interncall.
6650
6651 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6652
6653         * object.c: fix cast warning in big endian code.
6654
6655 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6656
6657         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6658         
6659 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6660
6661         * assembly.c: don't call check_env from mono_assembly_load. It's
6662         already done once in mono_assemblies_init and may cause headaches when
6663         multiple threads are loading assemblies.
6664
6665 2003-09-19  Martin Baulig  <martin@ximian.com>
6666
6667         * reflection.c (mono_reflection_define_generic_parameter): Don't
6668         allocate `klass->methods', set `klass->flags' to
6669         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6670
6671 2003-09-18  Martin Baulig  <martin@ximian.com>
6672
6673         * class.c (mono_class_init): Don't create `class->methods' if it's
6674         already initialized.
6675
6676         * metadata.c (mono_metadata_load_generic_params): Make this
6677         actually work.
6678
6679         * reflection.c (mono_reflection_define_generic_parameter): Set
6680         parent class and interfaces from the constraints.
6681
6682         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6683         to keep this struct in sync with the declaration in TypeBuilder.cs.
6684
6685 2003-09-17  Martin Baulig  <martin@ximian.com>
6686
6687         * metadata.h (MonoType): Replaced the data's `int type_param'
6688         field with `MonoGenericParam *generic_param'.
6689         (MonoGenericParam): Added `MonoClass *klass'.
6690
6691         * class.c (mono_class_from_gen_param): Removed the
6692         `MonoImage *image' and `int type_num' arguments.
6693
6694         * metadata.c (mono_metadata_parse_generic_param): New static
6695         method; creates a MonoGenericParam which just contains the index.
6696         (do_mono_metadata_parse_type): Call
6697         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6698         MONO_TYPE_MVAR.
6699
6700         * reflection.c (mono_image_typedef_or_ref): Generic type
6701         parameters may be in the same assembly, but never use a typedef
6702         for them.
6703         (mono_reflection_define_generic_parameter): We're now creating a
6704         "real" class for the type parameter; it's now safe to call
6705         mono_class_from_mono_type() on the class'es type, it'll do the
6706         right thing.
6707
6708 2003-09-16  Martin Baulig  <martin@ximian.com>
6709
6710         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6711         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6712         the `symfile' data structure must be fully initialized before it
6713         gets added to the table.
6714
6715 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6716
6717         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6718
6719         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6720         class init trampolines.
6721
6722 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6723
6724         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6725         to the built-in profiler to turn off time and allocation profiling
6726         respectively.
6727
6728 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6729
6730         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6731         g_direct_equal.
6732
6733         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6734         in human readable form.
6735
6736 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6737
6738         * reflection.c icall.c: Fixed warnings.
6739
6740         * image.c (load_class_names): Use a temporary hash table to hold the
6741         namespaces in order to avoid doing many string comparisons.
6742
6743         * image.h: Fix typo.
6744
6745         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6746         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6747         since the NULL case is short-circuited inside g_hash_table_lookup, 
6748         leading to better performance.  
6749
6750         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6751         obtain the first custom attribute for a given index. Depends on the
6752         CustomAttribute table being sorted by the parent field.
6753
6754         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6755         for better performance.
6756
6757 2003-09-07  Martin Baulig  <martin@ximian.com>
6758
6759         * class.c (mono_class_init): If we're a generic instance, inflate
6760         all our methods instead of loading them from the image.
6761         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6762
6763 2003-09-07  Martin Baulig  <martin@ximian.com>
6764
6765         * mono-debug-debugger.c: Added support for constructors.
6766
6767 2003-09-06  Martin Baulig  <martin@ximian.com>
6768
6769         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6770         New interncall.
6771
6772         * reflection.c (mono_reflection_setup_generic_class): Call
6773         ensure_runtime_vtable() to create the vtable.
6774
6775 2003-09-05  Martin Baulig  <martin@ximian.com>
6776
6777         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6778         MONO_TYPE_MVAR.
6779
6780 2003-09-04  Martin Baulig  <martin@ximian.com>
6781
6782         * reflection.c (mono_reflection_define_generic_parameter): Generic
6783         parameters start with zero.
6784
6785 2003-09-04  Martin Baulig  <martin@ximian.com>
6786
6787         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6788
6789         * reflection.h (MonoReflectionGenericParam): New typedef.
6790         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
6791         the generic parameters from the managed TypeBuilder.
6792
6793         * reflection.c (mono_reflection_define_generic_parameter): New function.
6794         (mono_reflection_create_runtime_class): Encode generic parameters.
6795         (mono_reflection_setup_generic_class): New function; this is
6796         called after adding adding all generic params to the TypeBuilder.
6797         (encode_type): Added MONO_TYPE_VAR.
6798
6799 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
6800
6801         * class.h class.c (mono_class_needs_cctor_run): Moved this method
6802         here from the JIT.
6803
6804         * assembly.h assembly.c: Moved the AOT loading code into an assembly
6805         load hook.
6806
6807 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
6808
6809         * reflection.h reflection.c class.h class.c: Delete duplicate 
6810         definition of mono_type_get_name () from reflection.c and export the
6811         one in class.c.
6812
6813         * class.c: Class loading fixes from Bernie Solomon 
6814         (bernard@ugsolutions.com).
6815
6816         * reflection.c: Endianness fixes from Bernie Solomon 
6817         (bernard@ugsolutions.com).
6818         
6819 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
6820
6821         * assembly.h assembly.c: Define a file format version for AOT
6822         libraries.
6823         
6824         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
6825
6826         * appdomain.h (MonoJitInfo): New field to determine whenever the
6827         code is domain neutral.
6828         
6829 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
6830
6831         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
6832
6833 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
6834
6835         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
6836         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
6837         Avoid caching the result since strings must be domain specific. Fixes
6838         #48050.
6839
6840 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
6841
6842         * marshal.c (mono_marshal_init): Make this callable multiple times
6843         since it is hard to find a correct place to call it.
6844
6845         * object.c (mono_runtime_class_init): Execute static constructors in
6846         the correct appdomain.
6847
6848         * image.c (build_guid_table): Handle the case when multiple images have
6849         the same GUID.
6850
6851 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6852
6853         * icall.c: added a couple of icalls for System.Web.
6854
6855 2003-08-28  Martin Baulig  <martin@ximian.com>
6856
6857         * icall.c (ves_icall_Type_BindGenericParameters): Use
6858         `klass->generic_inst' instead of `&klass->byval_arg' in the
6859         mono_type_get_object() call.  The returned type must be
6860         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
6861
6862 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
6863
6864         * NOTES: New file.
6865
6866         * object.c (mono_class_proxy_vtable): Make it thread safe.
6867
6868         * pedump.c: Fix warning.
6869
6870         * object.c appdomain.h: Get rid of metadata_section. 
6871         It is no longer needed and it was causing deadlocks with domain->lock.
6872
6873         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
6874
6875 2003-08-26  Martin Baulig  <martin@ximian.com>
6876
6877         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
6878
6879 2003-08-26  Martin Baulig  <martin@ximian.com>
6880
6881         * pedump.c (main): Call mono_metadata_init(),
6882         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
6883         and mono_loader_init().
6884
6885 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
6886
6887         * loader.h: Add missing include to fix build.
6888
6889         * image.h: mono_image_load_references is no more.
6890
6891         * assembly.c: Reworked assembly loading to make it really thread safe.
6892         After these changes, the assembly returned by mono_assembly_open is
6893         fully initialized, i.e. all its references assemblies are loaded.
6894
6895         * assembly.c (mono_image_load_references): Renamed to 
6896         mono_assembly_load_references, and made private, since clients no
6897         longer need to call it.
6898
6899         * class.c: Removed calls to mono_assembly_load_references, since it was
6900         a source of deadlocks.
6901
6902         * loader.h loader.c class.h class.c: Protect data structures using a 
6903         new lock, the loader lock.
6904
6905         * class.c (mono_class_setup_vtable): Create temporary hash tables and
6906         GPtrArrays only when needed.
6907
6908         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
6909         into empty structures by mcs. Fixes pinvoke7.cs.
6910         
6911         * domain.c (mono_init): Call a new initialization function.
6912
6913         * appdomain.c (mono_runtime_init): Call the new initializer function
6914         of the marshal module.
6915
6916         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
6917         inserted into empty structures by mcs. Fixes pinvoke7.cs.
6918
6919         * marshal.h marshal.c: Added locks around the wrapper caches to make
6920         this module thread safe.
6921
6922         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
6923         this argument. Fixes pinvoke1.exe.
6924
6925 2003-08-25  Lluis Sanchez <lluis@ximian.com>
6926
6927         * object.h: Added call_type field to MonoMethodMessage and the corresponding
6928         enumeration of values. Removed fields to store remote call output values in
6929         MonoAsyncResult. Not needed any more.
6930         * object.c: Initialize call_type and async_result fields in mono_message_init.
6931         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
6932         dispatching the message.
6933         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
6934         async call to finish. To do it use a message with EndInvoke call type.
6935
6936 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
6937
6938         * loader.h loader.c (mono_method_hash_marhal_info): New function which
6939         determines whenever a method has marshalling info.
6940
6941 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6942
6943         * assembly.c: fix the build on windows.
6944
6945 2003-08-22 Lluis Sanchez <lluis@ximian.com>
6946
6947         * object.cs: Fixed bug #47785.
6948
6949 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
6950
6951         * string-icalls.c (StringReplace): If their are no occurances of
6952         the old string found return a reference to the supplied
6953         string. This saves some memory and matches MS behavoir.
6954         
6955 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6956
6957         * socket-io.c: fixed compilation for systems that define AF_INET6
6958         and don't define SOL_IP/SOL_IPV6.
6959
6960 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
6961
6962         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
6963         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
6964
6965         * rawbuffer.c rawbuffer.h: Make this module thread safe.
6966
6967         * domain.c: Make this module thread safe.
6968
6969         * domain.c (mono_init): Call new initialization function.
6970
6971         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
6972         reference types too. Fixes #38812.
6973
6974         * image.c (mono_image_init): Fixed warnings.
6975
6976         * class.c (mono_class_from_typeref): Handle assembly load failure
6977         correctly.
6978
6979         * appdomain.c (add_assemblies_to_domain): Handle the case when
6980         the references of an assembly are not yet loaded.
6981
6982         * metadata.c image.c assembly.c: Moved initialization of global
6983         variables to a separate function called at startup since lazy 
6984         initialization of these variables is not thread safe.
6985         
6986         * image.c assembly.c: Made this module thread safe by adding locks in 
6987         the appropriate places.
6988
6989         * domain.c (mono_init): Call the new initialization functions of the
6990         three modules.
6991
6992 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
6993
6994         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
6995           make a direct call. It is proxy's work to make the call asynchronous.
6996           mono_delegate_end_invoke(): If the targe is a proxy, just collect
6997           the return values.
6998         * object.cs: mono_method_call_message_new(): read AsyncResult and
6999           state object from parameters list, if this info is requested.
7000         * object.h: Added fields to store remote call output values in
7001           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7002
7003 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7004
7005         * object.h: add needed fields to MonoThread.
7006         * threads.c, threads.h: allow registering a function to cleanup data
7007         allocated per thread by the JIT.
7008
7009 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7010
7011         * loader.h: portability fix by Bernie Solomon
7012         * <bernard@ugsolutions.com>.
7013
7014 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7015
7016         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7017         return a MonoArray. This simplifies the code and also ensures that
7018         the cache allways contains an object reference as a value.
7019
7020         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7021         function.
7022
7023 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7024
7025         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7026         fixes a problem with byte ordering when getting the address family for
7027         a socket.
7028
7029 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7030
7031         * .cvsignore: Added monosn.
7032
7033         * reflection.h reflection.c loader.c: Added support for parameter
7034         marshalling to dynamically created types. Fixes #47295.
7035
7036 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7037
7038         * rand.c: remove useless warnings.
7039
7040 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7041
7042         * class.c: implemented ldtoken for methods and fieldrefs.
7043
7044 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7045
7046         * threadpool.c: when mono_async_invoke was called, no one took care of
7047         monitoring the queue. So if the method invoked took some time and we
7048         got new async invoke requests after 500 ms (the thread created waited
7049         that long in WaitForSingleObject), the new async invoke was not called
7050         until the previous one finished.
7051
7052         This is fixed now. Thanks to Totte for helping with it.
7053
7054 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7055
7056         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7057
7058 2003-08-11  Martin Baulig  <martin@ximian.com>
7059
7060         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7061
7062 2003-08-06  Martin Baulig  <martin@ximian.com>
7063
7064         * mono-debug-debugger.c: Added support for static fields,
7065         properties and methods.
7066
7067 2003-08-06  Martin Baulig  <martin@ximian.com>
7068
7069         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7070         make this work for applications with multiple application domains.
7071
7072 2003-08-04  Martin Baulig  <martin@ximian.com>
7073
7074         * mono-debug-debugger.c: Completely reworked the type support; the
7075         most important thing is that we're now just using one single
7076         `MonoType' instance per type.
7077
7078 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7079
7080         * mono-endian.h, mono-endian.c, icall.c: Added icall
7081         ves_icall_System_Double_AssertEndianity to assert double word endianity
7082         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7083
7084 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7085
7086         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7087         support, icalls and fixes.
7088
7089 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7090
7091         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7092         classes that are a punctuation character in .NET is not the same a
7093         g_unichar_ispunct.
7094
7095 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7096
7097         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7098
7099 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7100
7101         * icall.c: Add new MemCopy internalcall.
7102         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7103         Simplified code; It is not necessary to handle all the cases here,
7104         as the C# code takes care of it.  Only handle the case of the name
7105         resource embedded into the assembly.
7106
7107         Changed signature to return the data pointer and the size of the
7108         data. 
7109
7110 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7111
7112         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7113         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7114
7115 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7116
7117         * socket-io.c: ignore EINTR error in select.
7118
7119 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7120
7121         * class.h, class.c: removed unused subclasses field in MonoClass.
7122
7123 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7124
7125         * icall.c: improve fix of get_base_definition(). If the parent class
7126           doesn't have the mehod, look at the parent of the parent.
7127         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7128           to check if a parameter is an in or out parameter
7129           (PARAM_ATTRIBUTE_IN is not set by default).
7130           mono_method_return_message_restore(): Use mono_class_value_size to
7131           get the size of a value type. mono_type_stack_size (parameterType)
7132           does not return the correct value if parameterType is byRef.
7133           mono_load_remote_field(), mono_load_remote_field_new(),
7134           mono_store_remote_field(), mono_store_remote_field_new():
7135           raise exception if the remote call returns an exception.
7136
7137 2003-07-28  Martin Baulig  <martin@ximian.com>
7138
7139         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7140         method.  This is a wrapper around mono_runtime_invoke() which
7141         boxes the instance object if neccessary.
7142
7143 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7144
7145         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7146         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7147
7148 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7149
7150         * icall.c: disable mcs bug workaround.
7151
7152 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7153
7154         * object.c (mono_runtime_class_init): Take the metadata_section
7155         mutex before obtaining the domain mutex.
7156
7157         * appdomain.h: Added definition of metadata_section mutex here. 
7158
7159         * object.c: define metadata_mutex here.
7160
7161 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7162
7163         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7164         fixed.
7165
7166 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7167
7168         * reflection.c: Fix bug #46669
7169
7170 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7171
7172         * exception.c:
7173         * exception.h:
7174         * icall.c:
7175         * object.h: fill in the type name for TypeLoadException.
7176
7177 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7178
7179         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7180         relationship between TypeBuilders while compiling corlib) and bug
7181         45993 (Array types returned from the runtime while compiling
7182         corlib were from the loaded corlib).
7183
7184 2003-07-22  Martin Baulig  <martin@ximian.com>
7185
7186         * mono-debug-debugger.c: Reworked the type support a bit more;
7187         distinguish between types and classes.
7188
7189 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7190
7191         * icall.c: add IsArrayImpl icall.
7192
7193 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7194
7195         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7196         initializing real_size only once. Also fix bug #46602.
7197
7198 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7199
7200         * object.c: Renamed mono_metadata_section to metadata_section.
7201
7202 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7203
7204         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7205           empty array if the type is an array. Fixed.
7206           ves_icall_MonoMethod_get_base_definition: if the base method
7207           is abstract, get the MethodInfo from the list of methods of
7208           the class.
7209         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7210           and it was 1-based. Fixed in mono_param_get_objects.
7211
7212 2003-07-20  Martin Baulig  <martin@ximian.com>
7213
7214         * mono-debug.h: Set version number to 31.
7215         (mono_debug_init): Added `MonoDomain *' argument.
7216
7217         * mono-debug-debugger.c: Reworked the type support; explicitly
7218         tell the debugger about builtin types; pass the `klass' address to
7219         the debugger.
7220
7221 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7222
7223         * image.c: Allow new metadata tables to be loaded without a
7224         warning. Also update the warning message to give the new constant value.
7225                 
7226 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7227
7228         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7229         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7230         array type representation changes.
7231
7232 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7233
7234         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7235         on Environment.Exit () call.
7236
7237 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7238
7239         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7240         requires a matching corlib.
7241
7242 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7243
7244         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7245           Committed again without the CRs.
7246         
7247 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7248
7249         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7250           getting it from the "this" socket instance. Did not work
7251           if the socket is a subclass of Socket.
7252           Also fixed bug #35371.
7253
7254 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7255
7256         * metadata.c: fixed size for TypedByRef.
7257         * loader.c: when searching for a method, consider the vararg amrker.
7258         * unicode.c, decimal.c: constify some arrays.
7259
7260 2003-07-15  Dick Porter  <dick@ximian.com>
7261
7262         * socket-io.c: Fixed compilation for gcc < 3.2.
7263
7264         Fixed compilation for machines that don't have AF_INET6 (thanks to
7265         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7266
7267         Fixed compile warnings.
7268         
7269         Fixed formatting and line endings.
7270
7271 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7272
7273         * socket-io.h:
7274         * socket-io.c: Added IPv6 support.
7275
7276 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7277
7278         * class.c (mono_class_is_assignable_from): New function to implement
7279         the is_assignable_from logic. Used by mono_object_isinst, 
7280         Type::IsAssignableFrom () and the interpreter.
7281
7282         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7283         Object, even interfaces.
7284         
7285         * object.c (mono_object_isinst): Implement in terms of 
7286         is_assignable_from.
7287
7288         * icall.c (ves_icall_type_is_assignable_from): New icall.
7289
7290 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7291
7292         * domain.c (foreach_domain): fix compiler warning.
7293
7294 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7295
7296         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7297         not available on all plattforms
7298
7299 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7300
7301         * image.h image.c: Store the metadata version string in MonoImage.
7302         * icall.c: New icall to retrieve the image version.
7303         * reflection.c (create_dynamic_image): Fill in the image version field
7304         * reflection.c (build_compressed_metadata): Use the image version
7305         from the image structure.
7306
7307 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7308
7309         * appdomain.c: modified comment.
7310         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7311         That will be its last iteration when mono_gc_cleanup is called from
7312         mono_runtime_cleanup and before the domain is unloaded.
7313
7314         Fixes bug #45962.
7315
7316 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7317
7318         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7319         attributes.
7320
7321 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7322
7323         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7324         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7325         Bernie Solomon <bernard@ugsolutions.com>.
7326
7327 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7328
7329         * object.c, object.h: provide mono_object_new_fast() for faster
7330         allocation in some special cases.
7331
7332 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7333
7334         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7335         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7336
7337 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7338
7339         * threadpool.c: fix leaks.
7340
7341 2003-07-01  Dick Porter  <dick@ximian.com>
7342
7343         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7344         using MonoGHashTables.  Fixes threadpool bug posted to list.
7345
7346 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7347
7348         * image.h, image.c: added support to load an assembly from a byte array.
7349         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7350         assembly bundle support.
7351
7352 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7353
7354         * threadpool.c (mono_thread_pool_add): keep a reference to the
7355         AsyncResult to prevent GC
7356
7357 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7358
7359         * class.c: leak fix.
7360
7361 2003-06-25  Dick Porter  <dick@ximian.com>
7362
7363         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7364         for the async object, the WaitHandle object will close the handle.
7365         Fixes bug 45321.
7366
7367 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7368
7369         * class.c: in mono_array_class_get (), lookup from the hash with the
7370         same type we insert: this works around a bug in
7371         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7372         lluis. The real fix will have to wait for after the release.
7373
7374 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7375
7376         * icall.c: fix memory leak when getting type members.
7377
7378 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7379
7380         * reflection.c: added more pubtoken special cases.
7381
7382 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7383
7384         * class.c: handle field offset correctly when class size
7385         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7386
7387 2003-06-20  Martin Baulig  <martin@ximian.com>
7388
7389         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7390         *image' field.
7391
7392 2003-06-20  Martin Baulig  <martin@ximian.com>
7393
7394         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7395
7396 2003-06-20  Martin Baulig  <martin@ximian.com>
7397
7398         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7399         just distinguish between variables in registers and variables at
7400         an offset relative to a register.
7401
7402 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7403
7404         * icall.c: #ifdef out latest changes until mcs is fixed.
7405
7406 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7407
7408         * icall.c: return members in metadata order.
7409
7410 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7411
7412         * icall.c: avoid infinite loop in GetTimeZoneData.
7413
7414 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7415
7416         * icall.c: added Marshal.Prelink/All icalls.
7417
7418 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7419
7420         * object.c, object.h: fix warnings and do some overflow checking
7421         when creating arrays.
7422
7423 2003-06-17  Dick Porter  <dick@ximian.com>
7424
7425         * file-io.h:
7426         * file-io.c: File attributes need to be tweaked slightly when
7427         passed from the managed to the w32 world.
7428
7429 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7430         * profiler.h profiler-private.h profiler.c: Rework last patch
7431         based on suggestion by Paolo.
7432         
7433 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7434
7435         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7436         instruction level coverage data collection.
7437         * profiler.h profiler.c (: Added new callback function which can be
7438         used by the profiler to limit which functions should have coverage
7439         instrumentation.
7440         * profiler.c (mono_profiler_load): Call g_module_build_path to
7441         generate the file name of the profiler library.
7442
7443 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7444
7445         * profiler.c, profiler.h, profiler-private.h: added basic block 
7446         coverage profiling API.
7447
7448 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7449
7450         * reflection.c (mono_reflection_create_runtime_class): Add support
7451         for events in dynamically generated code.
7452
7453         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7454         not allocated.
7455
7456 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7457
7458         * icall.c: when getting timezone info, return reasonable values if we
7459         can't get the actual data.
7460
7461 2003-06-14  Dick Porter  <dick@ximian.com>
7462
7463         * threads.c (start_wrapper): Remove the reference to the thread
7464         object in the TLS data, so the thread object can be finalized.
7465         This won't be reached if the thread threw an uncaught exception,
7466         so those thread handles will stay referenced :-( (This is due to
7467         missing support for scanning thread-specific data in the Boehm GC
7468         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7469
7470 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7471
7472         * reflection.c: ensure streams and tables are first allocated with
7473         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7474
7475 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7476
7477         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7478
7479 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7480
7481         * reflection.c (mono_reflection_create_runtime_class): Add support for
7482         properties to dynamically created classes.
7483         * reflection.c: Fix a few places where non-MonoObjects were inserted
7484         into the tokens hashtable.
7485
7486 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7487
7488         * object.c: some support to handle out of memory exceptions.
7489
7490 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7491
7492         * marshal.c (mono_marshal_get_native_wrapper): support reference
7493         return types
7494
7495 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7496
7497         * object.h, object.c: more portability stuff from Bernie Solomon.
7498         Unexport mono_object_allocate(). Added mono_object_unbox ().
7499         Set exitcode when an unhandled exception is thrown.
7500
7501 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7502
7503         * marshal.c (mono_marshal_get_native_wrapper): use custom
7504         marshaler for return types.
7505
7506 2003-06-10  Dick Porter  <dick@ximian.com>
7507
7508         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7509         ip_mreq is available
7510
7511 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7512
7513         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7514         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7515         by Bernie Solomon <bernard@ugsolutions.com>.
7516
7517 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7518
7519         * gc.c (mono_gc_init): Avoid error message on shutdown when
7520         GC_DONT_GC=1 is used.
7521
7522         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7523         New icall to return the GUID of a module.
7524
7525 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7526
7527         * class.c: ensure instance size always includes the parent's size
7528         even whem class size is set explicitly (fixes bug#44294).
7529
7530 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7531
7532         * profiler.h, profiler.c: made the simple profiler thread-safe,
7533         get more accurate timing info. Allow the loading of an
7534         externally-developed profiler module.
7535
7536 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7537
7538         * marshal.c (mono_marshal_get_native_wrapper): improved
7539         class/byref arguments.
7540         (mono_marshal_get_native_wrapper): better string marshaling support.
7541
7542 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7543
7544         * class.c: ensure .pack and .size are handled correctly and
7545         simplified layout of static fields.
7546
7547 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7548
7549         * appdomain.c
7550         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7551
7552         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7553         current directory (fix bug 44008)
7554
7555 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7556
7557         * marshal.c (mono_marshal_get_native_wrapper): started support for
7558         custom marshalers.
7559         (mono_delegate_to_ftnptr): consider marshalling specifications
7560
7561 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7562
7563         * reflection.c, reflection.h: emit custom marshal info.
7564
7565 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7566
7567         * object.c: free the GError.
7568         * icall.c: added CloseEvent_internal.
7569         * threads.[ch]:
7570         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7571         call.
7572
7573 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7574
7575         * loader.c (mono_method_get_signature): Add support for dynamic
7576         assemblies.
7577
7578 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7579
7580         * reflection.c: fixed bug #43905.
7581
7582 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7583
7584         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7585         handling TypedReference and ArgIterator.
7586         * loader.c, loader.h: added function to get signature at call site.
7587
7588 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7589
7590         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7591         data readonly. Buglets and warning fixes. Some MethodSpec support.
7592
7593 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7594
7595         * class.h, class.c, object.c: remove relative numbering support.
7596
7597 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7598
7599         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7600         free the string, until we get a chance to fix Gtk#
7601
7602 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7603
7604         * marshal.c: revert last patch.
7605
7606 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7607
7608         * icall.c: updates for new mono_class_vtable() not calling
7609         the type constructor anymore.
7610
7611 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7612
7613         * object.h, object.c: separate vtable creation from type
7614         initialization. Make running the .cctor thread safe.
7615
7616 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7617
7618         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7619
7620 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7621
7622         * loader.c (mono_get_method): consider calling convention
7623
7624 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7625
7626         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7627         to return the invisible global type for a module.
7628
7629         * reflection.c (mono_image_build_metadata): Emit global fields too.
7630
7631 2003-05-20  Peter Williams  <peterw@ximian.com>
7632
7633         * loader.c (mono_lookup_internal_call): Add a few newlines.
7634
7635 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7636
7637         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7638         literal strings.
7639
7640         * appdomain.c (set_domain_search_path): Recalculate search path when
7641         AppDomainSetup.PrivateBinPath changes.
7642
7643         * object.c (mono_class_compute_gc_descriptor): It turns out some
7644         parts of the class libs (like System.Thread) holds pointers to
7645         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7646         to treat native int a pointer type here.
7647         
7648 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7649
7650         * appdomain.h, domain.c: add hashtable for jump target resolution.
7651
7652 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7653
7654         * reflection.h reflection.c icall.c: Added new icalls 
7655         GetManifestResourceInfoInternal, GetModulesInternal and support
7656         infrastructure.
7657
7658 2003-05-16  Dick Porter  <dick@ximian.com>
7659
7660         * icall.c:
7661         * file-io.h:
7662         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7663
7664 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7665
7666         * object.c: mono_store_remote_field: little fix to previous patch.
7667
7668 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7669
7670         * class.c: add constructors to array classes.
7671         * icall.c: special case array construction for InternalInvoke (),
7672
7673 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7674
7675         * class.h class.c reflection.c object.c: Added support for field
7676         defaults in dynamically generated classes.
7677
7678 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7679
7680         * reflection.c: properly encode charset for ddlimport.
7681
7682 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7683
7684         * threads.c: allow compiling without GC.
7685
7686 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7687
7688         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7689         handling of thread static data.
7690
7691 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7692
7693         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7694
7695 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7696
7697         * class.c (mono_array_class_get): always set the serializable flags
7698         (mono_array_class_get): always set the SEALED attribute for array types
7699
7700 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7701
7702         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7703         attributes (fix for bug 42021).
7704
7705 2003-05-12  Dick Porter  <dick@ximian.com>
7706
7707         * gc.c: Don't run finalizers when the finalizer thread is
7708         finishing up, because the default domain has already been
7709         destroyed.
7710
7711 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7712
7713         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7714         value is null, we should throw an exception.   This is slightly
7715         different than the other conventions used for the constructor.
7716
7717 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7718
7719         * socket-io.c: fixed windows build.
7720
7721 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7722
7723         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7724
7725 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7726
7727         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7728         compilers.
7729
7730 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7731
7732         * class.c (mono_class_layout_fields): Add experimental GC aware
7733         auto layout facility. Requires class library changes to work correctly.
7734
7735         (mono_class_setup_vtable): Avoid overriding explicit interface
7736         method implementations. Fixes iface3.exe test.
7737
7738         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7739         object reference.
7740         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7741         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7742
7743         * metadata.h: Add new type classification macro which determines
7744         whenever the type holds an object reference.
7745
7746 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7747
7748         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7749
7750 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7751
7752         * gc.c (finalizer_thread): Work around a GC bug.
7753
7754 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7755
7756         * marshal.c (emit_struct_conv): allow unions
7757
7758         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7759
7760 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7761
7762         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7763
7764 2003-05-06  Martin Baulig  <martin@ximian.com>
7765
7766         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7767
7768 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7769
7770         * socket-io.c:
7771         (Select_internal): allow NULLs, don't create arrays if not needed.
7772         Coupled with Socket.cs changes.
7773
7774         * threadpool.c:
7775         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7776         register a finalizer for it that will close the semaphore handle. This
7777         fixes the leak and make Lupus' test run with > 4080 loops.
7778
7779 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7780
7781         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7782         Jerome Laban (bug #42287)
7783
7784 2003-05-02  Martin Baulig  <martin@ximian.com>
7785
7786         * debug-mono-symfile.h
7787         (MonoSymbolFile): Moved declaration into mono-debug.h.
7788         (MonoDebugMethodJitInfo): Likewise.
7789         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
7790         argument.
7791         (_mono_debug_address_from_il_offset): Take a
7792         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
7793
7794         * mono-debug.h
7795         (MonoDebugDomainData): New struct.
7796         (mono_debug_get_domain_data): New function.
7797         (mono_debug_add_method): Take an additional `MonoDomain *'
7798         argument.
7799         (mono_debug_source_location_from_address): Likewise.
7800         (mono_debug_il_offset_from_address): Likewise.
7801         (mono_debug_address_from_il_offset): Likewise.
7802
7803 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
7804
7805         * reflection.c: one more check for null type in custom attrs.
7806
7807 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7808
7809         * reflection.c: avoid warning (comparison is always false due to limited
7810         range of data type).
7811
7812 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7813
7814         * icall.c: throw an exception in Type.GetField if the argument 'name'
7815         is NULL.
7816
7817 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
7818
7819         * reflection.c: fixed handling of enums in named arguments to custom
7820         attributes (bug #42123).
7821
7822 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
7823
7824         * reflection.c: use the right array element type and handle
7825         a null for a Type argument, too.
7826
7827 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
7828
7829         * reflection.c: handle arrays as arguments to custom attributes.
7830
7831 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7832
7833         * reflection.c: handle a string value in a custom attr
7834         ctor that takes an object.
7835
7836 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
7837
7838         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
7839         (fix bug #42063)
7840
7841 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
7842
7843         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
7844
7845 2003-04-27  Martin Baulig  <martin@ximian.com>
7846
7847         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
7848         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
7849         MONO_DEBUGGER_EVENT_BREAKPOINT.
7850         (mono_breakpoint_trampoline_code): Removed.
7851         (mono_debugger_event_handler): The last argument is now a
7852         `guint32'.
7853         (mono_debugger_insert_breakpoint_full): Removed the
7854         `use_trampoline' argument.
7855         (mono_debugger_method_has_breakpoint): Likewise.
7856         (mono_debugger_trampoline_breakpoint_callback): Renamed to
7857         mono_debugger_breakpoint_callback(); take the method and
7858         breakpoint number as arguments.
7859
7860 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
7861
7862         * metadata.c: fix off by one when loading parameters attributes.
7863
7864 2003-04-24  Martin Baulig  <martin@ximian.com>
7865
7866         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
7867
7868 2003-04-24  Martin Baulig  <martin@ximian.com>
7869
7870         * mono-debug-debugger.c: Moved all code which interacts with the
7871         Mono Debugger here.
7872
7873         * debug-mono-symfile.c: This code now just deals with the symbol
7874         file itself, the debugger code is now in mono-debug-debugger.c.
7875
7876 2003-04-23  Martin Baulig  <martin@ximian.com>
7877
7878         * mono-debug.c (mono_debug_source_location_from_il_offset):
7879         New method; like mono_debug_source_location_from_address(), but
7880         takes an IL offset instead of a machine address.
7881
7882 2003-04-23  Martin Baulig  <martin@ximian.com>
7883
7884         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
7885         `line' field; this is now computed by the debugger.
7886
7887 2003-04-23  Martin Baulig  <martin@ximian.com>
7888
7889         * mono-debug.[ch]: New files.  This is the new debugging interface.
7890
7891         * mono-debug-debugger.[ch]: New files.  Moved all code which
7892         interacts with the Mono Debugger here.
7893
7894 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
7895
7896         * domain.c (mono_init): initialize mono_defaults.monitor_class
7897
7898 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
7899
7900         * reflection.c (method_encode_code): Add a spicy exception to help
7901         future compiler authors.
7902
7903 2003-04-21  Martin Baulig  <martin@ximian.com>
7904
7905         * icall.c
7906         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7907         Make this work with relative pathnames; g_filename_to_uri() needs
7908         an absolute filename.
7909
7910 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
7911
7912         * icall.c: Track name changes in Object and ValueType.
7913
7914 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
7915
7916         * metadata.c (mono_type_stack_size): size should be a multiple of
7917         sizeof (gpointer)
7918
7919 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7920
7921         * gc.c:
7922         (internal_domain_finalize): moved into mono_domain_finalize. No need
7923         to create another thread because the finalizers will be run in the
7924         finalizer thread.
7925         
7926         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
7927         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
7928         to be run (MS does this too).
7929
7930 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
7931
7932         * object.c (mono_class_compute_gc_descriptor): Update comment.
7933
7934         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
7935
7936         * image.h: Add synchronized wrapper cache.
7937
7938         * image.c (do_mono_image_open): Initialize cache.
7939
7940         * reflection.c (create_dynamic_mono_image): Initialize cache.
7941
7942 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7943
7944         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
7945         ves_icall_System_Buffer_ByteLengthInternal.
7946
7947 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7948
7949         * reflection.c: setup klass->nested_in earlier. Allow
7950         a dash in the assembly name.
7951
7952 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
7953
7954         * metadata.c (mono_type_to_unmanaged): dont access
7955         type->data.klass for MONO_TYPE_OBJECT
7956         (mono_type_to_unmanaged): consider System.Delegate class
7957
7958 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
7959
7960         * class.c: just setup supertypes in the proper place instead of
7961         initializing the full element class for arrays.
7962
7963 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7964
7965         * class.c: ensure the element class of arrays is initialized.
7966         Setup the supertype info for array classes, too.
7967
7968 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
7969
7970         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
7971
7972 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7973
7974         * Makefile.am: re-added -m option when running cygpath. This way,
7975         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
7976         separator.
7977         * mono-config.c: same codepath for locating mono config file for WIN32
7978         and the rest.
7979         * assembly.c: if mono_assembly_setrootdir is called, don't override
7980         the value set.
7981
7982 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7983
7984         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
7985         MONO_ASSEMBLIES variable.
7986
7987 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
7988
7989         * icall.c: added Assembly::GetNamespaces() icall.
7990
7991 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7992
7993         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
7994
7995 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
7996
7997         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
7998         * object.c: fixed bug in the construction of vtable for proxies
7999
8000 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8001
8002         * object.c (mono_array_new): Mark mono_array_new as an icall.
8003
8004 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8005
8006         * class.c: fixed test for public method when overriding interfaces.
8007         Closes bug #40970.
8008
8009 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8010
8011         * appdomain.h, domain.c: added mono_domain_foreach() to
8012         be able to access the currently loaded appdomains.
8013         * object.c: make string interning work across sppdomains.
8014         Mark some functions for use as icalls.
8015
8016 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8017
8018         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8019
8020         * reflection.h reflection.c: Allocate long living data using 
8021         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8022
8023         * reflection.c: Double the allocation size in streams instead of
8024         increasing it, to prevent unneccesary copying on large assemblies.
8025         
8026         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8027         creation if the assembly does not have the Run flag set.
8028
8029 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8030
8031         * class.h: avoid the C++ keywords in header files (Jerome Laban
8032         spotted and fixed this).
8033
8034 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8035
8036         * object.c:
8037         (mono_unhandled_exception): fill in the arguments for the
8038         UnhandledException event. Only trigger that event for the default
8039         domain (as MS does).
8040
8041 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8042
8043         * object.c: Improve typed allocation stuff based on suggestions from
8044         Paolo. Also turn it on if the GC library supports it.
8045
8046 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8047
8048         * object.c object.h class.h: Added experimental typed allocation
8049         facility using the interfaces in gc_gcj.h.
8050
8051         * os/gc_wrapper.h: Added new include files.
8052         
8053 2003-04-03  Martin Baulig  <martin@ximian.com>
8054
8055         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8056         which is not yet enabled by default.
8057
8058         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8059         functions.
8060         (mono_gc_lock, mono_gc_unlock): New static functions.
8061
8062         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8063         functions; stop/start the world for the garbage collector.  This
8064         is using the windows API; we need to complete the SuspendThread()/
8065         ResumeThread() implementation in the io-layer to make this work on Unix.
8066         (mono_gc_push_all_stacks): New public function; tells the garbage
8067         collector about the stack pointers from all managed threads.
8068
8069 2003-04-03  Martin Baulig  <martin@ximian.com>
8070
8071         * object.h (MonoThread): Added `gpointer stack_ptr'.
8072
8073         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8074
8075 2003-04-03  Martin Baulig  <martin@ximian.com>
8076
8077         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8078
8079 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8080
8081         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8082         field.last.
8083
8084 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8085
8086         * loader.c (mono_lookup_internal_call): Report the corlib that is
8087         out of sync.
8088
8089 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8090
8091         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8092         System.DBNull (it's class not valuetype).
8093
8094 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8095
8096         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8097         if the array method was already assigned a token (fixes bug#40646).
8098
8099 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8100
8101         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8102         if no assembly is given.
8103
8104 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8105
8106         * metadata.h: Added the new tables.
8107
8108         * row-indexes.h: Added definitions for new tables.
8109
8110         * metadata.c: Add schemas for new tables, and add support for
8111         computing the sizes of them.
8112
8113         * class.c: Update for handling the new type cases.
8114
8115 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8116
8117         * metadata.h (MONO_TYPE_IS_VOID): new macro
8118
8119 2003-03-31  Martin Baulig  <martin@ximian.com>
8120
8121         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8122
8123         * threads.c (mono_thread_new_init): Call `thread_created' in the
8124         mono_thread_callbacks.
8125
8126 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8127
8128         * loader.h: added marshalbyrefobject_class to mono_defaults
8129         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8130         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8131           generation of output parameters.
8132           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8133         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8134           contextbound and the target object belongs to the context of the caller.
8135         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8136         * object.c: Implemented support for interfaces and abstract classes
8137           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8138           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8139
8140 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8141
8142         * class.h class.c (mono_class_is_subclass_of): New function.
8143         
8144         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8145         routines for most common case (calls from ArrayList::ToArray).
8146
8147         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8148         routine so programs which call Environment::Exit() can be profiled.
8149
8150         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8151         Added MONO_ARCH_SAVE_REGS.
8152
8153         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8154
8155 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8156
8157         * blob.h: Add a couple of new MonoType types definitions.
8158
8159         * tabledefs.h: Add a couple of new call convs.
8160
8161 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8162
8163         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8164         the layout of the class.
8165
8166         * reflection.c (alloc_table): double the size on overflow to avoid
8167         unnecessary copying.
8168
8169         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8170         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8171         null so it can be garbage collected.
8172         
8173 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8174
8175         * reflection.c (mono_reflection_get_type): Return the resolved type
8176         only if it is in the assembly we searched.
8177
8178         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8179
8180         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8181         method.
8182
8183 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8184
8185         * appdomain.c:
8186         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8187         the right one is 'file:///blah', but MS allows it.
8188         * assembly.c:
8189         (mono_assembly_open): allow 'file://blah'
8190
8191         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8192
8193 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8194
8195         * socket-io.c: fixes bug #40310.
8196
8197 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8198
8199         * reflection.c (mono_reflection_parse_type): handle deeply nested
8200         types correctly.
8201
8202         * reflection.c (mono_image_create_token): Use unique token values
8203         since they will be put into a hash table.
8204
8205         * class.c (mono_class_setup_vtable): If a method occurs in more than
8206         one place in the vtable, and it gets overriden, then change the
8207         other occurances too.
8208
8209         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8210         object as return type.
8211
8212 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8213
8214         * icall.c: Deleted "ToString" implementation for double and float
8215         because they are full implemented in managed code.
8216
8217 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8218
8219         * reflection.c, reflection.h: implemented and exported functions
8220         to retrieve info about custom attributes.
8221
8222 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8223
8224         * appdomain.c: moved Uri handling to assembly.c
8225         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8226         work when using a file Uri in *nix and windows.
8227
8228         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8229         GetReferencedAssemblies.
8230
8231 2003-03-18  Dick Porter  <dick@ximian.com>
8232
8233         * icall.c: Rename a couple of internal calls
8234
8235         * threads.c: Set the thread state to Stopped when a thread exits.
8236         Fixes bug 39377.
8237
8238 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8239
8240         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8241         New icall.
8242
8243         * object.c (mono_class_vtable): fix warning.
8244
8245 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8246
8247         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8248
8249         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8250         memory.
8251         (method_encode_clauses): Create exception info structures in the right
8252         order.
8253         (mono_reflection_setup_internal_class): Initialize supertypes field.
8254
8255         * class.c object.c: Handle interfaces which implement other interfaces 
8256         correctly.
8257
8258         * class.h class.c: Move the supertypes array initialization code into 
8259         a separate function so it can be used for dynamic types too. Also call
8260         it earlier, in mono_class_init(), since it can be used before the
8261         type is initialized.
8262
8263 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8264
8265         * Makefile.am:
8266         * assembly.c:
8267         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8268
8269         * appdomain.c:
8270         * appdomain.h:
8271         * marshal.c:
8272         * object.c: remove warnings.
8273
8274 2003-03-13  Martin Baulig  <martin@ximian.com>
8275
8276         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8277         (MonoDebugLexicalBlockEntry): New types.
8278
8279         * debug-mono-symfile.c
8280         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8281
8282 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8283
8284         * process.c: ret can be any non-zero value accroding to MS doc.
8285
8286 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8287
8288         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8289         fixing a warning for a miss-used prototype, would have cause
8290         random memory corruption.
8291
8292 2003-03-07  Martin Baulig  <martin@ximian.com>
8293
8294         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8295         getting really annoying ....
8296
8297 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8298
8299         * reflection.c (fixup_method): added support for array methods.
8300
8301 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8302
8303         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8304         (pointed out by Michael Adams).
8305
8306 2003-03-04  Dick Porter  <dick@ximian.com>
8307
8308         * icall.c: Temporarily reverted the Double and Single ToString()
8309         change, because it broke nunit.
8310
8311 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8312
8313         * object.h, threads.h: make include files compatible with C++
8314         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8315
8316 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8317
8318         * icall.c: Erased ToString helper functions for Double and Single.
8319         Now, that implementations ar all in managed code (Double and Single
8320         Formatters).
8321
8322 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8323
8324         * appdomain.c: Added method for initializing the default context of
8325         a domain. Added internal call for getting the default context.
8326         * appdomain.h: Added context variable in MonoDomain struct.
8327         * domain.c: mono_domain_set also sets the default context of the domain
8328         * icall.c: Mapped internal method InternalGetDefaultContext.
8329         * object.c: mono_object_get_virtual_method returns always a remoting
8330         wrapper if the object is a transparent proxy.
8331         mono_runtime_invoke_array: when creating an object by calling the
8332         constructor, if the created object is a proxy, then the constructor should
8333         be called using the a remoting wrapper.
8334
8335 2003-03-03  Dick Porter  <dick@ximian.com>
8336
8337         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8338         variable so it compiles on solaris.  Problem spotted by
8339         Christopher Taylor <ct@cs.clemson.edu>
8340
8341 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8342
8343         * appdomain.c:
8344         (get_info_from_assembly_name): don't leak value.
8345
8346         * icall.c:
8347         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8348         result.
8349
8350 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8351
8352         * assembly.c: export mono_image_load_references ().
8353         * class.c: handle function pointers. mono_class_from_name() now
8354         supports nested type names directly.
8355
8356 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8357
8358         * reflection.h reflection.c: Encode already created dynamic methods 
8359         and fields correctly as a DEF instead of a REF.
8360
8361         * reflection.c: Get rid of the force_ref argument to 
8362         mono_image_typedef_or_ref since it was wrong in the first place.
8363
8364         * string-icalls.c: add error checking to string constructors according
8365         to the MSDN docs.
8366
8367         * reflection.c: Emit types in the order their TypeBuilders were 
8368         created. Previously, a new table index was assigned to each type before
8369         the tables were emitted. This was wrong because the signature blob
8370         might already refer to a type by its original table index.
8371
8372 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8373
8374         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8375         change.
8376         
8377 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8378
8379         * Makefile.am: make assemblies dir have \ instead of / on windows.
8380
8381 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8382
8383         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8384         iterate over the NESTEDCLASS table using a linear search since the
8385         table is not guaranteed to be sorted by the secondary key.
8386
8387         * class.c (mono_class_create_from_typedef): fixed up call to
8388         mono_metadata_nesting_typedef.
8389         
8390 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8391
8392         * marshal.c (mono_string_to_byvalstr): clear the memory as
8393         suggested by Jerome Laban <jlaban@wanadoo.fr>
8394
8395 2003-02-26  Dick Porter  <dick@ximian.com>
8396
8397         * process.c: Cope with padding in .rsrc blocks
8398
8399 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8400
8401         * metadata.h: reverted the filter_len change, it breaks reflection
8402         
8403 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8404
8405         * metadata.h: added a new field to store the filter_len
8406         
8407
8408 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8409
8410         * reflection.c: handle custom attributes for types and members
8411         created with Reflection.Emit (bug#38422).
8412
8413 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8414
8415         * reflection.c: define RTSpecialName automatically for constructors for
8416         compatibility with MS.NET.
8417
8418         * reflection.c (mono_reflection_create_runtime_class): initialize
8419         nested_in field of dynamically created classes.
8420
8421 2003-02-22  Martin Baulig  <martin@ximian.com>
8422
8423         * debug-mono-symfile.h: Incremented version number.
8424
8425 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8426
8427         * object.h icall.c process.c: fix warnings.
8428
8429 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8430
8431         * appdomain.h appdomain.c:
8432         (mono_domain_try_type_resolve): split the 
8433         name_or_tb argument into a name and a tb argument.
8434         (mono_domain_has_type_resolve): new function to check whenever the
8435         application has registered a TypeResolve event handler.
8436         
8437         * icall.c reflection.h reflection.c: move the type resolve logic into
8438         mono_reflection_get_type () so it will be invoked when 
8439         Assembly::GetType () is called.
8440
8441         * reflection.c:
8442         (mono_reflection_get_type): renamed to get_type_internal.
8443         (mono_reflection_get_type): fixed type name generation so it works 
8444         for nested types too.
8445         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8446         costly type name generation if there is no resolve event handler.
8447
8448 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8449
8450         * class.c, image.c: load exported types from file references.
8451
8452 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8453
8454         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8455           used to cache the managed methods used to create proxies and make 
8456           remote invocation of methods.
8457         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8458           to be remotely created.
8459         * object.c: Modified the method mono_class_vtable(). It now initializes 
8460           the remote flag of the vtable. Modified mono_object_new_specific(), 
8461           so now it checks the remote flag.
8462         * icall.c: Added a couple of internal methods, one for enabling instance 
8463           creation interception for a type, and one for creating objects bypassing
8464           the remote check.
8465
8466 2003-02-18  Martin Baulig  <martin@ximian.com>
8467
8468         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8469         New interncall to get a method's metadata token.
8470
8471         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8472         New interncall for the debugger.
8473
8474 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8475
8476         * class.c (mono_class_setup_vtable): allocate supertype array
8477
8478 2003-02-18  Martin Baulig  <martin@ximian.com>
8479
8480         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8481
8482 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8483
8484         * reflection.c:
8485         (assembly_name_to_aname): jump over unknown properties (i've found
8486         something like: 'type, assembly, version=xxx, custom=null, public...',
8487         so now will ignore custom=null and still get the rest of the values).
8488
8489 2003-02-17  Dick Porter  <dick@ximian.com>
8490
8491         * threads.c: Have Thread.Start() wait for a semaphore to signal
8492         that the thread has set up all its local data.  This fixes bug
8493         34323, where Abort() raced the new thread's TLS data.
8494
8495         Also removes the handle_store() call from start_wrapper, because
8496         threads are now always created suspended and there is no longer a
8497         race between the parent and child threads to store the info.
8498
8499 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8500
8501         * image.c: explain the #- heap issue in a message, hopefully
8502         avoiding FAQs on mono-list.
8503
8504 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8505
8506         * icall.c:
8507         (GetEntryAssembly): if the domain has not invoked
8508         AppDomain.ExecuteAssembly yet, return the assembly of the default
8509         AppDomain.
8510
8511 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8512
8513         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8514
8515 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8516
8517         * metadata.c, reflection.c: simple speedup to type hash
8518         and equals code.
8519
8520 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8521
8522         * image.c, image.h, class.c, assembly.c: move module loading
8523         to MonoImage. When loading metadata, consider alignemnet from
8524         the start of metadata, not from the metadata address in memory.
8525
8526 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8527
8528         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8529         AssemblyBuilder objects. Factored out custom attribute creation into
8530         a separate function.
8531         (create_custom_attr): new function to create custom attributes.
8532
8533 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8534
8535         * Makefile.am: Got tired of typing the full pathname to pedump.
8536         Until there is another option, am installing this.
8537
8538 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8539
8540         * class.c (class_compute_field_layout): always set field->parent 
8541         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8542
8543 2003-02-11  Dick Porter  <dick@ximian.com>
8544
8545         * threads-types.h:
8546         * monitor.c: Rewrote Monitor, making lock much faster and
8547         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8548         creates them as needed.
8549
8550         * exception.c: Added SynchronizationLockException
8551
8552         * threads.c: Deleted old Monitor implementation.  The new one is
8553         in a new file.
8554
8555 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8556
8557         * class.c: handled TypedReference type code. Set the correct size for
8558         class data. Setup interface_offsets for interface classes, too.
8559
8560 2003-02-09  Martin Baulig  <martin@ximian.com>
8561
8562         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8563
8564 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8565
8566         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8567         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8568         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8569         * verify.c: check for code that runs after the end of the method.
8570
8571 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8572
8573         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8574         "System.Math::Round2".
8575         * sysmath.h: Added Floor, Round and Round2 definitions.
8576         * sysmath.c: Modified certain functions that were not 100% compliant
8577         with MS.NET (math precision) and added the implementation of Floor,
8578         Round and Round2.
8579
8580 2003-02-07  Martin Baulig  <martin@ximian.com>
8581
8582         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8583
8584 2003-02-07  Martin Baulig  <martin@ximian.com>
8585
8586         * debug-mono-symfile.c: Reflected latest symwriter changes.
8587         (mono_debug_create_mono_symbol_file): Removed.
8588         (mono_debug_open_mono_symbol_file): Take an argument which
8589         specifies whether to create a dynamic symbol file.
8590
8591 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8592
8593         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8594
8595 2003-02-05  Martin Baulig  <martin@ximian.com>
8596
8597         * reflection.c (mono_image_build_metadata): Make this public,
8598         protect it against being called multiple times, don't create
8599         resources and don't build the compressed metadata here.
8600         (mono_image_create_pefile): Do this here.
8601
8602         * icall.c
8603         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8604
8605 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8606
8607         * socket-io.c: fixed bug #36322.
8608
8609 2003-02-06  Piers Haken <piersh@friskit.com>
8610
8611         * appdomain.[ch]:
8612         * class.h:
8613         * debug-mono-symfile.c:
8614         * icall.c:
8615         * loader.c:
8616         * mono-config.c:
8617         * monosn.c:
8618         * reflection.c:
8619         * socket-io.c: warning cleanups
8620
8621 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8622
8623         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8624         function. works like remoting invoke, but does a check for the Proxy first.
8625
8626 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8627
8628         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8629
8630 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8631
8632         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8633         array of pointers.
8634         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8635         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8636
8637         * object.c (mono_store_remote_field_new): used by the new jit
8638         instead of mono_store_remote_field
8639         (mono_load_remote_field_new): used by the new jit
8640         instead of mono_load_remote_field
8641
8642 2003-02-05  Patrik Torstensson
8643
8644         * appdomain.c: changed unload to take the domain id instead
8645         of domain
8646         
8647         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8648
8649
8650 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8651
8652         * appdomain.c: don't look for assemblies in ApplicationBase if
8653         PrivateBinPathProbe is set.
8654
8655 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8656
8657         * object.c: make the first argument in main_args contain the absolute
8658         path to the assembly. Fixes bug #37511.
8659
8660 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8661
8662         * icall.c: get correct UTC offset for countries not using daylight
8663         time saving. Fixes bug #30030.
8664
8665 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8666
8667         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8668         and 1 are the family).
8669
8670 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8671
8672         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8673
8674         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8675
8676 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8677
8678         * reflection.c: added support for SignatureHelper tokens, which is
8679         needed by the Calli opcode.
8680
8681         * reflection.h: track changes to SignatureHelper class.
8682
8683         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8684
8685 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8686
8687         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8688
8689 2003-02-03  Patrik Torstensson
8690         * appdomain.[c|h], domain.c : 
8691          - Added support for getting a domain via domain id
8692          - Support for setting and getting domain from System.AppDomain 
8693            (used in cross appdomain channel)
8694          - Added support for get/set for a MonoAppContext on a thread 
8695            (Context class in System.Runtime.Remoting.Contexts),
8696          - Removed hack in Get/SetData and ExecuteAssembly.
8697         
8698         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8699         the managed world to get control when a proxy is created.
8700
8701         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8702         
8703 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8704
8705         * icall.c
8706         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8707         Populate the codebase field as well.
8708
8709 2003-02-02  Martin Baulig  <martin@ximian.com>
8710
8711         * debug-mono-symfile.c
8712         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8713         (mono_debug_symfile_add_method): Allow interncalls.
8714
8715 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8716
8717         * icall.c: throw parse exception if strtod fails or the string is empty.
8718
8719 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8720
8721         * marshal.c: handle object type separately from defined
8722         class types.
8723
8724 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8725
8726         * marshal.c: handle NATIVE_LPSTR for strings when it's
8727         explicitly specified.
8728
8729 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8730
8731         * reflection.c, reflection.h, icall.c: setup the reflection
8732         handle cache for ModuleBuilders and AssemblyBuilders.
8733
8734 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8735
8736         * reflection.c (reflection_methodbuilder_to_mono_method): set
8737         pinvoke flag
8738
8739 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8740
8741         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8742
8743 2003-01-29  Dick Porter  <dick@ximian.com>
8744
8745         * threads.c: No need for the fake_thread kludge now that Thread
8746         doesn't run a class constructor
8747         
8748 2003-01-29  Dick Porter  <dick@ximian.com>
8749
8750         * threads.c: Use g_direct_hash instead of the rather bogus
8751         g_int_hash
8752
8753 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8754
8755         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8756         (fix pinvoke12.exe)
8757         (mono_marshal_get_struct_to_ptr): generate valid IL code
8758         (mono_marshal_get_ptr_to_struct): generate valid IL code
8759         (*): correctly set sig->pinvoke, we need to memdup the signature
8760         to do that
8761
8762 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8763
8764         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8765         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8766
8767 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8768
8769         * profiler.c: provide more callers information.
8770
8771 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8772
8773         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8774
8775         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8776
8777         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8778
8779 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8780
8781         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8782         exception instead of going into an infinite loop on dates which it 
8783         can't yet handle.
8784
8785         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
8786         out-of-range exception if needed.
8787
8788         * class.c (mono_class_setup_vtable): allow a virtual method to provide
8789         an implementation for an interface method and to override an inherited
8790         method at the same time. 
8791         Imagine a scenario when a virtual method is used to override a
8792         virtual abstract method in a parent class, and this same method 
8793         provides an implementation for an method inherited from an interface. 
8794         In this case, the interface resolution code will set im->slot, which 
8795         means that the virtual method override pass will skip this method 
8796         which means a pointer to the abstract method inherited from the parent
8797         will remain in the vtable of this non-abstract class.
8798
8799         * class.c: (mono_class_setup_vtable): continue search for a real 
8800         method if only an abstract method is found.     
8801
8802 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8803
8804         * reflection.c: add size to encoding for ByValStr and ByValArray
8805         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
8806
8807 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8808
8809         * class.c (mono_class_setup_vtable): pass the override info as an
8810         argument.
8811
8812         * class.c (mono_class_setup_vtable): set the slot of overriding methods
8813         correctly.
8814         
8815         * reflection.c (ensure_runtime_vtable); add support for method 
8816         overrides.
8817         
8818 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8819
8820         * reflection.c (resolution_scope_from_image): Hack to work to work with
8821         dynamic assemblies.
8822
8823         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
8824         added a 'force_ref' argument to force this function to allways return 
8825         a TypeRef. This is needed by mono_image_get_memberref_token ().
8826         
8827 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8828
8829         * reflection.c (mono_image_get_type_info): interfaces really don't have
8830         a parent.
8831
8832         * reflection.c (mono_image_basic_init): fill out missing fields of
8833         image structure.
8834
8835         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
8836         dynamic assemblies. This is required so dynamic assemblies show up in
8837         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
8838         Type::GetType() etc. This is consistent with MS behaviour.
8839
8840         * image.c image.h reflection.c: add newly created classes to the name 
8841         cache so mono_class_get () will find them.      
8842
8843 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8844
8845         First part of changes to get IKVM.NET running under mono.
8846         
8847         * appdomain.h, appdomain.c: added new function 
8848         mono_domain_try_type_resolve() which will emit TypeResolve events. 
8849         This function will call AppDomain::DoTypeResolve to do the actual work.
8850
8851         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
8852         moved existing code dealing with dynamic tokens to a new function 
8853         called mono_reflection_lookup_dynamic_token (). This function will 
8854         raise TypeResolve events when appropriate. Since reflection.c is not 
8855         part of libmetadata, a new hook function called 
8856         mono_lookup_dynamic_token() is added to class.c which will call this.
8857
8858         * assembly.h assembly.c: make the invoke_load_hook function public,
8859         so it can be called for dynamic assemblies.
8860
8861         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
8862
8863         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
8864         type isn't found.
8865
8866         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
8867         MonoGHashTable, since it contains pointers to objects which the GC 
8868         needs to track.
8869
8870         * assembly.c (search_loaded): remove unused variable.
8871         
8872 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
8873
8874         * object.c: fixed issue exposed by gcc-generated IL programs
8875         that use RVA data for pointers.
8876
8877 2003-01-25  Martin Baulig  <martin@ximian.com>
8878
8879         * threads.c (start_wrapper): Moved the initialization of
8880         `start_func' above the mono_new_thread_init() call to which we
8881         pass it as argument.
8882
8883 2003-01-24  Martin Baulig  <martin@ximian.com>
8884
8885         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
8886         the MonoThread pointer.
8887
8888 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
8889
8890         * icall.c: Rename `PowImpl' to Pow.
8891
8892 2003-01-23  Dick Porter  <dick@ximian.com>
8893
8894         * threads.c (start_wrapper): Create a Thread object if needed, so
8895         the Main() thread can do the class initialisation in a subthread
8896         that has been set up to allow managed code execution.
8897
8898         Pass the thread ID instead of the MonoThread pointer to the thread
8899         start and attach callbacks.  This change is required, because the
8900         jit thread start callback must be called _before_ the Thread
8901         object can be created.
8902         
8903         (mono_thread_init): Removed much object creation code that is no
8904         longer needed.  No managed code is called from here now.
8905
8906         * object.c (mono_runtime_exec_managed_code): Create a subthread
8907         for Main, and call back to the runtime to use it.
8908         Set the exit code when Main exits.
8909
8910         * gc.c: Make sure domain finalisation happens in a subthread.
8911         Re-enable threaded GC, fixing bug 31333 (again).
8912
8913         * environment.c: System.Environment internall calls (so far just
8914         ExitCode is here, the others are still in icall.c)
8915
8916         * appdomain.c (mono_runtime_cleanup): All threads running managed
8917         code should have finished before mono_runtime_cleanup() is
8918         reached, so no need to clean up threads.
8919
8920 2003-01-22  Martin Baulig  <martin@ximian.com>
8921
8922         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
8923         `gpointer func' arguments.      
8924         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
8925         but added `MonoThread *thread' argument.
8926         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
8927
8928         * threads.c (mono_new_thread_init): Added `gpointer func' argument
8929         and pass it to the mono_thread_start_cb callback.
8930         (mono_install_thread_callbacks): New public function to install a
8931         set of callbacks which are set by the debugger.
8932         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
8933
8934 2003-01-22  Martin Baulig  <martin@ximian.com>
8935
8936         * Makefile.am: Install debug-mono-symfile.h.
8937
8938 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
8939
8940         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
8941
8942 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
8943
8944         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
8945         * class.c (mono_ptr_class_get): correctly set access levels of pointers
8946         (mono_array_class_get): correctly set access levels of arrays
8947
8948 2003-01-20      Patrik Torstensson
8949         * image.h (MonoAssemblyName): changed major, minor, build, revision
8950         from signed to unsigned.
8951
8952 2003-01-20  sean kasun <skasun@azstarnet.com>
8953
8954         * reflection.c (load_cattr_value): Now this handles
8955         MONO_TYPE_SZARRAY.  Fixes bug #35629
8956
8957 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
8958
8959         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
8960         integer value
8961
8962 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8963
8964         * decimal.c: fixed bug #26056.
8965
8966 2003-01-17  Martin Baulig  <martin@ximian.com>
8967
8968         * gc.c: Raise an ExecutionEngineException instead of using g_error().
8969
8970 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8971
8972         * exception.[ch]:
8973         (mono_get_exception_type_initialization): new function.
8974
8975         * object.c: throw a TypeInitializationException when an exception is
8976         thrown invoking the class constructor.
8977
8978 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8979
8980         * reflection.c: fixed attribute reading.
8981
8982 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8983
8984         * icall.c:
8985         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
8986         provided, look for the type in the calling assembly and then in
8987         mscorlib; if the assembly name is provided, only try that one.
8988
8989 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
8990
8991         * object.c: register the vtable before there is a chance it's
8992         queried again recursively.
8993
8994 2003-01-13  Duncan Mak  <duncan@ximian.com>
8995
8996         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
8997         gc-internal.h. 
8998         
8999 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9000
9001         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9002
9003 2003-01-11  Martin Baulig  <martin@ximian.com>
9004
9005         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9006         this to 20 for the release.
9007
9008 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9009
9010         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9011
9012         * loader.c (mono_method_get_marshal_info): bug fix
9013
9014         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9015         structures with explicit layout
9016
9017 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9018
9019         * profiler.c: made the output more readable (and sorted). 
9020         Added caller information for the allocation profiler.
9021
9022 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9023
9024         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9025
9026 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9027
9028         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9029         to get value types.
9030         
9031 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9032
9033         * object.c, profiler.h, profiler.c, profiler-private.h:
9034         Added object allocation profiler.
9035
9036 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9037
9038         * reflection.h, reflection.c: handle global methods.
9039         Compress blob entries.
9040
9041 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9042
9043         * marshal.c: fix compilation.
9044
9045 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9046
9047         * loader.c (mono_method_get_marshal_info): impl.
9048
9049         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9050
9051 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9052
9053         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9054         for reference types.
9055
9056 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9057
9058         * loader.c: fixed off by one error in loaded parameter names.
9059
9060 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9061
9062         * marshal.c (mono_marshal_get_icall_wrapper): like
9063         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9064         instead of a MonoMethod.
9065
9066 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9067
9068         * decimal.c: fixed bug #36537.
9069
9070 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9071
9072         * marshal.c: throw a missing method exception if a
9073         P/Invoke method is not found.
9074
9075 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9076
9077         * icall.c: allow a null this for constructors.
9078
9079 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9080
9081         * icall.c: raise the proper exceptions if the arguments to the
9082         internal Invoke are incorrect.
9083
9084 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9085
9086         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9087
9088 2003-01-03  Martin Baulig  <martin@ximian.com>
9089
9090         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9091
9092 2002-12-31  Martin Baulig  <martin@ximian.com>
9093
9094         * debug-mono-symfile.c: Completely rewrote the type section.
9095         Instead of using individual malloc()ed fields, we use one big
9096         continuous memory area and offsets into this area.
9097         See the comments in the source code for details.
9098
9099 2002-12-30  Martin Baulig  <martin@ximian.com>
9100
9101         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9102
9103 2002-12-30  Martin Baulig  <martin@ximian.com>
9104
9105         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9106         line number table in this data blob instead of using an external
9107         pointer.
9108
9109 2002-12-28  Martin Baulig  <martin@ximian.com>
9110
9111         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9112
9113 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9114
9115         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9116         as a boxed return type.
9117
9118 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9119
9120         * appdomain.c
9121         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9122         g_build_filename to properly get separators on the filename created.
9123
9124         * object.h: Small change, introduce MonoMarshalByRefObject to
9125         track the layout of that structure in the C# universe as we make
9126         changes there.
9127
9128 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9129
9130         * object.c: removed assert to allow static fields on interfaces.
9131         * loader.c: a TypeSpec may be used for any type, not just arrays.
9132
9133 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9134
9135         * class.c, class.h: added mono_class_array_element_size ().
9136         Ignore static methods in interfaces.
9137
9138 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9139
9140         * threads.c: fixed the build under cygwin.
9141
9142 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9143
9144         * reflection.c: handle nullref constants. Allocate keys for
9145         reflection handles with the GC.
9146
9147 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9148
9149         * threads.c, threads.h: added mono_thread_get_abort_signal()
9150         to get a suitable signal for thread abort.
9151
9152 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9153
9154         * metadata.c: fix handling of ExportedType table.
9155
9156 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9157
9158         * icall.c: added WriteWindowsDebugString internal call.
9159
9160 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9161
9162         * reflection.h: added fields to match C# implementation.
9163
9164 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9165
9166         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9167
9168 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9169
9170         * gc.h, gc-internal.h: Rename header for GC internal calls to
9171         gc-internal.h from gc.h as to not clash with Boehm GC having its
9172         header installed as <gc.h> in outside include paths.
9173         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9174         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9175
9176 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9177
9178         * icall.c: assign minor, build and revision in FillName.
9179
9180 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9181
9182         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9183         Added support for running code generated by Reflection.Emit.
9184
9185 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9186
9187         * appdomain.c: check for NULL argument in LoadFrom.
9188
9189 2002-12-10  Dick Porter  <dick@ximian.com>
9190
9191         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9192
9193 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9194
9195         * appdomain.c: fix buglet when building exe file name.  Handle full
9196         assembly name (needed after latest changes to AssemblyName).
9197         * image.c:
9198         (mono_image_close): free some hashtables.
9199
9200 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9201
9202         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9203         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9204         on some systems (redhat 7.3) 
9205
9206 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9207
9208         * threads.c: delete the critical section of a sync block,
9209         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9210
9211 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9212
9213         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9214
9215 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9216
9217         * appdomain.[ch]: handle the assembly preload event to try loading the
9218         assemblies using the paths we have in the current domain.
9219
9220         * assembly.[ch]: created an assembly preload hook that is called to try
9221         loading the assembly by other means that the ones provided here.
9222
9223         * domain.c: initialize the domain search path.
9224
9225         From now on, assemblies (TODO: except corlib and System) are loaded
9226         according to these rules when using mono_assembly_load ():
9227
9228                 1. It tries to load the assembly from the ApplicationBase
9229                 of the current domain appending .dll and .exe (TODO: have to
9230                 try loading from name/name.dll and name/name.exe).
9231
9232                 2. It tries the search path specified in PrivateBinPath for the
9233                 current domain (if any).
9234
9235                 3. Previous behavior.
9236
9237 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9238
9239         * icall.c: implemented GetInterfaceMap() related icall.
9240         * domain.c, loader.h: load MethodInfo in mono_defaults.
9241
9242 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9243
9244         * gc.c: disable the finalizer thread for now, untill all the issues
9245         with it are resolved.
9246
9247 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9248
9249         * string-icalls.c: handle embedded nulls in string ctor when the
9250         length is specified.
9251
9252 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9253
9254         * class.c: look for explicit interface implementation in parent
9255         classes, too.
9256
9257 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9258
9259         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9260
9261 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9262
9263         * gc.c: protect handles with a critical section.
9264
9265 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9266
9267         * icall.c:
9268         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9269         parameters. If no assembly specified, try getting the type from all
9270         the assemblies in the current domain, else, load the assembly and get
9271         the type from it.
9272
9273 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9274
9275         * marshal.c: applied patch from Aleksey Demakov that fixes
9276         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9277
9278 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9279
9280         * icall.c: fixed get_location.
9281
9282 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9283
9284         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9285         declarations to make it work with older gcc. 
9286
9287         * loader.c (mono_get_method): set signature->pinvoke for native calls
9288
9289 2002-11-20  Dick Porter  <dick@ximian.com>
9290
9291         * threads.c (mono_thread_init): Set the main thread's handle
9292
9293 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9294
9295         * gc.c: allow compilation without GC support. Changed to match the
9296         mono coding style.
9297
9298 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9299
9300         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9301
9302 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9303
9304         * reflection.c: set a public key token on the core assemblies.
9305
9306 2002-11-18  Dick Porter  <dick@ximian.com>
9307
9308         * threads.c: Split out some thread initialisation so that other
9309         files can set the start callback function.
9310
9311         * gc.c: Run finalisers in a separate thread, to avoid stack
9312         overflow.  Fixes bug 31333.
9313
9314         * appdomain.c: Set up GC finalisation thread.
9315
9316         * reflection.c: 
9317         * object.c: 
9318         * domain.c: Use gc.h macros for GC_malloc
9319         
9320 2002-11-15  Dick Porter  <dick@ximian.com>
9321
9322         * threadpool.c: 
9323         * threads.c:
9324         * appdomain.c: Removed mono_runtime_init_with_attach(),
9325         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9326         merging the extra parameter with the existing function.  Removed
9327         unneeded code in mono_thread_attach().
9328
9329 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9330
9331         * image.c (mono_image_loaded_by_guid): a method to get loaded
9332         images by guid. 
9333         (load_metadata_ptrs): we store the guid as string.
9334
9335 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9336
9337         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9338
9339         * metadata.c (mono_guid_to_string): imported method form Zoltan
9340         Varga (slightly modified)
9341
9342         * assembly.c (mono_assembly_open): load precompiled code
9343
9344         * loader.h (MonoMethod): we store the method token for use in the
9345         aot compiler. 
9346
9347 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9348
9349         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9350         the hook function called when an assembly is loaded.
9351         
9352         * domain.c: Modified file.
9353         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9354
9355         Fixes bug #33196.
9356
9357 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9358
9359         * reflection.c: Map PEFileKind to the value expected by the WinNT
9360         image loader. 
9361
9362 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9363
9364         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9365         Read until the buffer is filled completely.
9366
9367 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9368
9369         * icall.c: implemented MonoType.InternalGetEvent ().
9370
9371 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9372
9373         * appdomain.c: implemented InitAppDomainSetup. Delayed
9374         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9375         the entry_assembly.
9376
9377         * assembly.c: base_dir is now an absolute path ending with
9378         G_DIR_SEPARATOR.
9379
9380         * icall.c: modified get_location according to the above changes.
9381
9382         * object.c: init AppDomain.SetupInformation for the default domain after
9383         we have the entry assembly.
9384
9385         * domain.c: when unloading a domain, setup = NULL.
9386
9387 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9388
9389         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9390
9391 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9392
9393         * object.h, object.c: introduced mono_object_get_virtual_method ()
9394         to lookup the method invoked on an object when a callvirt is done on
9395         a method.
9396         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9397
9398 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9399
9400         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9401         current domain when loaded an assembly and failed to load it.
9402
9403         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9404
9405 2002-10-31  Dick Porter  <dick@ximian.com>
9406
9407         * icall.c: 
9408         * file-io.h: 
9409         * file-io.c: Return the error status in a parameter, as the
9410         GetLastError() value has long since been blown away if we try and
9411         look it up in a subsequent internal call invocation.  Delete the
9412         GetLastError() internal call, because it's useless.
9413
9414 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9415
9416         * class.[ch]: added cast_class to fix bug 29517
9417
9418 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9419
9420         * marshal.c: create valid IL code in the filter clause:
9421         the new JIT is less forgiving:-)
9422
9423 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9424
9425         * icall.c: removed get_property internal call.
9426
9427 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9428
9429         * appdomain.h domain.c: Added an ID to appdomains.
9430         
9431         * threads.c threads.h icall.c: Implement icall
9432         Thread:GetDomainID(), and remove unused icall 
9433         CurrentThreadDomain_internal.
9434
9435 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9436
9437         * icall.c: Don't recurse through the base types in GetConstructor.
9438         Fixes bug #32063. 
9439
9440 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9441
9442         * mempool.h, mempool.c: added mono_mempool_empty() and
9443         mono_mempool_stats().
9444
9445 2002-10-23  Dick Porter  <dick@ximian.com>
9446
9447         * file-io.c: 
9448         * file-io.h: 
9449         * icall.c: Added MonoIO.GetFileType internal call
9450
9451 2002-10-17  Dick Porter  <dick@ximian.com>
9452
9453         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9454         delegate semaphore before waiting for all threads to finish,
9455         because new threads can also call async delegates.  Fixes bug
9456         32004.
9457
9458         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9459         of 3 seconds, in case another async job is queued.  (This part is
9460         needed because the bug fix reintroduced the 3s exit lag.)  This
9461         makes the mono_runtime_shutdown flag superfluous.
9462
9463 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9464
9465         * reflection.c: include ehader size in method section headers.
9466         Really check for suplicated modules entries.
9467
9468 2002-10-17  Martin Baulig  <martin@gnome.org>
9469
9470         * debug-mono-symfile.c: Added back support for locals.
9471
9472 2002-10-14  Martin Baulig  <martin@gnome.org>
9473
9474         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9475         MONO_TYPE_VOID.
9476
9477 2002-10-14  Martin Baulig  <martin@gnome.org>
9478
9479         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9480         mono_class_get() instead of looking in the class cache. 
9481
9482 2002-10-13  Martin Baulig  <martin@gnome.org>
9483
9484         * debug-mono-symfile.c: Set version number to 28, include the
9485         signature in method names.
9486
9487 2002-10-13  Martin Baulig  <martin@gnome.org>
9488
9489         * debug-mono-symfile.h: Set version number to 27.
9490
9491 2002-10-11  Martin Baulig  <martin@gnome.org>
9492
9493         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9494
9495 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9496
9497         * metadata.c, metadata.h: added helper function to allocate signatures.
9498
9499 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9500
9501         * icall.c: added internal call to get the location of machine.config.
9502
9503 2002-10-08  Martin Baulig  <martin@gnome.org>
9504
9505         * debug-mono-symfile.c: Ignore classes with a pending init for the
9506         moment.
9507
9508 2002-10-03  Dick Porter  <dick@ximian.com>
9509
9510         * threads.c: Freebsd pthread_t is a pointer
9511
9512 2002-10-03  Dick Porter  <dick@ximian.com>
9513
9514         * socket-io.c: Implemented GetHostName_internal
9515
9516 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9517
9518         * mono-config.c:
9519         (mono_config_parse_file): don't leak the text.
9520
9521 2002-10-02  Martin Baulig  <martin@gnome.org>
9522
9523         * debug-mono-symfile.c: Added support for methods.
9524
9525 2002-10-01  Martin Baulig  <martin@gnome.org>
9526
9527         * debug-mono-symfile.c: Don't emit methods and line numbers for
9528         the dynamic symbol file, just write the type table.  We can easily
9529         have an external helper program which creates a symbol file for an
9530         IL file.        
9531
9532 2002-10-01  Dick Porter  <dick@ximian.com>
9533
9534         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9535         Only add the handle to the cleanup array when we're about to
9536         launch the thread.  Bug 31425 deadlocked when the test was run on
9537         mono under w32.
9538
9539 2002-10-01  Martin Baulig  <martin@gnome.org>
9540
9541         * debug-mono-symfile.c: Added support for properties.
9542
9543 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9544
9545         * reflection.c: unaligned store fix from Mark Crichton
9546         <crichton@gimp.org>.
9547
9548 2002-09-27  Martin Baulig  <martin@gnome.org>
9549
9550         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9551         New interncall.
9552
9553 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9554
9555         * assembly.h, assembly.c: use a sane API to hook into the assembly
9556         loading process instead of a useless special-purpouse hack
9557         (ngen needs a hook, too, for example).
9558
9559 2002-09-27  Dick Porter  <dick@ximian.com>
9560
9561         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9562         io-layer can set up some process handle info.  Not needed on w32,
9563         but doesn't hurt either.
9564
9565         * process.c: Pass the program name in the second parameter to
9566         CreateProcess, so the path is searched.  Include the working
9567         directory. Implemented process name, process enumeration, and some
9568         process detail internal calls.
9569         
9570         * icall.c: Added internal calls for process lookup, and some
9571         process details
9572
9573 2002-09-26  Martin Baulig  <martin@gnome.org>
9574
9575         * assembly.c (mono_install_open_assembly_hook): New global
9576         function to install a function to be invoked each time a new
9577         assembly is loaded.
9578         (mono_assembly_open): Run this callback function if set.
9579
9580         * debug-mono-symfile.c: Put back line numbers for the dynamic
9581         symbol file and also record the .il file as source file.  This
9582         allows us to install the temporary symbol file as `file.dbg' just
9583         like a compiler-generated one.
9584
9585 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9586
9587         * Corrected typo in gc.c (BOHEM vs BOEHM).
9588
9589 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9590
9591         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9592         GetProperties. Also avoid calling g_slist_length in GetProperties and
9593         GetMethods.
9594
9595 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9596
9597         * reflection.c: avoid unaligned stores (bug spotted by
9598         Mark Crichton  <crichton@gimp.org>).
9599
9600 2002-09-25  Martin Baulig  <martin@gnome.org>
9601
9602         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9603         instead of guint64 for addresses and added prologue/epilogue info.
9604
9605 2002-09-25  Martin Baulig  <martin@gnome.org>
9606
9607         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9608         store line number info.  For the dynamic symbol file, we only need
9609         to provide the JIT generated dynamic line number info for the dynamic
9610         symbol file.
9611
9612 2002-09-25  Martin Baulig  <martin@gnome.org>
9613
9614         * debug-mono-symfile.h: Incremented version number.
9615
9616 2002-09-24  Martin Baulig  <martin@gnome.org>
9617
9618         * class.c (mono_debugger_class_init_func): New global function
9619         pointer variable.
9620         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9621         call it.
9622
9623         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9624         function.  This is called via the mono_debugger_class_init_func
9625         hook to add all types to the dynamic type table.
9626         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9627         from its metadata token.
9628
9629         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9630         New interncall for the debugger.
9631
9632 2002-09-24  Nick Drochak <ndrochak@gol.com>
9633
9634         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9635         before using it in case it is null.
9636         
9637 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9638
9639         * metadata.c: allow custom modifiers in local var signatures
9640         (bug spotted by Zoltan Varga).
9641
9642 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9643
9644         * class.c: deal with the <Module> class that may have a NULL vtable.
9645         Eliminate warnings.
9646
9647 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9648
9649         * image.c, image.h: more strong name helpers.
9650         * monosn.c: more work: convert pem keys to cryptoapi format.
9651
9652 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9653
9654         * string-icalls.c: speedup IndexOf.
9655
9656 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9657
9658         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9659
9660 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9661
9662         * icall.c: cleanup: use mono_object_domain ().
9663
9664 2002-09-23  Martin Baulig  <martin@gnome.org>
9665
9666         * debug-mono-symfile.c: Improved type support.
9667
9668 2002-09-22  Martin Baulig  <martin@gnome.org>
9669
9670         * debug-mono-symfile.c: Added support for reference types and strings.
9671
9672 2002-09-22  Martin Baulig  <martin@gnome.org>
9673
9674         * debug-mono-symfile.c: Started to work on the type table.
9675
9676 2002-09-21  Martin Baulig  <martin@gnome.org>
9677
9678         * debug-mono-symfile.c: Largely reworked the symbol table format.
9679         The symbol table is now incrementally updated each time a new
9680         method is added.  We're now also using our own magic and version
9681         so that you don't need to recompile all your classes if the
9682         dynamic table changes.
9683         (mono_debug_update_mono_symbol_file): Removed.
9684         (mono_debug_symfile_add_method): New function to add a method.
9685
9686 2002-09-21  Martin Baulig  <martin@gnome.org>
9687
9688         * icall.c
9689         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9690         New interncall.
9691
9692         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9693         New interncall to get a method from its metadata token.
9694
9695 2002-09-21  Martin Baulig  <martin@gnome.org>
9696
9697         * debug-mono-symfile.c: Create type table.
9698
9699 2002-09-20  Martin Baulig  <martin@gnome.org>
9700
9701         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9702
9703 2002-09-20  Martin Baulig  <martin@gnome.org>
9704
9705         * debug-mono-symfile.c: Provide information about params and locals.
9706
9707 2002-09-20  Martin Baulig  <martin@gnome.org>
9708
9709         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9710         New interncall.
9711
9712         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9713         interncall to get a method from its metadata token.
9714
9715 2002-09-20  Martin Baulig  <martin@gnome.org>
9716
9717         * debug-mono-symfile.c: Added a few checks for method->header
9718         being non-NULL.  This should never happen, but for the moment
9719         let's use a g_warning() rather than a g_assert().
9720
9721 2002-09-19  Mark Crichton  <crichton@gimp.org>
9722
9723         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9724         even if support for it isn't present.  Added an #ifdef to fix this.
9725
9726         * socket-io.c: Added checks back for Solaris support.
9727
9728 2002-09-19  Martin Baulig  <martin@gnome.org>
9729
9730         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9731         changes in the symbol file format.
9732
9733 2002-09-18  Martin Baulig  <martin@gnome.org>
9734
9735         * debug-mono-symfile.c: Set version number to 21.
9736
9737 2002-09-18  Dick Porter  <dick@ximian.com>
9738
9739         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9740         on netbsd.  Fixes bug 30051.
9741
9742 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9743
9744         * reflection.c:
9745         (set_version_from_string): little fix.
9746
9747 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9748
9749         * monosn.c, Makefile.am: added strong name utility.
9750         * reflection.h, reflection.c: implemented delayed signing,
9751         locale, version and hash id assembly attributes.
9752
9753 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9754
9755         * loader.c, metadata.c: load param attributes in signatures.
9756
9757 2002-09-16  Martin Baulig  <martin@gnome.org>
9758
9759         * debug-mono-symfile.c: Added string table with all method names.
9760
9761 2002-09-14  Martin Baulig  <martin@gnome.org>
9762
9763         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9764         fast method lookup.
9765
9766 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9767
9768         * reflection.c: record the public key token of referenced assemblies.
9769
9770 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9771
9772         * image.c, image.h: added functions to get the strong name and the
9773         public key of an assembly.
9774         * pedump.c: use them.
9775
9776 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9777
9778         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9779
9780 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9781
9782         * marshal.c (mono_marshal_get_managed_wrapper): Added
9783         MONO_TYPE_BOOLEAN 
9784
9785 2002-09-11  Martin Baulig  <martin@gnome.org>
9786
9787         * gc.c: Call GC_unregister_disappearing_link() on all links when
9788         finalizing them, this is necessary to aviod a crash in boehm's
9789         finalize handler.
9790
9791 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9792
9793         * gc.c: handle GetTarget for finalized objects spotted and fixed by
9794         nick@chemlab.org.
9795
9796 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9797
9798         * icall.c: implemented MonoType::Module.
9799         * reflection.c, reflection.h: mono_module_get_object () from
9800         Tomi Pakarinen <tomi.pakarinen@welho.com>.
9801
9802 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9803
9804         * icall.c: ignore overridden methods in GetMethods ().
9805         Fix for FieldInfo::SetValue().
9806         * object.c: handle float/double in runtime invoke.
9807
9808 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9809
9810         * object.c: allow a constructor to be called again on an object.
9811
9812 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9813
9814         * class.h, class.c: move field layout code to it's own function and
9815         export it. Get an interface id earlier. Move fields in MonoClass
9816         so they are more cache friendly and align the bitfields.
9817         * loader.c: temporary handle get_param_names() for a runtime method.
9818         * reflection.c, reflection.h: more code to handle runtime creation of
9819         types.
9820
9821 2002-09-09  Martin Baulig  <martin@gnome.org>
9822
9823         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
9824         signature with the pinvoke field being set for the actual call.
9825
9826 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9827
9828         * icall.c: removed some unused icalls. Start of map of glib charsets
9829         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
9830
9831 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9832
9833         * debug-helpers.c: break infinite loop (found and fixed by
9834         Holger Arnold <harnold@gmx.de>).
9835
9836 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9837
9838         * icall.c: target may be null in create_delegate.
9839
9840 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9841
9842         * marshal.c: handle a boolean return type.
9843
9844 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9845
9846         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
9847
9848 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9849
9850         * gc.c: fix weakreferences.
9851
9852 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9853
9854         * icall.c: added icall to get default codepage.
9855
9856 2002-09-03  Dick Porter  <dick@ximian.com>
9857
9858         * threads.h: 
9859         * threads.c: Use MonoThread instead of MonoObject where
9860         apropriate.
9861
9862         Store running thread objects in a hash table, so that we have all
9863         the info to hand when waiting for them to finish
9864         (means we don't need OpenThread() any more, so mingw builds should
9865         be fully functional again.)
9866
9867         * verify.c:
9868         * object.h: Added thread ID to MonoThread
9869
9870 2002-09-03  Martin Baulig  <martin@gnome.org>
9871
9872         * icall.c (System.Reflection.Assembly::get_location): New interncall.
9873
9874 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9875
9876         * icall.c: fixed leak in get_temp_path. Thanks lupus.
9877
9878 2002-09-03  Martin Baulig  <martin@gnome.org>
9879
9880         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
9881         argument to store the end address of the disassembled instruction.
9882
9883         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
9884         here from debug-symfile.h.
9885         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
9886         JIT into this struct.
9887         (MonoSymbolFile): Added `char *image_file' field.
9888         (MonoDebugGetMethodFunc): Removed.
9889         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
9890         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
9891         (mono_debug_find_method): New method.
9892
9893         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
9894         create a full symbol file.
9895         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
9896         and static symbol files.
9897         (mono_debug_find_method): The symbol file keeps an internal method hash,
9898         call this to get a MonoDebugMethodInfo from a MonoMethod.
9899
9900         * debug-symfile.[ch]: Removed.
9901
9902 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
9903
9904         * image.c (do_mono_image_open): Remove linker version check.
9905
9906 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
9907
9908         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
9909         wrappers for instance methods.
9910         
9911 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9912
9913         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
9914
9915 2002-08-28  Dick Porter  <dick@ximian.com>
9916
9917         * Makefile.am: Export HOST_CC for w32 builds
9918
9919 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9920
9921         * file-io.c process.c: MonoString are null terminated, no
9922         need for mono_string_to_utf16() anymore.
9923
9924 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9925
9926         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
9927
9928 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
9929
9930         * icall.c, reflection.h: speedup System.MonoType.
9931
9932 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9933
9934         * reflection.c: allow null as the value of a string argument in
9935         custom attributes constructors.
9936
9937 2002-08-27  Martin Baulig  <martin@gnome.org>
9938
9939         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
9940         `trampoline_address' field.
9941
9942 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
9943
9944         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
9945         check (fixes bug #29486) 
9946
9947 2002-08-27  Martin Baulig  <martin@gnome.org>
9948
9949         * debug-mono-symfile.c: Changed the file format in a way that allows us
9950         open it read-only and to use a specially malloced area for all the
9951         dynamic data.  We can now also generate a symbol file on-the-fly if we're
9952         debugging IL code and there is no MCS generated symbol file for it.
9953
9954 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9955
9956         * object.c: added a define for a good string and array
9957         creation speedup (not enabled by default because we need to deal with
9958         the synch stuff).
9959
9960 2002-08-26  Martin Baulig  <martin@gnome.org>
9961
9962         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
9963         function to create a dynamic symbol file.  This is used by the
9964         debugger to create a symbol file for IL code on-the-fly.
9965
9966 2002-08-26  Martin Baulig  <martin@gnome.org>
9967
9968         * loader.c (mono_lookup_pinvoke_call): Include the error message
9969         from g_module_error() in the error message.
9970
9971 2002-08-24  Martin Baulig  <martin@gnome.org>
9972
9973         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
9974         function to update the symbol file.  The symbol file is mmap()ed
9975         writable, but private.  This allows us to install the symbol file
9976         together with the assembly.
9977
9978 2002-08-24  Martin Baulig  <martin@gnome.org>
9979
9980         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
9981         but they can read the new symbol file format which mcs is now creating.
9982
9983         * debug-symfile.c (mono_debug_find_source_location): Moved to
9984         debug-mono-symfile.c; this is now operating on the new symbol file.
9985
9986 2002-08-23  Martin Baulig  <martin@gnome.org>
9987
9988         * debug-helpers.c (mono_method_desc_from_method): New function to get
9989         a MonoMethodDesc from a MonoMethod.
9990
9991 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9992
9993         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
9994         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
9995
9996 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
9997
9998         * string-icalls.[ch]: make helper methods static.
9999
10000 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10001
10002         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10003         types to it and to SetValueInternal.
10004
10005         * object.c: Moved handle_enum label to its proper place. This was the
10006         f... bug! ;-)
10007
10008         This time i compiled mcs and gtk-sharp and they both work.
10009
10010 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10011
10012         * icall.c: reverted partially my previous patch until 
10013         object.c:set_value handles enums correcly.
10014
10015 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10016
10017         * icall.c:
10018         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10019         (ves_icall_System_Environment_get_MachineName): removed warning when
10020         compiling under cygwin.
10021
10022 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10023
10024         * object.c: fixed field_get_value() for reference types.
10025
10026 2002-08-22  Dick Porter  <dick@ximian.com>
10027
10028         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10029         Don't free a buffer while it's still needed.  Patch from Jonathan
10030         Liger <Jonathan.liger@wanadoo.fr>
10031
10032 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10033
10034         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10035         internal call.
10036
10037 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10038
10039         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10040         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10041
10042         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10043         we call unmanaged code which throws exceptions.
10044
10045 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10046
10047         * appdomain.h: added per-domain entry_assembly.
10048         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10049         arguments.
10050         * icall.c: Assembly::GetEntryAssembly icall.
10051         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10052         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10053
10054 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10055
10056         * appdomain.h, gc.c: added mono_domain_finalize ().
10057
10058 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10059
10060         * object.c:
10061         (mono_print_unhandled_exception): changed g_warning by g_printerr
10062         because g_log has a 1024 characters limit (yeah, i got a big stack
10063         trace). Don't print exception name, that should be in ToString 
10064         returned string.
10065
10066 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10067
10068         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10069         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10070
10071 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10072
10073         * object.c:
10074         (mono_print_unhandled_exception): after previous commit, i realized
10075         that MS calls ToString on the exception. I changed this function to
10076         do that. This way we get stack_trace for free.
10077
10078 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10079
10080         * object.c:
10081         (mono_print_unhandled_exception): invoke Message property instead of
10082         getting 'message' field from Exception. Don't allocate memory for
10083         'trace' and 'message' if not needed.
10084
10085 2002-08-18  Dick Porter  <dick@ximian.com>
10086
10087         * unicode.c: Fix asserts to match Encoder.cs checks
10088
10089 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10090
10091         * marshal.c: fix unaligned store issue and a few wrong
10092         opcode argument types.
10093
10094 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10095
10096         * icall.c: added GetUninitializedObjectInternal internal call.
10097
10098 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10099
10100         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10101         to the right domain.
10102
10103 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10104
10105         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10106
10107         * class.c (class_compute_field_layout): set blittable to false for Strings
10108
10109         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10110
10111 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10112
10113         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10114         first chunk of code to create types at runtime. Code to
10115         handle ReflectedType/DeclaringType. Make reflection handles
10116         domain specific.
10117
10118 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10119
10120         * class.c: set correct name in arrays.
10121
10122 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10123
10124         * appdomain.c (mono_domain_transfer_object): make it work with
10125         valuetypes. bug fixes.
10126
10127 2002-08-12  Dick Porter  <dick@ximian.com>
10128
10129         * object.h: Rename some parameters to avoid c++ keywords (Patch
10130         from Joseph Wenninger <kde@jowenn.at>)
10131
10132 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10133
10134         * icall.c: added icall to implement Assembly.GetFile*.
10135
10136 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10137
10138         * reflection.h, reflection.c: code to embed managed resources.
10139
10140 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10141
10142         * class.c: move all the type size stuff into
10143         class_compute_field_layout().
10144
10145 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10146
10147         * class.c: ensure enums have always the correct instance size.
10148         * unicode.c: remove wrong assert.
10149
10150 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10151
10152         * assembly.c: fix mem corruption issue.
10153         * image.h, image.c: added mono_image_get_resource () to access
10154         managed resources.
10155         * icall.c: implemented Assembly.EntryPoint property and some
10156         Managed Resources related internalcalls.
10157
10158
10159 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10160
10161         * image.c, image.h: impemented mono_image_get_entry_point ().
10162         * appdomain.c: use mono_image_get_entry_point.
10163
10164 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10165
10166         * reflection.c: support the object type argument when loading
10167         custom attributes.
10168
10169 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10170
10171         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10172         String as return type.
10173
10174 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10175
10176         * reflection.c: fix encoding of named args for custom attrs to match
10177         the ms implementation. Read them back when instantiating custom
10178         attributes.
10179
10180 2002-08-02  Radek Doulik  <rodo@ximian.com>
10181
10182         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10183         by Dietmar as quick fix
10184         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10185         16 as stack size, used on more places as quick fix before Dietmar
10186         will fix it properly
10187
10188 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10189
10190         * object.h, object.c: added accessors for fields and properties.
10191
10192 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10193
10194         * class.c, class.h: made mono_class_get_field_from_name ()
10195         loop on parent types.
10196         Added mono_class_get_property_from_name ().
10197
10198 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10199
10200         * class.c, class.h: move the code to setup the type vtable in its own
10201         function so that it can be reused also for types created at runtime.
10202         Eliminate the "class" identifier from the header file.
10203         * reflection.c: setup the vtable for enums so that we can create
10204         objects for use in SetConstant ().
10205
10206 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10207
10208         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10209         instead of the delegate itself as this pointer (bug #28383)
10210
10211 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10212
10213         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10214         conversions.
10215
10216 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10217
10218         * loader.c: don't set the pinvoke bit on icalls.
10219
10220 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10221
10222         * debug-helpers.c (mono_method_full_name): only print a number to
10223         indicate wrapper type (so that the output is more readable in traces).
10224
10225 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10226
10227         * class.c (mono_class_init): include method override patch from Paolo
10228
10229 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10230
10231         * icall.c: fixed GetTypeCode().
10232
10233 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10234
10235         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10236         use real delegate invoke function to make it work with multicast
10237         delegates (fix bug# 28291).
10238
10239 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10240
10241         * object.c: load constant strings.
10242
10243 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10244
10245         * reflection.c: no magic numbers.
10246         * tabledefs.h: security action enum.
10247
10248 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10249
10250         * assembly.c: fix possible memory corruption.
10251
10252 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10253
10254         * reflection.h, reflection.c: added support for linking resources.
10255         * verify.c: check we have an updated corlib.
10256
10257 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10258
10259         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10260         string arrays.
10261         (mono_marshal_string_array): null terminate unmanaged string arrays.
10262         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10263
10264 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10265
10266         * icall.c: Type.GetType () can now return also types from the
10267         calling assembly.
10268
10269 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10270
10271         * loader.h, loader.c: stack walking support.
10272         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10273         GetCallingAssembly.
10274
10275 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10276
10277         * marshal.c: added optimisations for blittable types 
10278
10279         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10280         (mono_class_setup_mono_type): set blittable attribute for single
10281         and double.
10282
10283         * marshal.c (mono_string_utf8_to_builder): impl.
10284         (mono_string_builder_to_utf8): impl.
10285         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10286
10287 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10288
10289         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10290         (mono_marshal_get_managed_wrapper): impl. byref types
10291
10292 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10293
10294         * icall.c:
10295         (search_method): don't display debug message. 
10296
10297 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10298
10299         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10300
10301 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10302
10303         * appdomain.c: set the missing filename when throwing exception.
10304
10305 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10306
10307         * metadata.c (mono_type_size): code cleanup
10308         (mono_type_stack_size): removed some test code
10309
10310 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10311
10312         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10313         mono_get_exception_file_not_found now.
10314
10315         * exception.c (mono_exception_from_name_two_strings): New version
10316         that will call a constructor with two string arguments. 
10317         (mono_get_exception_file_not_found): New helper routine, used to
10318         report file-not-found errors.
10319
10320 2002-07-20  Dick Porter  <dick@ximian.com>
10321
10322         * process.h:
10323         * process.c: Pass file handles to CreateProcess
10324         
10325         * icall.c:
10326         * file-io.h:
10327         * file-io.c: Implemented CreatePipe
10328
10329 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10330
10331         * metadata.c (mono_get_param_info): set alignment for value types
10332
10333 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10334
10335         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10336         Constify mono_domain_assembly_open().
10337         * loader.c: handle null namespace in icalls.
10338
10339 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10340
10341         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10342         (emit_str_to_ptr_conv): marshal object as structs
10343
10344         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10345
10346         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10347
10348 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10349
10350         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10351         (mono_marshal_get_native_wrapper): we an now return value types
10352
10353 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10354
10355         * verify.c: more checks implemented.
10356
10357 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10358
10359         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10360         (fix bug #27695)
10361         (mono_marshal_get_native_wrapper): allow byref arguments
10362         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10363         impl. PtrToStringXXX methods
10364         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10365         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10366         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10367         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10368         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10369
10370 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10371
10372         * reflection.c: fix buglet in parsing an assembly name.
10373
10374 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10375
10376         * marshal.c (emit_ptr_to_str_conv): first impl.
10377
10378 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10379
10380         * object.c, class.h: cache the vtable in the class as suggested by
10381         vargaz@freemail.hu (Zoltan Varga).
10382
10383 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10384
10385         * class.h, loader.c: added mono_field_from_token().
10386         * verify.c: first cut of type checking code.
10387
10388 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10389
10390         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10391
10392 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10393
10394         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10395         (fix bug #27782)
10396         (mono_marshal_get_remoting_invoke): impl.
10397         (mono_delegate_begin_invoke): impl.
10398         (mono_mb_emit_save_args): impl.
10399         (mono_delegate_end_invoke): impl.
10400         (mono_marshal_get_delegate_begin_invoke):
10401         (mono_marshal_get_delegate_end_invoke):
10402         (mono_marshal_get_delegate_invoke): generate a special name for
10403         those methods (including the signature) and associate them whith
10404         the delegate class. 
10405
10406 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10407
10408         * reflection.[ch]: 
10409         (mono_reflection_type_from_name): now it has a MonoImage parameter
10410         which is used as the default image to search the type in. If the image
10411         is NULL or getting the type from it fails, it defaults to corlib.
10412
10413         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10414         new parameter.
10415
10416 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10417
10418         * reflection.c: update the parameter table index.
10419
10420 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10421
10422         * domain.c: don't include the mark byte in the string hash.
10423
10424 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10425
10426         * icall.cs: icall for Type.GetTypeCode ().
10427         * verify: a couple of fixes and disabled local initialization checks.
10428
10429 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10430
10431         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10432
10433         * debug-helpers.c (mono_method_full_name): print the type of the
10434         runtime wrapper
10435
10436         * metadata.c (mono_signature_hash): a hash function for signatures
10437         (mono_signature_hash): better hash algorithm
10438
10439         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10440
10441         * debug-helpers.c (mono_method_full_name): this can now generate
10442         method names with signatures
10443
10444         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10445         method dont have this pointers.
10446
10447 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10448
10449         * reflection.c: fixup typebuilder tokens.
10450         * image.c: fix buglet.
10451         * marshal.h: remove whitespace.
10452         * metadata.h, metadata.c: reinstate code that was removed.
10453         * verify.c: handle catch directives and fix another couple of bugs.
10454
10455 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10456
10457         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10458         (mono_marshal_get_native_wrapper): make it comp. with the old code
10459         (mono_marshal_get_native_wrapper): support boolean
10460         (mono_marshal_get_managed_wrapper): support more types
10461
10462 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10463
10464         * class.c (class_compute_field_layout): compute class->blittable attribute.
10465
10466 2002-07-09  Dick Porter  <dick@ximian.com>
10467
10468         * threads.c: Make the thread cleaning up cope with threads that
10469         call ExitThread()
10470
10471 2002-07-08  Radek Doulik  <rodo@ximian.com>
10472
10473         * reflection.c (method_encode_code): use non-translated values to
10474         compute finally_start, this fixes exception handling on ppc, yay!
10475
10476         * decimal.h (struct signscale): fix endianess
10477
10478 2002-07-07  Radek Doulik  <rodo@ximian.com>
10479
10480         * reflection.c: swap box_val and not val
10481
10482 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10483
10484         * reflection.c, reflection.h: handle full assembly info in type name.
10485         Handle Type arguments when loading custom attributes.
10486         * icall.c: updated to use new mono_reflection_type_from_name () method.
10487
10488 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10489
10490         * loader.c:
10491         (method_from_memberref): also print assembly name when method not found.
10492
10493 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10494
10495         * icall.c:
10496         (ves_icall_TypeGetProperties): fixed bug #27473. 
10497
10498 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10499
10500         * reflection.c: display image name and token when cannot find the
10501         .ctor for an attribute.
10502
10503 2002-07-05  Martin Baulig  <martin@gnome.org>
10504
10505         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10506
10507 2002-07-04  Dick Porter  <dick@ximian.com>
10508
10509         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10510         compile on mingw.  This will cause mingw builds to not wait for
10511         subthreads to terminate after the main thread does.  I've lodged a
10512         bug with the mingw developers for them to wrap OpenThread().
10513
10514 2002-07-03  Dick Porter  <dick@ximian.com>
10515
10516         * threads.c: Store thread IDs instead of handles, because
10517         GetCurrentThread() returns a pseudohandle and therefore stores
10518         useless values.  mono_thread_cleanup() continues checking the
10519         array of threads until it is empty, to cope with subthreads
10520         spawning new threads after the main thread has finished.
10521
10522         * profiler.h:
10523         * profiler.c:
10524         * profiler-private.h: Pass the thread ID to thread profiler
10525         functions, instead of a handle
10526
10527 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10528
10529         * verify.c: fixes to make it more usable.
10530         * pedump.c: added --verify code to verify IL code in an assembly.
10531
10532 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10533
10534         * reflection.c: turn errors into warnings to allow compiling corlib.
10535
10536 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10537
10538         * reflection.c: add special cases to compile corlib.
10539
10540 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10541
10542         * reflection.c: handle properties with only a set method.
10543
10544 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10545
10546         * opcodes.h: add enum with opcodes in opval order.
10547
10548 2002-07-01  Dick Porter  <dick@ximian.com>
10549         
10550         * object.h:
10551         * object.c (mono_runtime_run_main): Removed unneeded argument
10552
10553 2002-06-28  Martin Baulig  <martin@gnome.org>
10554
10555         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10556
10557 2002-06-27  Dick Porter  <dick@ximian.com>
10558
10559         * threads.c: Store the handle in both the parent thread and in the
10560         subthread, to minimise the time between starting a new thread and
10561         storing its ID.
10562
10563 2002-06-26  Dick Porter  <dick@ximian.com>
10564
10565         * appdomain.c (mono_runtime_cleanup): Close the socket library
10566         after all the threads have finished, not before
10567
10568 2002-06-26  Martin Baulig  <martin@gnome.org>
10569
10570         * debug-symfile.c (mono_debug_find_source_location): Added
10571         `guint32 *line_number' argument.  If it's not NULL, store the line number
10572         there and return the file name without the line number.
10573
10574 2002-06-25  Dick Porter  <dick@ximian.com>
10575
10576         * icall.c:
10577         * process.h:
10578         * process.c: Process forking and other support functions
10579
10580 2002-06-25  Dick Porter  <dick@ximian.com>
10581
10582         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10583         things dont happen when the image is closed.
10584         (mono_image_lookup_resource): Walk the resource section looking
10585         for a particular entry
10586
10587         * cil-coff.h: PE resource section decoding
10588
10589 2002-06-25  Dick Porter  <dick@ximian.com>
10590         
10591         * assembly.h:
10592         * assembly.c: 
10593         (mono_assembly_foreach): Accessor functions to walk the list of
10594         loaded assemblies
10595         (mono_assembly_set_main):
10596         (mono_assembly_get_main): Process methods need to know which
10597         assembly is the "main" one
10598
10599         * object.c (mono_runtime_run_main): Record the main assembly
10600
10601         * debug-helpers.c: Fix typo
10602
10603 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10604
10605         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10606         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10607
10608 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10609
10610         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10611
10612 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10613
10614         * image.c (do_mono_image_open): Initialize reference count,
10615         otherwise we leak the MonoImage.
10616
10617 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10618
10619         * reflection.c: small tweak to handle self-hosting.
10620
10621 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10622
10623         * reflection.c: fix type name parse code.
10624
10625 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10626
10627         * reflection.c: break out of the loop.
10628         * image.c: special case corlib.
10629
10630 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10631
10632         * reflection.c: add all the custom attrs at the end to ensure the
10633         ctors have been properly initialized when the attributes are defined
10634         in the current assembly.
10635
10636 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10637
10638         * reflection.c: handle correctly multiple-nested types.
10639
10640 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10641
10642         * row-indexes.h: fix typos.
10643         * reflection.c: adjust for typos and fix method_def_or_ref
10644         encoding in MethodImpl table.
10645
10646 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10647
10648         * reflection.c: fix entry point patching (thanks Serge!).
10649
10650 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10651
10652         * verify.c: add check for System.Exception
10653
10654 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10655
10656         * image.c, class.c: minifix for code just c&p'ed.
10657         * reflection.c: warning fix.
10658         * object.h, loader.h, domain.c: load also StringBuilder.
10659
10660 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10661
10662         * marshal.h, marshal.c: some support code to handle complex marshaling.
10663
10664 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10665
10666         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10667         Better signatures with vtable error dump.
10668
10669 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10670
10671         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10672
10673 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10674
10675         * icall.c (ves_icall_Type_GetField): impl.
10676
10677 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10678
10679         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10680         to retrieve a marshal description blob for a field or param.
10681
10682 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10683
10684         * reflection.h, reflection.c: change order of nested type emission
10685         to avoid table corruption. The NestedTypes table is sorted.
10686         * icall.c: change order of GetConstructor results to workaround mcs bug.
10687
10688 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10689
10690         * reflection.h, reflection.c: handle field and param marshal
10691         information.
10692
10693 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10694
10695         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10696
10697 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10698
10699         * reflection.c: fix call convention.
10700
10701 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10702
10703         * reflection.h, reflection.c: mono_image_get_memberref_token()
10704         takes a type instead of a class, now. Added
10705         mono_image_get_array_token() to create tokens for the special
10706         multi-dim array methods.
10707
10708 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10709
10710         * assembly.c: handle modules (no assembly table). Split
10711         loading references in its own function.
10712         * class.c: handle moduleref resolution scope.
10713         * image.c, image.h: cache module name in image.
10714
10715 2002-06-07  Martin Baulig  <martin@gnome.org>
10716
10717         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10718         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10719
10720 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10721
10722         * icall.c: more signature fixes that used uint instead of int.
10723
10724 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10725
10726         * reflection.c: fixed signature of field refs.
10727
10728 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10729
10730         * class.c, reflection.c: handle typerefs of nested types
10731         (both on read and when writing files).
10732
10733 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10734
10735         * icall.c: fix method signatures that tried to workaround the previous
10736         typo, d'oh!
10737
10738 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10739
10740         * debug-helpers.c: fix typo.
10741
10742 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10743
10744         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10745         rewrote the PE/COFF writing code (our programs are understood by the
10746         ms runtime, now).
10747
10748 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10749
10750         * gc.c, gc.h, icall.c: weakreference support.
10751
10752 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10753
10754         * Makefile.am, mono-config.c: use $(sysconfdir).
10755
10756 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10757
10758         * icall.c: changed default precision of Double.ToString() to 15.
10759         Fixed memory leak. Unified with Single.ToString.
10760
10761 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10762
10763         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10764
10765 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10766
10767         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10768         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10769         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10770         and myself.
10771
10772 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10773
10774         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10775
10776 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10777
10778         * reflection.c, socket-io.c: more compilation fixes.
10779
10780 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10781
10782         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10783         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10784         unicode.c: warning and compiler compatibility fixes.
10785
10786 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10787
10788         * class.h, metadata.c: fixed warnings/compilation errors.
10789
10790 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10791
10792         * Makefile.am, mono-config.c, mono-config.h: configuration file
10793         support routines.
10794         * loader.c, loader.h: make Dll mapping configurable at runtime in the
10795         config file. Export methods to insert and lookup mappings.
10796
10797 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10798
10799         * reflection.c: handle types and boxed objects in custom attr
10800         constructors.
10801
10802 2002-05-30  Martin Baulig  <martin@gnome.org>
10803
10804         * debug-symfile.c
10805         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
10806
10807 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
10808
10809         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
10810         to lookup the implmap row for a P/Invoke method.
10811         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
10812         P/Invoke method from the runtime on an as needed basis.
10813
10814 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
10815
10816         * metadata.c (mono_metadata_parse_signature): impl.
10817
10818 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10819
10820         * class.c: handle .pack directive.
10821
10822 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10823
10824         * object.c: initialize static fields with RVA data.
10825
10826 2002-05-25  Martin Baulig  <martin@gnome.org>
10827
10828         * debug-symfile.c
10829         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
10830
10831 2002-05-24  Martin Baulig  <martin@gnome.org>
10832
10833         * debug-symfile.c
10834         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
10835         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
10836         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
10837
10838 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10839
10840         * object.c: special case string ctros in invoke.
10841         * gc.c: silly whitespace changes.
10842
10843 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
10844
10845         * threadpool.[ch]: impl. a threadpool that can
10846         be used by mint and mono.
10847
10848 2002-05-22  Martin Baulig  <martin@gnome.org>
10849
10850         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
10851         The first argument is now a `MonoReflectionModuleBuilder *', the return
10852         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
10853         `methods' field to get the method builder.  The `token' argument is the
10854         unfixed token.
10855
10856         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
10857         invalid characters instead of g_assert_not_reached()ing.  This seems
10858         to be the behaviour of mscorlib.
10859
10860 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
10861
10862         * object.c (mono_runtime_invoke_array): applied patch from Rachel
10863         Hestilow to fix bug #25104
10864
10865 2002-05-21  Martin Baulig  <martin@gnome.org>
10866
10867         * debug-symfile.c (mono_debug_find_source_location): New function.
10868         Looks up an IL offset in the line number table and returns the source
10869         location as a string.
10870
10871 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10872
10873         * icall.c:
10874         (mono_double_ToStringImpl): changed %f by %g until we have something
10875         better.
10876
10877 2002-05-21  Nick Drochak  <ndrochak@gol.com>
10878
10879         * icall.c : Use different name for Math.Pow's icall.  Needed to check
10880         parameters first in C#.
10881
10882 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10883
10884         * icall.c, reflection.h: added icall to get info about an event.
10885
10886 2002-05-20  Radek Doulik  <rodo@ximian.com>
10887
10888         * object.c (mono_value_box): don't use memcpy for boxing on BIG
10889         endian
10890         (mono_value_box): don't use memcpy for small sizes on
10891         architectures with unaligned access
10892
10893 2002-05-20  Martin Baulig  <martin@gnome.org>
10894
10895         * reflection.c (mono_reflection_setup_internal_class): Don't crash
10896         if `tb->parent == NULL'.
10897         (mono_reflection_create_internal_class): New function.  This is
10898         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
10899         for enum types.
10900
10901         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
10902         New interncall.
10903
10904 2002-05-19  Martin Baulig  <martin@gnome.org>
10905
10906         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
10907         argument to get the length, don't default to the array length.
10908
10909 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
10910
10911         * assembly.c (mono_assembly_setrootdir): New function used to
10912         override the MONO_ASSEMBLIES directory.
10913
10914 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10915
10916         * icall.c: ValueType_GetHashCode() initialize local var.
10917
10918 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10919
10920         * reflection.c: sort custom attributes table.
10921
10922 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10923
10924         * reflection.c: support named args in custom attributes (write support).
10925
10926 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10927
10928         * reflection.c: fix finally position calculation.
10929
10930 2002-05-15  Radek Doulik  <rodo@ximian.com>
10931
10932         * reflection.c: fixed endianess at many places
10933
10934         * icall.c (ves_icall_InitializeArray): comment out debug msg
10935
10936 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
10937
10938         * object.c (mono_unhandled_exception): new function to handle
10939         unhandled exceptions.
10940         (mono_unhandled_exception): call the UnhandledException event.
10941         (mono_runtime_delegate_invoke): impl.
10942
10943 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
10944
10945         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
10946         returns the RVA, not the direct pointer to the data. Handle the case
10947         when the class size is fixed.
10948
10949 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10950
10951         * reflection.c: fix some endianess issues.
10952
10953 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
10954
10955         * object.c (mono_runtime_invoke): is now able to catch exceptions.
10956
10957         * threads.c (mono_thread_init): added a callback which is invoked
10958         at thread start.
10959
10960 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10961         
10962         * icall.c: make GetHashCode return non-negative values.
10963
10964 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10965
10966         * object.c, icall.c, gc.c: revert to address-based hashcode.
10967
10968 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
10969
10970         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
10971
10972 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10973
10974         * icall.c, class.c: special case <Module>.
10975
10976 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
10977
10978         * icall.c: fix bug in GetNow().
10979
10980 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
10981
10982         * object.c (mono_runtime_class_init): make sure that we call all
10983         static class constructors.
10984
10985 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10986
10987         * reflection.c: sort methodsemantics table.
10988
10989 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10990
10991         * reflection.h, reflection.c: honour init locals setting.
10992
10993 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
10994
10995         * icall.c: copied Double ToStringImpl for Single ToStringImpl
10996
10997 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10998
10999         * reflection.c: support ContructorBuilders in attribute blob creation.
11000
11001 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11002
11003         * reflection.c: some changes to build a binary that can be run
11004         directly in windows.
11005
11006 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11007
11008         * loader.c: print a big message when an icall can't be found.
11009
11010 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11011
11012         * string-icalls.c: fix bug 24248.
11013
11014 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11015
11016         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11017         icall.c, reflection.h: separate assembly loading by pathname and by
11018         assembly name. Use the MONO_PATH env var to search for assemblies.
11019
11020 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11021
11022         * assembly.c, image.h: add some support for assemblies
11023         with multiple modules.
11024         * class.c, class.h: export mono_class_from_typeref().
11025         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11026         instead.
11027
11028 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11029
11030         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11031         documentation says (the ECMA one is correct).
11032
11033 2002-05-02  Dick Porter  <dick@ximian.com>
11034
11035         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11036         Don't name the synchronisation mutex.
11037
11038 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11039
11040         * rand.c
11041         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11042         Make the prototypes match.
11043         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11044         Same.
11045
11046         * icall.c
11047         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11048         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11049         all systems have tm.tm_zone, so use strftime() with %Z to print
11050         the timezone abreviation into a temp string.
11051
11052         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11053         rather than mono_array_addr() on a MonoString on Big Endian
11054         machines.
11055
11056 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11057
11058         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11059         fix bug 24041
11060
11061 2002-04-30  Dick Porter  <dick@ximian.com>
11062
11063         * socket-io.c: Cope with SOCKET being an integer rather than a
11064         pointer now.
11065
11066         * threads.c: Added Thread_free_internal, to deal with thread
11067         handle cleanup.  Moved calls to handle_store() and handle_remove()
11068         to start_wrapper(), so each can only be called once.  Allocate
11069         synchronisation blocks with GC_malloc(), and use GC finalisation
11070         to close the handles.
11071
11072         * icall.c: added System.Threading.Thread::Thread_free_internal
11073
11074 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11075
11076         * icall.c: support Environment.Exit, CommandLineArgs().
11077
11078 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11079
11080         * object.c, object.h: added mono_runtime_run_main () and
11081         mono_runtime_get_main_args () for use in System.Environment.
11082
11083 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11084
11085         * gc.c: fix thinko, enable actual finalization since the jit is now
11086         fixed.
11087
11088 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11089
11090         * gc.c, object.c: take into account that an object may be offset wrt the address
11091         returned by GC_malloc().
11092
11093 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11094
11095         * image.c: handle files without entries in the assembly table (modules).
11096
11097 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11098
11099         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11100         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11101         allowed to be null when it's System.Object class setup.
11102
11103 2002-04-27  Martin Baulig  <martin@gnome.org>
11104
11105         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11106         if `tb->parent == NULL' rather than crashing.
11107
11108 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11109
11110         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11111         calling acos() where asin() should have been called.
11112
11113 2002-04-26  Martin Baulig  <martin@gnome.org>
11114
11115         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11116         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11117         there's a subdirectory called `System', but we don't want to read that
11118         subdirectory as an assembly.
11119
11120 2002-04-25  Martin Baulig  <martin@gnome.org>
11121
11122         * debug-symfile.c: Reflect latest MonoString changes.
11123
11124 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11125
11126         * rand.c, rand.h: instance method icalls need to have an explicit
11127         this pointer as first argument in the C implementation.
11128
11129 2002-04-25  Nick Drochak <ndrochak@gol.com>
11130
11131         * icall.c: Fix typo in map for GetNonZeroBytes
11132
11133 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11134
11135         * string-icalls.c : String does now passes unit tests without any 
11136         errors, the following changes has been made:
11137         
11138         Implemented replace methods.
11139         Renaming of methods to (try) follow the standard.
11140         Fixed compare ordinal
11141         Made all memory allocated directly to function instead of via icall function.
11142         Small performance fix in is_in_array function
11143                         
11144  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11145
11146         c (mono_string_Internal_ctor_charp_int_int):
11147         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11148         sindex < 0, throw ArgumentOutOfRangeException instead of
11149         ArgumentNullException.
11150
11151         Added new check for length == 0, however
11152         I need to make it return String.Empty from the C code.
11153         
11154         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11155         that calculate the length for us here.
11156         
11157         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11158         mono_string_new_utf16 with mono_string_new, since value is utf8.
11159
11160 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11161
11162         * object.c: register the object for finalization if needed.
11163         Allocate one more char in the string for the terminating 0 char.
11164
11165 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11166
11167         * class.c, class.h, image.c: check if a type implemenst a destructor.
11168         Use the proper key for array class lookups.
11169         * icall.c: register the icalls in the System.GC class.
11170         * gc.c, gc.h: GC-related functions and icalls.
11171
11172 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11173
11174         * icall.c:
11175         * socket-io.c:
11176         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11177         changed a couple of free () by g_free ().
11178
11179         * decimal.c: one-liner in the comments for decimal2string ().
11180
11181 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11182
11183         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11184
11185 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11186
11187         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11188         * object.c (mono_runtime_invoke_array) : handle null in params
11189
11190 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11191
11192         * string-icalls.c: fixed bug in split (one off bug)
11193
11194 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11195
11196         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11197         * icalls.c: added String::Equals as internal method
11198
11199 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11200
11201         * threads.c: fixed bug in the double interlocked functions
11202
11203 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11204
11205         * threads.c: implemented all of the new interlocked icalls.
11206         * string-icalls.c: fix a bug in insert.
11207         * icalls.c: added the icalls for interlocked, removed old string functions.
11208         
11209 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11210
11211         * loader.c: fix off-by-one error when reading argument names.
11212
11213 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11214
11215         * profiler.c: win32 counter implementation (untested).
11216         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11217         (the latter needs testing and more complete impl. from win32 folks).
11218
11219 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11220
11221         * object.c: mono_array_new_full workaround mono_array_class_get
11222         problem.
11223
11224 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11225
11226         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11227         * object.h (mono_string_chars): Changed casting type.
11228
11229 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11230
11231         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11232                            method signatures to use gunichar2 instead of gint16.
11233
11234 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11235
11236         * object.h, object.c: domain-specific versions of mono_object_new and
11237         mono_array_new.
11238
11239 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11240
11241         * object.c: changed String layout
11242
11243         * string-icalls.c (mono_string_Internal_ctor_chara): added
11244         internal string constructors.
11245
11246 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11247
11248         * threads.c: pass 'this' to the thread start routine.
11249
11250 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11251
11252         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11253         InternalCompareStr don't call twice mono_string_cmp_char for the last
11254         character. Improved performance in mono_string_cmp_char.
11255
11256 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11257
11258         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11259         code into its own library: libmonoruntime.
11260
11261 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11262
11263         * object.h, object.c: changed array format so that szarrays do not
11264         require a bounds structure.
11265         * icall.c, appdomain.c: support for new szarray format.
11266
11267 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11268
11269         * metadata.c: compare also the retuns type when comparing signatures:
11270         we didn't do this as an optimization since really overloaded methods
11271         must differ also in the arguments, but this doesn't work with
11272         low-level IL code (or when using explicit conversion operators: see
11273         bug#23498 for an example).
11274
11275 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11276
11277         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11278
11279 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11280
11281         * icall.c: make MonoType::GetElementType its own icall.
11282
11283 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11284
11285         * icall.c: remove MonoMethod_get_Name().
11286         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11287         object.
11288
11289 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11290
11291         * string-icalls.c: optimized a few methods.
11292
11293 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11294
11295         * icall.c: added all new string internal calls
11296         * string-icalls.c: added, new string internal call implementation.
11297         * object.c: added mono_string_new_size for allocating a string a size
11298
11299 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11300
11301         * object.c (mono_object_isinst): use the same code as in the
11302         optimized x86 version.
11303
11304 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11305
11306         * profiler.c: TSC-based timer code (faster and more accurate).
11307         Not hooked up in configure, yet (set USE_X86TSC to 1).
11308
11309 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11310
11311         * profiler.c, profiler.h: track time spent compiling methods.
11312         * threads.c: track thread creation/destruction.
11313
11314 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11315
11316         * profiler.c, profiler.h, profiler-private.h: profiling interface
11317         and sample implementation. Moved here so that it can be used also by
11318         the jit.
11319
11320 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11321
11322         * reflection.c, reflection.h: keep types and other handles separate in
11323         the hash tables for referred tokens. Add guid for modules.
11324
11325 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11326
11327         * assembly.c: fix bugs found with valgrind.
11328         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11329
11330 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11331
11332         * threads: added icall support for getting current domain for
11333                    the thread.
11334  
11335 2002-04-13  Martin Baulig  <martin@gnome.org>
11336
11337         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11338         (MonoDebugVarInfo): Added `index' field for register based addresses.
11339         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11340         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11341         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11342         `MonoDebugVarInfo *this_var'.
11343
11344         * debug-symfile.c (relocate_variable): New static function to write
11345         a location description for a local variable or method parameter.
11346
11347 2002-04-12  Martin Baulig  <martin@gnome.org>
11348
11349         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11350         stack offset and begin/end scope address of a local variable.
11351         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11352         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11353         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11354
11355         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11356         Added new relocation types for start/end scope of a local variable.
11357
11358 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11359
11360         * object.h: add mono_object_domain() macro.
11361         * reflection.c: handle typespecs.
11362         * icall.c: MonoMethod::get_Name() implementation.
11363
11364 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11365
11366         * icall.c: String::GetHashCode() icall implementation.
11367
11368 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11369
11370         * icall.c: String::IndexOfAny icall.
11371         * object.c, object.h: make array->max_length more useful.
11372         Intrduced mono_object_class() and mono_string_length() macros.
11373
11374 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11375
11376         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11377         instead of g_unichar_isdigit.
11378
11379 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11380
11381         * icall.c: Implement a simple Double.ToString().
11382
11383 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11384
11385         * appdomain.h: only io-layer.h is supposed to be included.
11386         * icall.c: explicitly import environ. Fix warning.
11387
11388 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11389
11390         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11391                 return true even if it's not Daylight Savings time.
11392                 Only return false for the case where the function isn't
11393                 implemented for a plaform (read Windows).
11394
11395 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11396
11397         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11398         data with a mutex.
11399
11400 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11401
11402         * mempool.c (mono_mempool_alloc): only use g_malloc when
11403         absolutely necessary.
11404
11405 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11406
11407         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11408
11409         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11410         (mono_class_proxy_vtable): use domain mempool
11411
11412 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11413
11414         * appdomain.h, appdomain.c: split initialization that requires the
11415         execution engine support into mono_runtime_init().
11416
11417 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11418
11419         * class.c (mono_class_init): don't include vtable inside MonoClass
11420         to save some memory, gather some statistics.
11421         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11422
11423 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11424
11425         * icall.c: internalcall implementation for ValueType.Equals().
11426
11427 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11428
11429         * object.c (mono_message_init): moved 
11430         (mono_runtime_exec_main): new arch. independent impl.
11431         (mono_runtime_invoke_array): new method - like
11432         mono_runtime_invoke, but you can pass an array of objects.
11433         (mono_remoting_invoke): new arch. independent impl.
11434         (mono_message_invoke): new arch. independent impl.
11435         (mono_runtime_class_init): new arch. independent impl.
11436         (mono_runtime_object_init): new arch. independent impl.
11437
11438 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11439
11440         * metadata.c, object.c, reflection.c: documented the exported
11441         functions.
11442
11443 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11444
11445         * icall.c: simpler code to pass the assembly builder data to corlib.
11446         Implement GetNestedTypes() internalcall.
11447
11448 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11449
11450         * class.c: warn if a type can't be loaded.
11451
11452 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11453
11454         * image.h: typedef MonoImageOpenStatus
11455         * types.h: removed unused file
11456         
11457 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11458
11459         * icall.c: Enum_ToObject accepts enum value arguments.
11460
11461 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11462
11463         * class.c: move initialization of properties, events and nested
11464         classes, so that they happen for interfaces, too.
11465
11466 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11467
11468         * icall.c: cleanup some ugly casts in Array_SetValue*.
11469
11470 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11471
11472         * icall.c: the values array fro enums is of the correct type, now.
11473         Implement (correctly) getFullName instead of assQualifiedName for
11474         MonoType.
11475         * reflection.h, reflection.c: added mono_type_get_name ().
11476
11477 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11478
11479         * assembly.c, image.h: for each MonoImage, record from wich assembly
11480         it was loaded.
11481         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11482         Make Type.Assembly work.
11483
11484 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11485
11486         * debug-symfile.h: use char* instead of gpointer to avoid
11487         unnecessary casts.
11488
11489         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11490
11491         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11492         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11493
11494 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11495
11496         * icall.c (mono_message_init): impl. (code cleanup)
11497         (ves_icall_InternalExecute): impl. FieldGetter
11498
11499         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11500         defined we call all (non-static)methods through the vtable. 
11501
11502 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11503
11504         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11505         finalizer even though the memory is still referenced (and the chunk of
11506         memory is not freed).
11507
11508 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11509
11510         * assembly.c: fix brokeness.
11511
11512 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11513
11514         * class.c: kill some warnings. Check explicit interface method
11515         implementation also without considering the namespace.
11516         Load also literal strings in static class data.
11517
11518 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11519
11520         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11521         (default_assembly_name_resolver): Make the resolver take the
11522         "base" directory where the assembly was originally defined, so we
11523         can load DLLs that are in the same directory as the assembly that
11524         is being referenced.
11525
11526 2002-03-28  Dick Porter  <dick@ximian.com>
11527
11528         * file-io.h: 
11529         * file-io.c:
11530         * socket-io.c: 
11531         * unicode.h: 
11532         * unicode.c: Warning cleanups
11533
11534 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11535
11536         * object.h, reflection.h: use the correct type instead of MonoObject.
11537
11538 2002-03-28  Martin Baulig  <martin@gnome.org>
11539
11540         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11541         (mono_debug_update_symbol_file): Initialize classes if necessary.
11542
11543 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11544
11545         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11546         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11547
11548 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11549
11550         * assembly.h: fix function prototype.
11551         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11552         * mono-endian.h: use const cast.
11553
11554 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11555
11556         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11557
11558 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11559
11560         * loader.c: don't assert when a typeref can't be loaded, give
11561         a chance to the runtime to trow an exception instead.
11562         * loader.h: fix warning.
11563
11564 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11565
11566         * class.c (mono_class_proxy_vtable): added proxy support
11567
11568 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11569
11570         * icall.c: removed last of PAL calls, added System.Environment
11571         * file-io.h, file-io.c: MonoIO implementation
11572         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11573
11574 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11575
11576         * appdomain.c: do not use the byte marker in ldstr table lookup.
11577         * debug-helpers.c: allow two ':' to separate class and method name.
11578         * object.c: allocate arrays bounds with the GC, too.
11579         * verify: add a few more checks.
11580
11581 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11582
11583         * reflection.c: output also literal strings. Allocate parameter data
11584         with GC_malloc() (thanks, Martin, for catching this!).
11585
11586 2002-03-26  Martin Baulig  <martin@gnome.org>
11587
11588         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11589         include the `this' offset in the `param_offsets'.
11590
11591 2002-03-25  Martin Baulig  <martin@gnome.org>
11592
11593         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11594         mono_debug_get_class() function to get the classes. Added new
11595         relocation types for arrays and strings.
11596         (mono_debug_get_class): New static function to search in all
11597         referenced assemblies for a metadata token.
11598
11599         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11600
11601 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11602
11603         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11604         hold gc-allocated objects. Make the string heap a stream like the
11605         others. Removed duplicated code when writing stream info.
11606         Added asserts to catch possible buffer overflows. Set the sorted map
11607         for tables that need sorting. Added some documentation.
11608
11609 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11610
11611         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11612         for interned strings and vtables.
11613
11614 2002-03-24  Martin Baulig  <martin@gnome.org>
11615
11616         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11617         it in the array since it was created with g_slist_prepend().
11618
11619 2002-03-24  Martin Baulig  <martin@gnome.org>
11620
11621         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11622         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11623         (mono_debug_method_from_token): Renamed to
11624         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11625         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11626
11627         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11628         relocation types.
11629
11630         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11631
11632 2002-03-24  Martin Baulig  <martin@gnome.org>
11633
11634         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11635         (mono_debug_method_from_token): New func.
11636
11637         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11638         New interncall, calls mono_debug_local_type_from_signature().
11639         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11640         calls mono_debug_method_from_token().
11641
11642 2002-03-23  Martin Baulig  <martin@gnome.org>
11643
11644         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11645         specifies the number of bytes to be converted, not the array size.
11646         Return the number of chars, not the number of bytes.
11647         (ves_icall_iconv_get_chars): The `byteCount' argument
11648         specifies the number of bytes to be converted, not the array size.
11649
11650 2002-03-23  Martin Baulig  <martin@gnome.org>
11651
11652         * reflection.h (MonoReflectionSigHelper): New type.
11653
11654         * reflection.c (mono_reflection_sighelper_get_signature_local),
11655         (mono_reflection_sighelper_get_signature_local): New functions.
11656
11657         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11658         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11659         interncalls.
11660
11661 2002-03-23  Martin Baulig  <martin@gnome.org>
11662
11663         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11664         is_writeable is set.
11665         (mono_raw_buffer_update): New function to write the modified map
11666         back to disk.
11667
11668         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11669
11670         * debug-symfile.c (mono_debug_update_symbol_file): Call
11671         mono_raw_buffer_update() when done writing.
11672
11673 2002-03-23  Martin Baulig  <martin@gnome.org>
11674
11675         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11676
11677         * debug-symfile.c: Added support for arguments and local variables.
11678
11679 2002-03-23  Dick Porter  <dick@ximian.com>
11680
11681         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11682         protected by ifdefs, hence breaking the w32 build.
11683
11684 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11685
11686         * object.c: implement is_interned() the right way.
11687
11688 2002-03-21  Martin Baulig  <martin@gnome.org>
11689
11690         * debug-symfile.[ch]: New files to handle debugging information
11691         files. There's also support to dynamically update these symbol
11692         files to include machine dependent information.
11693
11694 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11695
11696         * threads.c (mono_thread_create): new function to create thread
11697         from C
11698
11699 2002-03-20  Martin Baulig  <martin@gnome.org>
11700
11701         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11702         method is a constructor.
11703         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11704         points to ves_icall_InternalInvoke().
11705
11706 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11707
11708         * file-io.c: Flush shouldn't throw exceptions.
11709
11710 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11711
11712         * file-io.c: FileStream flush support; FileSetLength now
11713         restores file pointer.
11714
11715 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11716
11717         * class.c: set image for pointer classes.
11718
11719 2002/03/19  Nick Drochak <ndrochak@gol.com>
11720
11721         * sysmath.c: Forgot one.
11722
11723 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11724
11725         * sysmath.c: Avoid redefining existing names.
11726
11727 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11728
11729         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11730         handled by runtime as icall rather than dllimport from libm.so
11731         * file-io.c, file-io.h: fixed handle argument type.
11732
11733 2002-03-18  Dick Porter  <dick@ximian.com>
11734
11735         * reflection.c (mono_image_get_type_info): rename interface to
11736         iface, because of "#define interface struct" on windows.
11737
11738 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11739
11740         * class.c, class.h: rename and export mono_ptr_class_get().
11741         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11742         * reflection.c, reflection.h, icall.c: better/saner type name
11743         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11744         method signatures.
11745
11746 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11747
11748         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11749
11750         * icall.c (ves_icall_InternalInvoke): impl.
11751
11752 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11753
11754         * reflection.c: output the interface map table, too.
11755
11756 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11757
11758         * class.c (class_compute_field_layout): separate computation of 
11759         static field layout
11760
11761 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11762
11763         * icall.c: added System.Buffer support.
11764         * file-io.c: moved file icalls from PAL to FileStream.
11765
11766 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11767
11768         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11769
11770 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11771
11772         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11773
11774 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11775
11776         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11777
11778 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11779
11780         * debug-helpers.{c,h}: moved here from monograph some useful functions
11781         to locate a method by name/signature in a class or image. Included
11782         also a small and flexible IL disassembler.
11783
11784 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11785
11786         * reflection.c: fixup tokens in methods with small header size, too.
11787
11788 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
11789
11790         * object.c (mono_string_to_utf8): remove assert(!error), instead
11791         print a warning. 
11792
11793 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
11794
11795         * icall.c: update to the new mono_Array_class_get interface.
11796
11797 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11798
11799         * appdomain.c, object.c: Boehm-GC enable.
11800         * icall.c: make get_data_chunk() support split data requests.
11801         Ensure a class is initialized in more cases. Return only the first
11802         property found in GetProperties() or the compiler gets confused. 
11803         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
11804         * reflection.h, reflection.c: add fixup mechanism for field and method
11805         tokens. Initialize assembly->typeref in a single place. Output
11806         properties after events. Support custom attributes for events, too.
11807         Typo fix for paramter custom attrs.
11808
11809 2002-03-07  Martin Baulig  <martin@gnome.org>
11810
11811         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
11812
11813 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
11814
11815         * class.c (mono_array_class_get): fix. for multi. dim. arrays
11816
11817 2002-03-06  Martin Baulig  <martin@gnome.org>
11818
11819         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
11820         non-zero lower bounds. See testcases #F10-#F13.
11821
11822 2002-03-05  Martin Baulig  <martin@gnome.org>
11823
11824         * exception.c (mono_get_exception_argument_out_of_range): New exception.
11825
11826         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
11827         ves_icall_System_Array_GetValue(), only calculate the absolute array position
11828         here.
11829         (ves_icall_System_Array_SetValue): Likewise.
11830         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
11831         as argument and does the actual work. This function is used when copying a
11832         multi-dimensional array.
11833         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
11834         now do all the widening conversions of value types.
11835         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
11836
11837 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11838
11839         * class.c: remove some magic numbers and use the smbolic names,
11840         instead. Added init_events() to load event info at class init time.
11841         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
11842         and mono_metadata_methods_from_event().
11843         * reflection.h, reflection.c: added support for writing out the evnets
11844         related information.
11845
11846 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11847
11848         * reflection.h, icall.c: use a different method (GetInterfaces)
11849         to gather interface info and add isbyref, isprimitive and
11850         ispointer to the ves_icall_get_type_info() return value.
11851
11852 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11853
11854         * class.h: stared adding support for events.
11855         * icall.c: split find_members implementation. Added debug icall to get
11856         the address of an object.
11857         * reflection.c: handle TypeBuilders in mono_type_get_object().
11858
11859 2002-03-01  Martin Baulig  <martin@gnome.org>
11860
11861         * icall.c (ves_icall_System_Array_GetLength): This must throw an
11862         ArgumentOutOfRangeException(), not an ArgumentException().
11863         (ves_icall_System_Array_GetLowerBound): Likewise.
11864         (ves_icall_System_Array_GetValue): Improved argument checking.
11865         (ves_icall_System_Array_SetValue): Improved argument checking.
11866
11867 2002-03-01  Martin Baulig  <martin@gnome.org>
11868
11869         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
11870         called with invalid arguments rather than just dying with g_assert().
11871         (ves_icall_System_Array_SetValue): Likewise.
11872         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
11873         raise a NotImplementedException instead.
11874         (ves_icall_System_Array_GetLength): Added argument checking.
11875         (ves_icall_System_Array_GetLowerBound): Added argument checking.
11876
11877 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
11878
11879         * object.h (mono_assert): new macros mono_assert and
11880         mono_assert_not_reached
11881
11882 2002-02-28  Martin Baulig  <martin@gnome.org>
11883
11884         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
11885         and "System::String::IsInterned" to "System::String::_IsInterned".
11886
11887 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
11888
11889         * icall.c: remove hacks for typebuilder. Added icall to create a
11890         modified type from a tybebuilder.
11891         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
11892         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
11893         to create a backing MonoClass for a TypeBuilder.
11894
11895 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11896
11897         * class.c, class.h: more refactoring of class init.
11898         Export mono_class_setup_mono_type() and mono_class_setup_parent().
11899
11900 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
11901
11902         * marshal.c, marshal.h: start of marshaling interface.
11903
11904 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
11905
11906         * icall.c: fix order in assembly qualified name icall.
11907
11908 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
11909
11910         * class.c: do not free str, since we store it in the hash table.
11911         * reflection.h: add label field to MonoILExceptionInfo.
11912         * reflection.c: handle references to more than one assembly. Handle
11913         case when there isn't a module created in the assembly.
11914
11915 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11916
11917         * class.c: Fix typo. Start refactoring of class init code.
11918
11919 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11920
11921         * appdomain.c: exit with 1 on error.
11922         * class.c: we already have the name in MonoClassField.
11923         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
11924         MonoStreamHeader instead of an offset of image->raw_metadata.
11925
11926 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
11927
11928         * appdomain.c (mono_init): Be even more descriptive about the error.
11929
11930 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
11931
11932         * appdomain.c: give the user an informative message when corlib can't
11933         be loaded.
11934
11935 2002-02-26  Martin Baulig  <martin@gnome.org>
11936
11937         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
11938         New icall to get the time zone data.
11939
11940 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11941
11942         * reflection.c: set virtual and raw size of section correctly.
11943         * threads.c: transfer domain information to newly created threads.
11944
11945 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
11946
11947         * class.c: when instancing a class in a domain, load the default
11948         vaules for static fields from the constant table. Fix System.Enum to
11949         not be an enum.
11950         * icall.c: implement Object::GetType() internalcall. Implemented
11951         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
11952         Fixed checking of binding flags in find_members().
11953         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
11954         * reflection.c: handle enumerations when writing to the constant
11955         table. Use a different object cache for types.
11956
11957
11958 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
11959
11960         * object.c (mono_object_isinst): fix for arrays
11961
11962         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
11963
11964 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
11965
11966         * object.c: don't use mprotect ()  and fix intern pool hash table
11967         lookup for big endian systems.
11968
11969 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11970
11971         * icall.c: change type_is_subtype_of () signature.
11972
11973 2002-02-21  Mark Crichton  <crichton@gimp.org>
11974
11975         * rand.c, rand.h: Added random number generator for
11976         System.Security.Cryptography classes.
11977
11978         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
11979
11980         * icall.c: Added System.Security.Cryptography calls.
11981
11982 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
11983
11984         * class.c, icall.c, metadata.c: better support for pointer types.
11985         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
11986         * reflection.c: Add support for getting custom attrs for properties
11987         and simplify some code.
11988
11989 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11990
11991         * icall.c: change getToken () and add custom attribute GetBlob()helper
11992         method.
11993         * reflection.h: add custom attrs array to the reflection builder structures.
11994         * reflection.c: encode and emit custom attributes for all the relevant
11995         reflection objects. Cache fieldref and methodref tokens. Change
11996         mono_image_create_token() interface to take a MonoDynamicAssembly.
11997         More complete custom attributes decoder. Load custom attributes for
11998         Assembly, Field, Method and Constructor objects, too. Make the
11999         returned array an Attribute[] one, not object[]. Added
12000         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12001         custom attribute constructor.
12002
12003 2002-02-20  Dick Porter  <dick@ximian.com>
12004
12005         * icall.c:
12006         * rawbuffer.c:
12007         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12008         problem code out for now).
12009
12010 2002-02-19  Radek Doulik  <rodo@ximian.com>
12011
12012         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12013
12014 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12015
12016         * icall.c: register the GetCustomAttributes method.
12017         * object.c, object.h: add mono_string_new_len ().
12018         * reflection.h, reflection.c: added mono_runtime_invoke(),
12019         mono_install_runtime_invoke(). Added
12020         mono_reflection_get_custom_attrs () to load custom attributes and
12021         create the attribute objects.
12022
12023 2002-02-19  Dick Porter  <dick@ximian.com>
12024         * threads-dummy-types.c:
12025         * threads-dummy-types.h:
12026         * threads-dummy.c:
12027         * threads-dummy.h:
12028         * threads-pthread-types.c:
12029         * threads-pthread-types.h:
12030         * threads-pthread.c:
12031         * threads-pthread.h:  Deleted obsolete files
12032
12033 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12034
12035         * class.c (mono_class_vtable): runtime init the class when we
12036         allocate static class data.
12037
12038         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12039
12040         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12041         and String - but we will need generic marshalling support in the
12042         future. 
12043         (mono_init): set the domain name in a ms compatible way
12044
12045         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12046         String[].
12047
12048 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12049
12050         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12051         for sizes
12052
12053         * appdomain.c (mono_domain_unload): impl.
12054
12055 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12056
12057         * appdomain.c, object.c: fix intern pool implementation.
12058         * class.c: fix alignment code.
12059
12060 2002-02-16  Radek Doulik  <rodo@ximian.com>
12061
12062         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12063         and s2 > s1, just copy lower bytes to be compatible with little
12064         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12065         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12066
12067         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12068         force big_endian to be 1 for big endian machines 
12069         (ves_icall_iconv_new_decoder): ditto
12070
12071 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12072
12073         * socket-io.c (convert_sockopt_level_and_name): If the system
12074         doesn't define SOL_IP or SOL_TCP, get them by hand using
12075         getprotobyname() and caching the values (because this could be a
12076         slow operation).
12077         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12078         Use the appropriate struct when the system does support it. Ie,
12079         not all systems have struct ip_mreqn so use struct ip_mreq when
12080         appropriate.
12081
12082 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12083
12084         * reflection.c: handle finally clauses.
12085
12086 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12087
12088         * socket-io.c: use g_snprintf() instead of snprintf.
12089
12090 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12091
12092         * reflection.c (mono_param_get_objects): Cast second argument to
12093         mono_method_get_param_names to a const char** to silence the
12094         compiler warning.
12095
12096         * appdomain.c (mono_domain_assembly_open): Put parens around the
12097         truth statement in the for-loop.
12098
12099         * unicode.c (iconv_convert): Got rid of a compiler warning about
12100         int i being unused when the system has a new iconv.
12101         (iconv_get_length): Same.
12102
12103         * image.c (load_class_names): Cast the second argument to
12104         g_hash_table_insert() to char* to hush compiler warnings about the
12105         arg being a const.
12106         (mono_image_open): Same here.
12107
12108         * socket-io.c: Don't conditionally include sys/filio.h or
12109         sys/sockio.h here anymore since we now get them from
12110         io-layer/io-layer.h
12111         (inet_pton): If the system doesn't support inet_aton, implement
12112         using inet_addr and also #define INADDR_NONE if it isn't defined
12113         by the system.
12114
12115 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12116
12117         * metadata.c, metadata.h: added function to get packing and size info
12118         of a typedef.
12119         * reflection.h, reflection.c: handle field RVA data. Save info about
12120         the table layout if needed. Assign typedef indexes to all the types
12121         before dumping the info about them to avoid forward reference problems.
12122
12123 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12124
12125         * socket-io.c (convert_sockopt_level_and_name): ifdef
12126         SO_ACCEPTCONN because it is not defined on my system (old debian)
12127
12128 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12129
12130         * opcode.c: use stddef.h to get NULL.
12131
12132 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12133
12134         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12135         for FIONBIO, FIONREAD and SIOCATMARK.
12136         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12137         define INADDR_NONE and besides, inet_addr() is deprecated and
12138         should not be used. Use inet_pton() instead - it also has the
12139         added bonus that it can easily handle IPv6 addresses as well.
12140         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12141
12142 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12143
12144         * decimal.c: remove _MSC_VER conditional.
12145
12146 2002-02-13  Dick Porter  <dick@ximian.com>
12147
12148         * socket-io.c: 
12149         * icall.c: Internal calls for Blocking, Select, Shutdown,
12150         GetSocketOption and SetSocketOption
12151
12152 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12153
12154         * assembly.cs: better resolver: use it instead of some kludgy
12155         code.
12156
12157 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12158
12159         * reflection.c: the best way to speed-up the compiler is to avoid
12160         infinite loops.
12161
12162 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12163
12164         * class.c (mono_class_vtable): changed the object layout
12165         (obj->vtable->class). 
12166         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12167
12168 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12169
12170         * assembly.c: look for assemblies in the assembly dir, too.
12171
12172 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12173
12174         * class.c: fix thinko in mono_class_from_type().
12175
12176 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12177
12178         * exception.h, exception.c: added TypeLoadException.
12179         * object.h, object.c: added mono_array_clone ().
12180         * icall.c: handle throwOnError in AssemblyGetType().
12181         Added Array.Clone().
12182         * opcode.h, opcode.c: use a single value for the opcode val.
12183         Compile fix for non-gcc compilers.
12184
12185 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12186
12187         * opcodes.c, opcodes.h: export interesting info about opcodes.
12188
12189 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12190
12191         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12192         icalls. 
12193
12194         * class.c (class_compute_field_layout): set element_class for enums
12195         (mono_class_create_from_typedef): set element_class for normal classes
12196
12197         * icall.c (ves_icall_System_Enum_get_value): impl.
12198
12199         * class.c (mono_class_create_from_typedef): do not set valuetype
12200         flag for System.ValueType and System.Enum
12201
12202 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12203
12204         * unicode.c (iconv_convert): fix big endian problem.
12205
12206 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12207
12208         * class.c: add asserts if we are ever going to scribble over memory.
12209         * socket-io.c: not all systems have AF_IRDA defined.
12210
12211 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12212
12213         * class.c (class_compute_field_layout): do not consider static
12214         fields to compute alignment
12215
12216 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12217
12218         * appdomain.c (mono_appdomain_get): impl.
12219         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12220
12221 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12222
12223         * icall.c: ignore "file://" prefix when loading an assembly.
12224
12225 2002-01-23  Dick Porter  <dick@ximian.com>
12226
12227         * socket-io.c:
12228         * icall.c:
12229         * Makefile.am: Added socket support
12230
12231 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12232
12233         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12234         code back.  This should return the assemblies that are loaded by
12235         the runtime on behalf of an application domain. 
12236
12237         The current implementation is still broken, it just returns every
12238         assembly loaded, but until we get real applications domain this
12239         will do.
12240
12241 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12242
12243         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12244         AppDomain object.
12245
12246 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12247
12248         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12249         the mono_class_from_name lookup.
12250         (ves_icall_get_parameter_info): ditto.
12251         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12252         method.
12253         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12254
12255 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12256
12257         * class.c: load also nested classes on class init.
12258         System.ValueType instance methods gets passed boxed
12259         values, unless methods in derived classed that get a pointer to the
12260         data.
12261         * icall.c: use better name parsing code in GetType().
12262         * image.c, image.h: add mono_image_loaded ().
12263         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12264         * reflection.c, reflection.h: added mono_reflection_parse_type().
12265
12266 2002-01-22  Veronica De Santis <veron78@interfree.it>
12267
12268         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12269         * threads.c : Added the implementation of internal calls for events
12270         * threads.h : Added prototypes of internal calls for events
12271         
12272 2002-01-21  Radek Doulik  <rodo@ximian.com>
12273
12274         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12275
12276 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12277
12278         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12279         (mono_class_value_size): use min_align
12280
12281 2002-01-20  Dick Porter  <dick@ximian.com>
12282
12283         * threads.h:
12284         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12285         so it compiles on w32.
12286
12287 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12288
12289         * metadata.c (mono_type_stack_size): impl.
12290
12291         * class.c (mono_class_get_field): impl. memberref token
12292
12293 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12294
12295         * icall.h : Added the internal calls mapping for CreateMutex_internal
12296                     and ReleaseMutex_internal.
12297         * threads.h : Added the prototype of mutexes internal calls.
12298         * threads.c : Added the implementations of mutexes internal calls.
12299
12300 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12301
12302         * metaparse.h: removed unused file.
12303         * reflection.c, reflection.h: added stream_data_align () function 
12304         to align data in streams and keep stream aligned. Add support for
12305         exception support in method headers.
12306
12307 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12308
12309         * unicode.c: make iconv_convert () return the number of bytess written
12310         in the output buffer.
12311
12312 2002-01-15  Dick Porter  <dick@ximian.com>
12313         * threads.c: Make the runtime's idea of infinite timeouts coincide
12314         with the class library's
12315
12316         Fix a particularly egregious bug in mono_thread_cleanup(). That
12317         code was so utterly bogus it must have been written on a Monday.
12318
12319 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12320
12321         * reflection.h: add subtypes field to TypeBuilder.
12322         * reflection.c: encode constants for literal fields.
12323         Handle subtypes. Fix user string token (and add a zero byte)
12324         at the end.
12325         
12326 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12327
12328         * class.c (mono_class_init): bug fix: assign slot numbers for
12329         abstract methods.
12330
12331 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12332
12333         * reflection.c: don't try to output a code RVA for abstract methods.
12334         Small fixes for method header format. Output parameter info to the
12335         ParamDef table. Save method overriding info to MethodImpl table.
12336         Fix property support. Allow typedef.extends to be a type in the
12337         building assembly.
12338         * verify.c: fix off-by-one error.
12339
12340 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12341
12342         * class.c: fix mono_class_from_mono_type () for szarray types.
12343         Remove unused cache check in mono_class_from_type_spec().
12344         * icall.c: *type_from_name () functions handle simple arrays and byref.
12345         * reflection.c: handle byref and szarray types. Handle methods without
12346         body (gets P/Invoke compilation working). Handle types and fields in
12347         get_token ().
12348         * reflection.h: add rank to MonoTypeInfo.
12349
12350 2002-01-10  Dick Porter  <dick@ximian.com>
12351
12352         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12353         internal calls
12354
12355 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12356
12357         * icall.c: initialize class in type_from_handle ().
12358         Loop also in parent classes for get_method ().
12359         * reflection.c: properly encode class and valuetype types.
12360         Start on encoding TypeBuilder types. Handle fieldrefs.
12361         Use correct length when registering a user string.
12362         Handle ConstructorBuilder and MonoMethod in get_token ().
12363         Make mono_type_get_object () aware of cached types.
12364         * object.c: back out change to mono_string_new ().
12365
12366 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12367         * object.c: mono_string_new should return a NULL when the string 
12368         passed in is NULL -- not try to deference it.
12369         
12370 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12371
12372         * icall.c: hack to make IsSubType work for TypeBuilders.
12373         * reflection.c: emit constructors before methods.
12374         Retrieve param names in mono_param_get_objects().
12375
12376 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12377
12378         * Makefile.am: fix list of headers and sources so automake 1.5
12379         doesn't complain. Removed \# at end of list.
12380
12381 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12382
12383         * reflection.c: get token for a method ref. Set return type of
12384         constructor to void.
12385         * loader.c: debug message.
12386         * class.c: typo fix.
12387
12388 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12389
12390         * icall.c: fix array init with rank > 1. FindMembers
12391         loops in parent class as well.
12392         * image.c: do not insert nested types in name cache.
12393         * reflection.c: warning fix.
12394         * reflection.h: add override method (for interface impl).
12395
12396 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12397
12398         * metadata.c: fix customattr decoding.
12399
12400 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12401
12402         * rawbuffer.cs: Added native Win32 implementation, avoids using
12403         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12404
12405 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12406
12407         * class.c: make the low-level routines handle the cache.
12408
12409 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12410
12411         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12412
12413 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12414
12415         * class.c: fix mono_array_element_size() for objects.
12416         * class.h, class.c: add properties to MonoClass and load them
12417         at init time.
12418         * icall.c: check with isinst() when assigning a value to an array
12419         instead of requiring the classes to match exactly.
12420         Implemented icall for System.Type::GetType().
12421         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12422         enums. Handle bindingflags when looking for methods and fields.
12423         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12424         and mono_metadata_methods_from_property().
12425         * reflection.h, reflection.c: added structures for propreties,
12426         parameters and enums. Implemented mono_property_get_object() and
12427         mono_param_get_objects().
12428
12429 2001-12-18  Dick Porter  <dick@ximian.com>
12430
12431         * file-io.c: Use mono_string_to_utf16() instead of
12432         mono_string_chars()
12433
12434         * object.c: Added mono_string_to_utf16(), which copies the non
12435         NULL-terminated MonoString into a new double-null-terminated
12436         buffer.
12437
12438 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12439
12440         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12441
12442 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12443
12444         * file-io.c: raise exceptions if handle is invalid.
12445
12446 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12447
12448         * assembly.c: yet another check for mscorlib.
12449         * class.c, class.h: load nesting info for classes.
12450         * icall.c: many new functions to support the Reflection classes.
12451         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12452         * reflection.h, reflection.c: mono_image_create_token(),
12453         mono_assembly_get_object(), mono_type_get_object(),
12454         mono_method_get_object(), mono_field_get_object(): methods to return
12455         objects that parallel the C representation of assemblies, types,
12456         methods, fields.
12457
12458 2001-12-11  Dick Porter  <dick@ximian.com>
12459
12460         * icall.c:
12461         * file-io.c: Internal calls for file IO.
12462
12463 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12464
12465         * tabledefs.h: missing FileAttributes.
12466         * verify.h, verify.c: use is_valid_string () to simplify and check for
12467         valid strings more correctly. Fix warnings and speeling.
12468         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12469         Check code: branches, maxstack, method calls.
12470
12471 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12472
12473         * object.c (mono_object_allocate): removed static, so that the jit
12474         can allocate value types.
12475
12476         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12477
12478 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12479
12480         * class.c: init enum types right away and register the
12481         token->MonoClass map in mono_class_create_from_typedef ().
12482         * verify.h, verify.c: first cut of the verifier.
12483         * pedump.c: add --verify switch to verify metadata tables.
12484         * tabledefs.h: add some missing enums.
12485
12486 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12487
12488         * class.c (mono_install_runtime_class_init): impl.
12489         (mono_class_init): renamed mono_class_metadata_init to
12490         mono_class_init, also removed the metadata_inited flag
12491
12492         * object.c (mono_object_isinst): use faster algorithm
12493
12494 2001-11-30  Radek Doulik  <rodo@ximian.com>
12495
12496         * mono-endian.h: reverted last change
12497         added function prototypes
12498
12499         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12500         add mono-endian.c back
12501
12502         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12503         for unaligned access, I've mistaked it with endianess. I am
12504         sorry.
12505         (mono_read16): fix reverted endianess
12506         (mono_read64): ditto
12507         (mono_read32): ditto
12508
12509 2001-11-30  Dick Porter  <dick@ximian.com>
12510
12511         * exception.c: Implement mono_exception_from_name()
12512
12513 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12514
12515         * metadata.h, metadata.c: remove params_size and locals_size and their
12516         calculation from the metadata code: they are only usefult to the
12517         interp.
12518
12519 2001-11-29  Radek Doulik  <rodo@ximian.com>
12520
12521         * object.c (mono_ldstr): swap bytes here, it's probably not the
12522         best place, but works for me now, I'll redo it once I know mono
12523         better, also note that I add PROT_WRITE and don't reset back, also
12524         note that it's only affects big endians, so x86 should be OK
12525
12526         * mono-endian.h (read16): use just glib macros for both endians
12527
12528         * mono-endian.c: removed as glib macros are used in in
12529         mono-endian.h so we don't need to care about endianess for read
12530         macros as glib does that for us already
12531
12532 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12533
12534         * class.h, class.h: take minimum alignment into consideration so
12535         that the fields of a class remain aligned also when in an array.
12536
12537 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12538
12539         * loader.h, loader.c: add mono_method_get_param_names().
12540         * class.c: 0-init class fields.
12541
12542 2001-11-26  Dick Porter  <dick@ximian.com>
12543
12544         * icall.c:
12545         * threads-types.h:
12546         * threads.c: New file that handles System.Threading on all platforms
12547
12548         * object.c: 
12549         * object.h: Remove the synchronisation struct from MonoObject,
12550         replace it with a pointer that gets initialised on demand
12551
12552         * Makefile.am: Replace all the system-specific threading code with
12553         a single file that uses the new wrapper library
12554
12555 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12556
12557         * class.c, class.h: add mono_install_trampoline() so that the runtime
12558         can register a function to create a trampoline: removes the ugly
12559         requirement that a runtime needed to export arch_create_jit_trampoline.
12560         * object.h, object.c: added mono_install_handler() so that the runtime
12561         can install an handler for exceptions generated in C code (with
12562         mono_raise_exception()). Added C struct for System.Delegate.
12563         * pedump.c: removed arch_create_jit_trampoline.
12564         * reflection.c: some cleanups to allow registering user strings and
12565         later getting a token for methodrefs and fieldrefs before the assembly
12566         is built.
12567         * row-indexes.h: updates and fixes from the new ECMA specs.
12568
12569 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12570
12571         * class.h, class.c: add enum_basetype field to MonoClass.
12572         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12573         to get index in the constant table reated to a field, param or
12574         property.
12575         * reflection.h, reflection.c: handle constructors. Set public-key and
12576         version number of the built assembly to 0.
12577         * row-indexes.h: update from new ECMA spec.
12578
12579 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12580
12581         * class.h, class.c: add a max_interface_id to MonoClass.
12582         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12583         since it's used to do that. Added mono_type_type_from_obj().
12584         Make GetType() return NULL instead of segfaulting if the type was not
12585         found. Handle simple arrays in assQualifiedName.
12586         * object.h: add a struct to represent an Exception.
12587         * reflection.c: output call convention in method signature.
12588         Add code to support P/Invoke methods and fixed offsets for fields.
12589
12590 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12591
12592         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12593         the value.
12594         * icall.c: use mono_array_addr instead of array->vector: fixes the
12595         reflection image writing.
12596         * reflection.c: init call convention byte to 0 in method signature.
12597         Encode the property signature. Don't output property-related methods
12598         twice. Really process the properties for a type (don't cast a field to
12599         a property, my mom always told me that).
12600         Fix 64 bit issues in pointer alignment in a different and more
12601         readable way.
12602
12603 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12604
12605         * loader.h: Removed type class from MonoDefaults, added monotype
12606
12607         * loader.c: Loaded MonoType, removed loading of Type
12608
12609         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12610         and fills in System.Type._impl with a RuntimeTypeHandle rather
12611         than the actual MonoClass *
12612
12613         (ves_icall_type_from_handle): change from type_class to
12614         monotype_class
12615
12616         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12617         implemented
12618
12619         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12620         implemented
12621
12622         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12623
12624         (ves_icall_System_Reflection_Assembly_GetType): implemented
12625
12626         (ves_icall_System_MonoType_assQualifiedName): implemented
12627
12628         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12629
12630 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12631
12632         * assembly.c (mono_assembly_open): Implement a cache for the
12633         assemblies. 
12634
12635         (mono_assembly_close): only destroy the assembly when the last
12636         reference is gone.
12637         
12638 2001-11-09  Dick Porter  <dick@ximian.com>
12639
12640         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12641
12642 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12643
12644         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12645
12646 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12647
12648         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12649         from Martin Weindel.
12650         * object.h: add mono_string_chars ().
12651
12652 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12653
12654         * reflection.c (build_compressed_metadata): Eliminates warnings
12655         and uses 64-bit clean code.
12656
12657         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12658         (mono_type_equal): Change signature to eliminate warnings.
12659
12660 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12661
12662         * icall.c, loader.c: remove the internalcall array constructors.
12663         Changes to match the new MonoArray structure.
12664         * object.h, object.c: an array object doesn't allocate an extra
12665         vector. Add mono_array_new_full () to create jagged arrays easily.
12666
12667 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12668
12669         * metadata.h, metadata.c: add mono_metadata_field_info () to
12670         retreive all the info about a field from vairous tables.
12671         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12672         * class.h, class.c: augment MonoClassField with more info.
12673         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12674         policy and load a field's RVA if needed.
12675
12676 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12677
12678         * class.c (mono_class_metadata_init): create a trampoline for all
12679         virtual functions instead of actually compiling them.
12680
12681 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12682
12683         * class.h, class.c: include name in MonoClassField.
12684         * class.c: fix fundamental type of System.Object and System.String.
12685         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12686         tokens in ldtoken.
12687         * icall.c: remove internalcalls for the Reflection stuff that is now
12688         done in C# code.
12689         * loader.c: mono_field_from_memberref () implementation.
12690         * mono-endian.c: thinko (s/struct/union/g).
12691         * object.c, object.h: make the mono_string_* prototypes actually use
12692         MonoString instead of MonoObject.
12693         * reflection.c, reflection.h: updates for changes in the reflection
12694         code in corlib: we use C structures that map to the actual C# classes.
12695         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12696         fat method header if needed and use the info from the ILGenerator for
12697         methods. Handle fields in types. Misc fixes.
12698
12699 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12700
12701         * class.c (mono_class_metadata_init): bug fix: always allocate
12702         space for static class data
12703
12704 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12705
12706         * class.c (mono_compute_relative_numbering): use relative
12707         numbering to support fast runtime type checks.
12708
12709 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12710
12711         * class.c (mono_class_create_from_typeref): added debugging output
12712         to print class name when MonoDummy is returned instead of real class
12713
12714 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12715
12716         * class.c (mono_class_metadata_init): interface offset table now
12717         contains pointers into the vtable - this is more efficient for the jit
12718
12719 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12720
12721         * class.c (mono_class_metadata_init): use a temporary vtable (the
12722         old algorithm only worked for the interpreter, but not for the jit)
12723
12724 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12725
12726         * loader.c (method_from_memberref): use mono_class_get to get the
12727         class of an array instead of using System.Array directly.
12728         (mono_get_method): also add MEMBERREF methods to the method cache
12729         which usefull for arrays.
12730
12731 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12732
12733         * pedump.c (arch_compile_method): added to compute vtable entry
12734
12735         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12736         number of interfaces.
12737         
12738         * class.h: merged MonoArrayClass into MonoClass
12739
12740         * class.c (mono_class_create_from_typedef): compute the vtable size and
12741         allocate space to include the vtable inside MonoClass
12742         (mono_class_metadata_init): initialize the vtable
12743
12744 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12745
12746         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12747         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12748         * image.c: endian fixes by Laurent Rioux.
12749         * object.h, object.c: rename MonoStringObject to MonoString and
12750         MonoArrayObject to MonoArray. Change some function names to conform to
12751         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12752         guint16* as first argument, so don't use char*.
12753         Provide macros to do the interesting things on arrays in a portable way.
12754         * threads-pthread.c: updates for the API changes and #include <sched.h>
12755         (required for sched_yield()).
12756         * icall.c: updates for the API changes above.
12757         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12758         platforms that need them.
12759
12760 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12761
12762         * class.c: set the correct type for all the fundamental
12763         type when loading the class.
12764
12765 2001-10-05  Dick Porter  <dick@ximian.com>
12766
12767         * threads-pthread.c (pthread_mutex_timedlock): Simple
12768         compatibility version for C libraries that lack this call.
12769
12770 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12771
12772         * class.c: MonoTypes stored in MonoClass are stored as
12773         fundamental MonoTypes when the class represents a
12774         fundamental type (System.Int32, ...).
12775         The TypeHandle return by ldtoken is a MonoType*.
12776         * icall.c: ves_icall_get_data_chunk () write out all the
12777         PE/COFF stuff. Implement ves_icall_define_method (),
12778         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12779         * image.c: properly skip unknown streams.
12780         * loader.h, loader.c: add type_class to mono_defaults.
12781         * metadata.c, metadata.h: export compute_size () as
12782         mono_metadata_compute_size () with a better interface.
12783         Typo and C&P fixes.
12784         * pedump.c: don't try to print the entry point RVA if there is no entry point.
12785         * reflection.c, reflection.h: many cleanups, fixes, output method
12786         signatures and headers, typedef and typeref info, compress the metadata
12787         tables, output all the heap streams, cli header etc.
12788         * row-indexes.h: typo fixes.
12789
12790 2001-10-04  Dick Porter  <dick@ximian.com>
12791
12792         * object.h: Add a synchronisation mutex struct to MonoObject
12793
12794         * object.c (mono_new_object): Initialise the object
12795         synchronisation mutexes
12796
12797         * icall.c: System.Threading.Monitor internal calls
12798         
12799         * threads-pthread.h:
12800         * threads-pthread.c: System.Threading.Monitor internal calls
12801
12802         * threads-types.h: New file, includes the system-specific thread
12803         structures
12804         
12805         * threads-pthread-types.h:
12806         * threads-pthread-types.c: New files, handle pthread-specific
12807         synchronisation types
12808
12809         * threads-dummy-types.h: 
12810         * threads-dummy-types.c: New files of dummy support for
12811         thread-specific types
12812
12813         * metadata.c:
12814         * image.c:
12815         * pedump.c: include mono-endian.h not endian.h
12816         
12817         * Makefile.am: More threads files.
12818         Name mono-endian.h not endian.h
12819
12820 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
12821
12822         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
12823         stuff and implement a few more bits.
12824         * icall.c: a field needs to be dereferenced twice. Do not use the same
12825         name for two variables in the same scope.
12826         * image.c, image.h: cleanups.
12827
12828 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
12829
12830         * class.c (mono_class_metadata_init): bug fix: compute the right size
12831
12832 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
12833
12834         * icall.c: implemented some of the Reflection internalcalls.
12835         * image.c, image.h: start writing out the PE/COFF image.
12836         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
12837         that does the reverse than decode_blob_size ().
12838         * object.c: use mono_metadata_encode_value (). Move here
12839         temporary implementation of mono_string_to_utf8 ().
12840         * rawbuffer.c: make malloc_map static.
12841
12842 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12843
12844         * metadata.c: fix type comparison for arrays.
12845         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
12846         Added a couple of new classes to monodefaults.
12847         * icall.c: added a couple of Reflection-related internalcalls.
12848         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
12849         Added a byval_arg MonoType to MonoClass.
12850
12851 2001-09-28  Dick Porter  <dick@ximian.com>
12852
12853         * icall.c:
12854         * threads-pthread.h: 
12855         * threads-pthread.c: Implemented internal calls for
12856         LocalDataStoreSlot operations.  Applied mutexes around all shared
12857         data.  Reworked the thread creation and Start() operations to
12858         avoid a race condition.
12859         
12860         * threads-dummy.h:
12861         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
12862
12863 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
12864
12865         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
12866
12867 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
12868
12869         * class.c, loader.c: warn and return NULL instead of erroring out.
12870         * icall.c: added System.AppDomain::getCurDomain().
12871         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
12872
12873 2001-09-25  Dick Porter  <dick@ximian.com>
12874
12875         * threads-pthread.h:
12876         * threads-pthread.c: Implemented timed thread joining and added
12877         System.Threading.Thread::Join_internal internal call
12878
12879         * icall.c: Added System.Threading.Thread::Join_internal internal call
12880
12881         * threads-dummy.h:
12882         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
12883
12884 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
12885
12886         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
12887         mono_string_intern () to implement the semantics of the ldstr opcode
12888         and the interning of System.Strings.
12889         * icall.c: provide hooks to make String::IsIntern and String::Intern
12890         internalcalls.
12891
12892 2001-09-23  Dick Porter  <dick@ximian.com>
12893
12894         * threads-dummy.c: 
12895         * threads-dummy.h: New files of dummy threading routines
12896
12897         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
12898         support code based on system specifics
12899
12900         Rename PTHREAD_LIBS to THREAD_LIBS
12901         
12902 2001-09-23  Dick Porter  <dick@ximian.com>
12903
12904         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
12905         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
12906         internal calls.
12907         (mono_thread_init): Set up a Thread object instance to return when
12908         the main thread calls Thread.CurrentThread
12909         (mono_thread_cleanup): Wait for all subthreads to exit
12910
12911         * icall.c: New internal calls for System.Threading.Thread::Sleep
12912         (including Schedule) and CurrentThread
12913
12914         * threads.h: New file, to insulate thread-specific stuff from the
12915         rest of the code
12916
12917 2001-09-21  Dick Porter  <dick@ximian.com>
12918
12919         * threads-pthread.h: 
12920         * threads-pthread.c: New file, for handling pthreads-style
12921         threading support.  Start() now starts a new thread and executes
12922         the ThreadStart delegate instance.
12923
12924         * icall.c: Added the internalcall for
12925         System.Threading.Thread::Start_internal
12926
12927         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
12928
12929 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
12930
12931         * loader.c: work around the different signatures for delegates
12932         constructors csc generates in compiled code vs the ones compiled in mscorlib.
12933
12934 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
12935
12936         * class.h, class.c: add mono_class_get_field_from_name ().
12937         * *: Fix C comments and other ANSI C issues.
12938
12939 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
12940
12941         * endian.h, assembly.c: fix some endianness issues.
12942
12943 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
12944
12945         * loader.h, load.c: add delegate_class to mono_defaults.
12946         Handle runtime provided methods in mono_get_method ().
12947
12948 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
12949
12950         * loader.c (mono_get_method): use pinvoke for internal call
12951
12952         * icall.c: use pinvoke for internal call
12953
12954         * loader.c (method_from_memberref): set the method name
12955
12956 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
12957
12958         * metadata.c: help the compiler generate better code for
12959         mono_class_from_mono_type ().
12960
12961 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
12962
12963         * class.c (mono_class_metadata_init): delayed computing of the
12964         class size to mono_class_metadata_init ()
12965
12966 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
12967
12968         * class.c, class.h: add an interfaces member to MonoClass.
12969         * image.c, image.h: add assembly_name field to MonoImage
12970         from the assembly table.
12971         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
12972
12973 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
12974
12975         * class.c: Handle Array in mono_class_from_mono_type ().
12976         * metadata.c, pedump.c: some endian fixes.
12977
12978 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12979
12980         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
12981         * metadata.c: fix small problem introduced with the latest commit.
12982
12983 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
12984
12985         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
12986         We don't need a MonoMetadata pointer anymore to compare signatures in
12987         mono_metadata_signature_equal (), update callers.
12988         Reduced memory usage an number of allocations for MonoMethodHeader and
12989         MonoMethodSignature.
12990
12991 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
12992
12993         * metadata.c: added compare for szarray.
12994
12995 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
12996
12997         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
12998         and add a couple more types to it and mono_defaults. Give an hint on
12999         classes that need implementing in our corlib and are referenced
13000         in mscorlib.
13001
13002 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13003
13004         * class.h, class.c: keep track if a class is also an Enum.
13005         * loader.c: Implement a couple more types for use in libffi
13006         marshalling. Gives better diagnostics when failing to dlopen
13007         a library. Set method->klass for P/Invoke methods, too.
13008
13009 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13010
13011         * class.c, class.h: add a MonoType this_arg to MonoClass that
13012         represents a pointer to an object of the class' type that
13013         can be used by the interpreter and later the type cache.
13014         Add best guess alignment info for valuetype objects.
13015
13016 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13017
13018         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13019         into MonoType: one less level of indirection and allocation and
13020         simplifies quite a bit of code. Added cache for MonoTypes that are
13021         used frequently, so that we don't need to allocate them all the time.
13022
13023 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13024
13025         * class.c (mono_class_create_from_typedef): System.Enum is also a
13026         value type, although it does not derive from System.ValueType
13027         (maybe a bug in the ms compiler?)
13028
13029         * metadata.c (mono_type_size): return the right size for value types
13030
13031         * loader.c (mono_get_method): only initialize method header if not abstract
13032
13033         * class.c (mono_class_from_mono_type): use mono_default values. 
13034
13035 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13036
13037         * *: use MonoClass pointers instead of <type_tokens>
13038         
13039         * class.h: new flag: metadata_inited.
13040
13041         * class.c (mono_class_metadata_init): impl.
13042         (mono_class_instance_size): impl.
13043         (mono_class_data_size): impl.
13044
13045 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13046
13047         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13048         MonoClass now has the name and name_space fields. 
13049         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13050         mono_get_method () takes and optional MonoClass as argument.
13051         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13052         instead that takes advantage of a map from class names to typedef
13053         tokens in MonoImage.
13054
13055 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13056
13057         * metadata.c: zero is not a valid alignment boundary.
13058         Merge MONO_TYPE_VOID in default decoding code.
13059
13060 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13061
13062         * image.h: merged MonoMetadata into MonoImage
13063
13064         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13065         identify the type of elements.
13066
13067 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13068
13069         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13070         * cil-coff.h: split MonoMSDOSHeader and add size info.
13071         * image.c: add some consistency checks.
13072         * metadata.c: fix row size computation: one programmer
13073         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13074         add explanation for the locator routine.
13075         Fix decoding of size in method header.
13076         
13077 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13078
13079         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13080         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13081         function from gnome-libs.  This uses the right path separator
13082         based on the OS, and also works around a bug in some systems where
13083         a double slash is not allowed. 
13084         (default_assembly_name_resolver): Use g_concat_dir_and_file
13085         (mono_assembly_open): ditto.
13086
13087 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13088
13089         * metadata.c (mono_metadata_signature_equal): impl.
13090
13091         * *: void is now a realy MonoType (instead of using NULL)
13092         
13093         * metadata.c (do_mono_metadata_parse_type): use
13094         mono_metadata_parse_type to parse void value.
13095
13096 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13097
13098         * metadata.c, metadata.h: in the signature and method header store
13099         only the space required for holding the loca vars and incoming arguments.
13100
13101 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13102
13103         * metadata.c (do_mono_metadata_parse_type): treat void like any
13104         other type (instead of assigning NULL);
13105
13106 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13107
13108         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13109
13110 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13111
13112         * image.c (do_mono_image_open): added a cache for arrays.
13113
13114 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13115
13116         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13117         decode a single column from a row in a metadata table and changes
13118         to take advantage of it in the typedef locator (gives a nice speed up).
13119         Store offset info for function params.
13120
13121 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13122
13123         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13124
13125 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13126
13127         * assembly.c: how could mono_assembly_close () had ever worked?
13128         * metadata.c, metadata.h: provide offset info for local vars.
13129         Implement mono_type_size () to take care of alignment as well
13130         as size (it was mono_field_type_size in cli/class.c before).
13131
13132 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13133
13134         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13135
13136         * assembly.h (CORLIB_NAME): set to corlib.dll
13137
13138         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13139
13140 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13141
13142         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13143         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13144         tokentype.h: massive namespace cleanup.
13145
13146 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13147
13148         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13149
13150 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13151
13152         * metadata.c (mono_metadata_free_type): added check for type !=
13153         NULL (void) before calling mono_metadata_free_type()
13154
13155 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13156
13157         * metadata.h, row_indexes.h: added header with enumerations to use
13158         to index in the columns from tables in metadata and to decode coded
13159         tokens: we should start using this instead of embedding magic numbers
13160         all over the code.
13161
13162 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13163
13164         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13165         Move metadata_t info from cli_image_info_t to MonoImage, where
13166         it's easily accessible. Changed all the uses accordingly.
13167         Added the method and class caches to MonoImage.
13168         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13169         and mono_metadata_decode_value () signature to be more consistent
13170         with the other parse functions (and simplify code). Taken advantage
13171         of zero-length array allocation with GCC. Removed reduntant (and
13172         wrong) MonoFieldType struct and use MonoParam instead. Changed
13173         mono_metadata_parse_field_type () to use common code for parsing.
13174         Added mono_metadata_typedef_from_field () and
13175         mono_metadata_typedef_from_method () to lookup a typedef index from a
13176         field or method token.
13177         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13178
13179 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13180
13181         * metadata.c (mono_metadata_parse_field_type): Implement. 
13182         (do_mono_metadata_parse_type): Split engine from
13183         mono_metadata_parse_type, so that we can create smaller structures
13184         for things that just have one pointer to the MonoType (look at
13185         the MonoFieldType)
13186
13187 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13188
13189         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13190         as Jan Gray found out, it is incorrect. 
13191
13192 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13193
13194         * assembly.c: Implement asssembly loading.  This loads an image
13195         and loads all the referenced assemblies.  Come to think of it, we
13196         could always do lazy loading of the assemblies. 
13197
13198         * image.c (mono_image_open): Keep loaded images in a hashtable.
13199
13200         * image.h (MonoImage): Add reference count.
13201
13202 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13203
13204         * assembly.c (mono_assembly_open): Keep track of the file name in
13205         case the assembly has no ASSEMBLY table.
13206
13207         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13208         from get.c here.
13209
13210 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13211
13212         * metadata.c, metadata.h: decode local vars in method header
13213         parse function. Change callers accordingly.
13214
13215 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13216
13217         * metadata.h, cil-coff.h: protect against multiple inclusion.
13218         Added some new structures to hold information decoded from metadata:
13219         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13220         and relevant decoding/free functions.
13221         * metadata.c: implement decoding functions. Add warning for out of bounds
13222         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13223         all the info about a method signature and invocation. Remove check on
13224         uninitialized local var in parse_mh() and fix memory leak.
13225
13226 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13227
13228         * metadata.h: More macros.
13229
13230         * tokentype.h: New file.
13231
13232 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13233
13234         * assembly.c: added a consistency check and initialize
13235         some structures with g_new0().
13236         * metadata.c: fixed a couple more bugs in table size computation
13237         and add other checks for out-of bound access to metadata.
13238
13239 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13240
13241         * metatada.c: fix bugs computing table sizes. Spew a
13242         warning when index in string heap is out of bounds.
13243
13244 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13245
13246         * metadata.h: Add a couple of macros to manipulate tokens. 
13247
13248 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13249
13250         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13251         cli_section_tables).
13252
13253 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13254
13255         * metadata.c (mono_metadata_user_string): New function, provides
13256         access to the UserString heap. 
13257
13258 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13259
13260         * metadata.c: Add inline documentation.
13261
13262 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13263
13264         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13265         files. 
13266
13267 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13268
13269         * typeattr.h: New file, TypeAttribute flags. 
13270
13271 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13272
13273         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13274         mono_assembly_ensure_section): Section loading code.
13275         (load_section_tables): Load the sections.
13276
13277         * mono/metadata/metadata.c (mono_metadata_locate_token,
13278         mono_metadata_locate): Functions to locate the information
13279         definition given a token or a table and an index.
13280         (mono_metadata_compute_table_bases): New.
13281         (compute_size): New function to compute the sizes of the various
13282         tables.
13283
13284         * mono/metadata/metadata.h: Finish listing the different index
13285         types. 
13286
13287         * mono/metadata/pedump.c: Improve to dump new information.
13288
13289 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13290
13291         * mono/metadata/metadata.c: Entered all the tables matching
13292         Beta2. 
13293
13294         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13295