2004-12-23 Ben Maurer <bmaurer@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
2
3         * metadata.c (builtin_types): Make this `const'. Makes this get
4         put into the shareable section.
5         (mono_metadata_init): Casts to make gcc happy.
6
7 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
8
9         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
10
11 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
12
13         * icall.c: Added an internal call to retrieve the position and length
14         of assembly-level declarative security attributes (RequestMinimum, 
15         RequestOptional and RequestRefuse). This is used by the Assembly class
16         to re-create the corresponding permission sets.
17
18 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
19
20         * marshal.c: fix the stelemref wrapper to be type correct
21         (and faster).
22
23 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
24
25         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
26         to do key & 0x7fffffff. Hashtable already does this. It just
27         results in longer code.
28
29 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
30
31         * appdomain.c: Bump corlib version.
32         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
33         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
34         * reflection.c|h: Add functions to get declarative security infos
35         (blob position and length) for assemblies, classes and methods.
36
37 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
38
39         * reflection.c: sort the constant table (bug #70693).
40
41 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
42
43         * object-internals.h, threads.c, domain.c: add accessors for
44         the MonoThread and MonoDomain tls keys.
45
46 2004-12-18  Martin Baulig  <martin@ximian.com>
47
48         * class.c (inflate_generic_type): If we're inflating a generic
49         instance, set `ngclass->context->container = context->container';
50         ie. the container we inflated into.
51
52         * metadata.c (mono_metadata_parse_generic_param): Reflect above
53         inflate_generic_type() changes.
54
55 2004-12-17  Martin Baulig  <martin@ximian.com>
56
57         * class-internals.h
58         (MonoGenericClass): Replaced `MonoType *generic_type' with
59         `MonoClass *generic_class'.  Removed `dynamic_info'; if
60         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
61         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
62
63 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
64
65         * exception.c (mono_exception_from_token): New helper function.
66
67 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
68
69         * assembly.c (mono_assembly_load_with_partial_name): Call 
70         mono_assembly_loaded before invoking the preload hooks. Fixes
71         #70564.
72
73         * object-internals.h (MonoThread): Change culture_info and 
74         ui_culture_info into an array.
75
76         * threads.c: Cache culture info objects from more than one appdomain.
77
78         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
79         current UI culture.
80
81 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
82
83         * threads.h threads.c appdomain.c: Clear the culture_info field of
84         all threads during unloading if they point to an object in the dying
85         appdomain.
86
87 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
88
89         * culture-info.h (TextInfoEntry): New struct
90         * object-internals.h: sync with managed
91         * locales.c: fill the `text_info_data' field
92         * culture-info-tables.h: update
93
94 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
95
96         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
97         collector.
98
99 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
100
101         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
102         (ves_icall_ModuleBuilder_getMethodToken): Ditto
103
104 2004-12-12  Martin Baulig  <martin@ximian.com>
105
106         * mono-debug-debugger.c (write_type): If we're an enum and the
107         builtin types have already been initialized, call mono_class_init().
108
109 2004-12-11  Martin Baulig  <martin@ximian.com>
110
111         * metadata.c (mono_metadata_load_generic_params): Added
112         `MonoGenericContainer *parent_container' argument; automatically
113         compute `container->is_method'; pass the correct owner to
114         get_constraints().      
115
116         * reflection.c (compare_genericparam): Sort the GenericParam table
117         according to increasing owners. 
118
119 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
120
121         * profiler.c: allow disabling the default profiler.
122
123 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
124
125         * decimal.c, icall.c: allow disabling System.Decimal support.
126
127 2004-12-09  Marek Safar <marek.safar@seznam.cz>
128
129         * reflection.c: Add support for null attribute arguments.
130
131 2004-12-09  Martin Baulig  <martin@ximian.com>
132
133         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
134         names to get rid of compiler warnings.
135
136 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
137
138         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
139         mono_marshal_load_type_info (). Fixes #69625.
140         (mono_marshal_get_ptr_to_struct): Likewise.
141
142 2004-12-08  Martin Baulig  <martin@ximian.com>
143
144         * mono-debug.h: Bumped version number to 47.
145
146         * mono-debug-debugger.c
147         (mono_debugger_event_handler, mono_debugger_event): Take two
148         guint64 arguments insteed of a gpointer and a guint32.  
149
150 2004-12-08  Martin Baulig  <martin@ximian.com>
151
152         * debug-mono-symfile.h
153         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
154         `address' to `native_offset'.
155
156 2004-12-08  Martin Baulig  <martin@ximian.com>
157
158         * class.c (mono_class_create_from_typespec): Only inflate if we
159         either have `context->gclass' or `context->gmethod'.
160
161 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
162
163         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
164
165         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
166
167         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
168
169         * reflection.c (mono_assembly_get_object): Remove the workaround put
170         in for the release.
171         
172         * appdomain.c: Use the corlib_internal field from MonoAssembly.
173
174         * appdomain.c: Bump corlib version.
175
176         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
177         be visible in other appdomains.
178
179 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
180
181         * threads.c: Interlocked inc and dec for longs were messed up,
182         use a KISS based impl for this. Fixes 70234
183
184 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
185
186         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
187
188 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
189
190         * icall.c: fix to follow policy not to allow struct
191         arguments in icalls.
192
193 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
194
195         * process.c: make the patch that handles spaces in file paths work
196         on mono/windows too.
197
198 2004-12-06  Martin Baulig  <martin@ximian.com>
199
200         * class.c (mono_class_create_generic): Call
201         mono_class_setup_supertypes() if we're dynamic.
202         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
203
204 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
205
206         * object-internals.h: Add new fields to MonoThread.
207
208         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
209
210         * icall.c threads-types.h threads.c: Add new icalls.
211
212         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
213
214         * object-internals.h (MonoReflectionAssembly): Sync object layout with
215         managed side.
216
217         * appdomain.c: Bump corlib version.
218
219         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
220         internal assemblies. Fixes #69181.
221
222 2004-12-05  Martin Baulig  <martin@ximian.com>
223
224         * class.c (mono_class_inflate_generic_signature): Make this a
225         no-op if `context' is NULL or we don't have any type parameters;
226         also copy `sentinelpos'.        
227
228 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
229
230         * image.c: Add unbox_wrapper_cache.
231
232         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
233
234         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
235         function generator.
236         
237         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
238         Fixes #70173.
239
240         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
241         
242 2004-12-04  Martin Baulig  <martin@ximian.com>
243
244         * loader.c (mono_method_get_signature_full): New public function;
245         like mono_method_get_signature(), but with an additional
246         `MonoGenericContext *' argument.
247
248         * class.c (mono_class_inflate_generic_signature): Formerly known
249         as inflate_generic_signature(); make this public.
250
251 2004-12-04  Martin Baulig  <martin@ximian.com>
252
253         * metadata.c
254         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
255         instead of a `MonoGenericContainer *'.  
256         (mono_metadata_parse_array_full): Likewise.
257         (mono_metadata_parse_signature_full): Likewise.
258         (mono_metadata_parse_method_signature_full): Likewise.
259         (mono_metadata_parse_generic_inst): Likewise.
260         (mono_metadata_parse_generic_param): Likewise.
261         (mono_metadata_parse_mh_full): Likewise.
262         (mono_type_create_from_typespec_full): Likewise.
263
264 2004-12-03  Martin Baulig  <martin@ximian.com>
265
266         * class-internals.h (MonoGenericContainer): Replaced the
267         `MonoGenericContext * pointer with a `MonoGenericContext'
268         structure and made it the first element.
269
270 2004-12-03  Martin Baulig  <martin@ximian.com>
271
272         * class.c
273         (inflate_generic_type): Set the `context->container' when creating
274         a new MonoGenericContext.
275         (mono_class_inflate_generic_method): Likewise.
276         (mono_class_create_from_typespec): Just use `context->container'
277         to get the container.
278
279         * loader.c (method_from_methodspec): Set `context->parent' from
280         `context->container' - and if that's a method container, use its
281         parent.  Also set the `context->container' when creating a new
282         MonoGenericContext.
283         (mono_get_method_from_token): Use just `context->container' to get
284         the container.
285
286         * metadata.c (do_mono_metadata_parse_generic_class): Also set
287         `gclass->context->container'.
288
289         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
290         the `context->container' when creating a new MonoGenericContext.
291
292 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
293
294         * reflection.c (compare_genericparam): Sort params with identical
295         owner by their number. Fixes gen-111 on sparc.
296
297 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
298
299         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
300         around the domain changes.
301
302         * appdomain.c (mono_domain_unload): Handle the case when the thread
303         calling Unload is itself being aborted during unloading. Fixes #70022.
304
305         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
306
307         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
308         checkpoint_func as an icall so it gets a wrapper.
309         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
310         in the cross-appdomain wrappers too.
311
312         * threads.c (mono_thread_has_appdomain_ref): Make this public.
313
314         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
315
316         * reflection.c: Fix some memory leaks.
317         
318 2004-12-02  Martin Baulig  <martin@ximian.com>
319
320         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
321
322         * metadata.c (generic_class_cache): New static hashtable.
323         (mono_metadata_lookup_generic_class): New public method.
324
325 2004-12-02  Martin Baulig  <martin@ximian.com>
326
327         * class.c (mono_class_create_from_typedef): Call
328         mono_class_setup_parent() and mono_class_create_mono_type() before
329         parsing the interfaces.
330
331 2004-12-02  Martin Baulig  <martin@ximian.com>
332
333         * metadata.c (generic_inst_cache): New static hashtable.
334         (mono_metadata_lookup_generic_inst): New public function.
335         (mono_metadata_inflate_generic_inst): New public function.
336         (mono_metadata_parse_generic_inst): New public function.
337         (do_mono_metadata_parse_generic_class): Use the new
338         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
339         since this'll also use the cache.
340
341         * reflection.c (mono_reflection_bind_generic_method_parameters):
342         Use mono_metadata_lookup_generic_inst() to use the new cache.
343
344         * class.c (inflate_mono_type): Use
345         mono_metadata_inflate_generic_inst() to inflate a generic
346         instance; this'll also use the new cache.
347
348         * loader.c (method_from_methodspec): Use
349         mono_metadata_parse_generic_inst() and
350         mono_metadata_inflate_generic_inst() rather than parsing it
351         manually, so we can use the new cache.
352
353 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
354
355         * threads.c (wait_for_tids): Do not incorrectly free threads when 
356         the wait times out.
357
358 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
359
360         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
361         iter->args based on whether parameters are passed in registers (i.e.
362         MONO_ARCH_REGPARMS is defined)
363
364 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
365
366         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
367         the exception message. Fixes #70070.
368         (method_from_methodspec): Fix warnings.
369
370 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
371
372         * process.c: (complete_path) return the path quoted
373
374 2004-12-01  Martin Baulig  <martin@ximian.com>
375
376         * class-internals.h (MonoGenericInst): New structure.
377         (MonoGenericClass): Replaced `type_argc', `type_argv' and
378         `is_open' with `MonoGenericInst *inst'.
379         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
380         `is_open' with `MonoGenericInst *inst'.
381
382 2004-11-30  Martin Baulig  <martin@ximian.com>
383
384         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
385
386         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
387         to `generic_class_cache'.
388
389         * metadata.c
390         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
391         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
392         (mono_generic_inst_is_valuetype): Renamed to
393         mono_generic_class_is_valuetype().
394
395         * class-internals.h
396         (MonoGenericInst): Renamed to MonoGenericClass.
397         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
398         (MonoClass): Renamed `generic_inst' to `generic_class'.
399         (MonoGenericContext): Renamed `ginst' to `gclass'.
400
401         * object-internals.h
402         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
403
404         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
405         mono_reflection_generic_class_initialize().
406
407         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
408         now known as "System.Reflection.MonoGenericClass".
409         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
410
411 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
412
413         * class-internals.h: Added a flag field to MonoClass to cache the
414         declarative security attributes actions associated with the class.
415         * domain-internals.h: Added booleans to MonoJitInfo to cache the
416         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
417         applicable to the JITted method.
418         * reflection.c|h: Added functions to extract (as flags) which security
419         actions are available (declaratively) for a method, class or assembly.
420         * metadata.c|h: Added functions to search the declarative security
421         table in the metadata.
422         
423 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
424
425         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
426         EXPORTEDTYPES are already in the class name cache, so there is no
427         need to add extra code here to look at them. Just removes a bit of
428         cruft.
429
430         (ves_icall_System_Environment_get_TickCount): No need for #if
431         WINDOWS. We already have the code in io-layer.
432
433 2004-11-28  Martin Baulig  <martin@ximian.com>
434
435         * loader.c
436         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
437         Fixes gen-112.cs.
438
439 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
440
441         * assembly.c (do_mono_assembly_open): Instead of having a
442         conditional WITH_BUNDLE, incorporate support for bundles here, by
443         having a global `bundles' variable holding a pointer to the actual
444         bundles. 
445
446         (mono_register_bundled_assemblies): New API call used by the
447         bundle code. 
448
449         See mkbundle.1 for details.
450         
451 2004-11-27  Martin Baulig  <martin@ximian.com>
452
453         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
454         the vtable for generic methods.
455
456 2004-11-26  Martin Baulig  <martin@ximian.com>
457
458         * metadata.c
459         (mono_metadata_generic_method_hash): New public function.
460         (mono_metadata_generic_method_equal): Likewise.
461
462         * class-internals.h
463         (MonoGenericContainer): Added `GHashTable *method_hash'.
464
465         * reflection.c (ReflectionMethodBuilder): Added
466         `MonoGenericContainer *generic_container'.
467         (reflection_methodbuilder_to_mono_method): Don't create a new
468         MonoGenericContainer each time we're called.
469         (mono_reflection_bind_generic_method_parameters): Use
470         `container->method_hash' to cache the results so we don't create a
471         different method if we're called several times with the same
472         arguments.
473
474         * loader.c (method_from_methodspec): Use the new
475         `container->method_hash' here, too.
476
477 2004-11-26  Martin Baulig  <martin@ximian.com>
478
479         * class.c (inflate_generic_signature): Correctly compute
480         `res->has_type_parameters'.
481         (mono_class_vtable): Use the `has_type_parameters' flag to
482         determine whether we're a generic method.
483
484         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
485
486 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
487
488         * object.c (mono_runtime_run_main): Fix a small memory leak.
489
490 2004-11-25  Martin Baulig  <martin@ximian.com>
491
492         * class.c (set_generic_param_owner): Fixed the loop.
493
494 2004-11-25  Martin Baulig  <martin@ximian.com>
495
496         * object.c (mono_class_vtable): Don't create any JIT wrappers for
497         generic methods.
498
499 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
500
501         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
502         names. Fixes #69787.
503
504 2004-11-24  Martin Baulig  <martin@ximian.com>
505
506         * class.c (mono_class_create_generic_2): If we don't have a
507         `ginst->parent', inflate `gklass->parent' to get our parent.
508
509 2004-11-24  Martin Baulig  <martin@ximian.com>
510
511         * reflection.c (compare_genericparam): Correctly sort the
512         GenericParam table; fixes #69779.
513
514 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
515
516         * reflection.c: When writing a PE file, don't create a huge
517         buffer in memory. Just write the arrays we have to the file.
518         This reduces memory usage.
519
520         * metadata-internals.h: MonoDynamicStream pefile is no longer used
521         globally.
522
523 2004-11-17  Martin Baulig  <martin@ximian.com>
524
525         * class.c (mono_class_init): Don't setup `class->parent' for
526         dynamic instances; moved this to mono_class_generic_2().
527         (mono_class_create_generic): Also set `klass->inited' for dynamic
528         generic instances.
529         (mono_class_create_generic_2): Don't do anything for dynamic
530         generic instances.  Set `klass->parent' here and also call
531         mono_class_setup_parent() here. 
532
533         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
534         `MonoType *parent' argument; set `ginst->parent' before calling
535         mono_class_create_generic_2(), so we set the correct parent.
536
537 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
538
539         * reflection.c: allow getting attributes from ModuleBuilder
540         (used by ikvm).
541
542 2004-11-17  Martin Baulig  <martin@ximian.com>
543
544         * class.c (mono_class_create_from_typedef): If a type parameter is
545         inherited from an outer class, set its owner to that class.
546
547 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
548
549         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
550           for (int*) written size. This fixes bug #69592.
551
552 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
553
554         * icall.c: Added IsAuthenticodePresnet internal call.
555         * image.c|h: New function that check a MonoImage for an Authenticode
556         signature in the certificate PE data directory.
557         * security.c|h: New internal call to ask the runtime if an 
558         Authenticode signature seems referenced in the PE header.
559
560 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
561
562         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
563
564         * reflection.c (mono_image_create_pefile): Free the assembly streams
565         after writing out the assembly file.
566
567         * object.c (mono_runtime_run_main): Fix small memory leak.
568
569         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
570         property access modifiers. Fixes #69389.
571
572 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
573
574         * domain.c, object.c, object-internals.h, domain-internals.h,
575         object.h, marshal.c: keep dynamic code info per domain.
576
577 2004-11-15  Martin Baulig  <martin@ximian.com>
578
579         * class.c (mono_type_get_name_recurse): Put type arguments in
580         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
581         see bug #68387.
582
583 2004-11-15  Martin Baulig  <martin@ximian.com>
584
585         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
586         (mono_class_setup_vtable): When computing `the_cname' for a
587         generic instance, don't include the namespace since we'd otherwise
588         add it twice.
589
590 2004-11-15  Martin Baulig  <martin@ximian.com>
591
592         * class.c (mono_class_create_generic): Changed return type to void.
593         (mono_class_create_generic_2): New public function; setup
594         `class->method', `class->field' and `class->interfaces' here
595         instead of in mono_class_init().
596
597         * class.h (mono_class_create_generic): Moved to class-internals.h.
598
599 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
600
601         * reflection.c (mono_image_create_pefile): take a file HANDLE.
602         rather than writing to memory, write to this file. Right now,
603         we are just writting into a buffer, and copying that. However
604         we can avoid the buffer later.
605
606         (mono_dynamic_stream_reset): new function
607
608         * icall.c, object-internals.h: update for the above.
609
610 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
611
612         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
613         have been using gc'd memory. First it is slower, unlikely
614         the comment in the source code said, secondly, it increases
615         our footprint to do it in the gc.
616
617         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
618         the method so that it does not have to copy to managed code.
619
620 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
621
622         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
623
624 2004-11-12  Martin Baulig  <martin@localhost>
625
626         * reflection.c (mono_image_create_token): Allow generic method
627         definitions here, since they may appear in an `.override'; see
628         gen-98/gen-99 for an example.
629
630 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
631
632         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
633         #69365.
634
635         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
636         descriptive.
637
638 2004-11-11  Martin Baulig  <martin@ximian.com>
639
640         * class.c (mono_class_setup_vtable): In an explicit interface
641         implementation, the method name now includes the arity.
642
643 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
644
645         * object.c (mono_array_full_copy): Fix warning.
646
647 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
648
649         * appdomain.c: Removed look_for_method_by_name(). Use the new method
650         mono_class_get_method_from_name() instead.
651         
652         * class-internals.h: Added two new types of wrappers. 
653         Added MonoRemotingTarget enum. Added new trampoline function type, which
654         takes an additional MonoRemotingTarget value as parameter, so it is
655         possible to request a trampoline for a specific target.
656         
657         * class.c: Added new mono_class_get_method_from_name() method.
658         
659         * class.h: In MonoRemoteClass, we can have now to vtables, one for
660         general remoting sinks and one specific for cross domain calls.
661         
662         * debug-helpers.c: Added new wrapper names.
663         
664         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
665         of a remote class.
666         
667         * image.c: Porperly delete value objects form the remoting invoke hashtable.
668         
669         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
670         with several other methods (mono_marshal_get_xappdomain_dispatch,
671         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
672         and others) can generate a fast remoting wrapper for cross domain calls.
673         More information can be found in docs/remoting.
674         Other changes: Removed mono_find_method_by_name, and used
675         mono_class_get_method_from_name instead.
676         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
677         is stored in the remoting invoke hashtable.
678         
679         * marshal.h: published the new method for getting the xdomain wrapper,
680         and also added a method for getting the adequate wrapper for a given
681         method and target.
682         
683         * object-internals.h, object.c: Added a couple of methods for capying and
684         cloning arrays.
685         Modified mono_install_remoting_trampoline, which takes the new remoting
686         trampoline that has a remoting target as parameter.
687         mono_class_proxy_vtable now also takes a remoting target as parameter, and
688         will return the most suitable vtable for the target.
689         Added mono_remote_class_vtable, which returns the vtable of a remote class
690         (which can be the normal remoting vtable or the xdomain vtable).
691         
692         * threads.c: the xdomain invoke and dispatch wrappers must also be
693         protected against interruptions.
694
695 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
696
697         * icall.c: use memmove in BlockCopyInternal when the source and
698         destination arrays are the same.
699
700 2004-11-09  Martin Baulig  <martin@ximian.com>
701
702         * class-internals.h (MonoGenericContainer): Removed `method' and
703         `signature', replaced them with `is_method' and `is_signature'
704         flags.  Added `context'.
705
706         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
707         instead of a `MonoGenericContainer *'.
708
709         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
710         for dynamic type parameters.
711         (mono_metadata_load_generic_params): Setup `container->context'.
712
713         * reflection.c (mono_reflection_setup_generic_class): Setup
714         `tb->generic_container->context'.
715         (do_mono_reflection_bind_generic_parameters): Use
716         mono_class_inflate_generic_type() to correctly inflate types,
717         rather than using our own hack just for MONO_TYPE_VAR.
718
719 2004-11-09  Martin Baulig  <martin@ximian.com>
720
721         * class.c (mono_class_inflate_generic_method): Small fix; don't
722         crash here.
723
724         * icall.c
725         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
726         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
727         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
728         (ves_icall_Type_BindGenericParameters): Likewise.
729         (ves_icall_Type_get_IsGenericInstance): Likewise.
730         (ves_icall_Type_GetGenericParameterPosition): Likewise.
731         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
732         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
733         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
734
735 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
736
737         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
738         assembly versions and public key tokens. Fixes #69113.
739
740 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
741
742         * metadata.c: fix bug introduced with the type cache changes
743         on 2004-11-06.
744
745 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
746
747         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
748         the MonoClass pointer instead of the token in exception clauses.
749         * reflection.c: updates for the above and make the code not depend
750         on the structure of MonoExceptionClause.
751
752 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
753
754         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
755         Add support for dynamic assemblies. Fixes #69114.
756
757         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
758
759 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
760
761         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
762         since most only those methods use it. the code member of
763         MonoMethodPInvoke was dead, so that can be removed too. Also,
764         remove inline_count (again, not used), and move slot so that it
765         can share bits with some other flags. This saves 8 bytes in the
766         structure and gives us about 50 kb back for mcs helloworld.cs
767
768         * *.[ch]: Do naming changes for the above.
769
770         * loader.c (mono_method_get_header): Lazily init the header
771         on first access.
772         (mono_get_method_from_token): don't init the header here
773         (mono_free_method): the header may never be allocated
774
775         Overall, this saves 150 kb of unmanaged allocations
776         for mcs helloworld.cs. That accounts for 10% of the unmanaged
777         memory at runtime.
778         
779         * loader.c, loader.h (mono_method_get_header): new accessor.
780
781         * *.[ch]: use the above method. Prepares us to lazily load
782         the header.
783
784         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
785         three warnings, which are actual bugs (see 69206).
786
787         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
788         unused. Saves a cool 4 bytes / method.
789
790 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
791
792         * metadata.c (builtin_types): Add types for System.Object here.
793         (mono_metadata_parse_type_full): Cache MonoType*'s that are
794         for a class or valuetype from klass->this_arg or klass->byval_arg.
795
796         On mcs for a hello world, this gets us down from 21836 MonoType's
797         to 14560.
798
799         (mono_metadata_free_type): Account for the above change.
800
801 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
802
803         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
804         exception instead of asserting if name is null.
805         (ves_icall_System_AppDomain_GetData): Ditto.
806
807 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
808
809         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
810         EnumBuilder.
811
812         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
813         Return NULL when the domain does not have entry_assembly set.
814
815         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
816         Add a 'resource_modules' argument.
817         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
818
819         * reflection.c (mono_reflection_create_runtime_class): Move setting
820         of wastypebuilder here, so mono_get_type_object () returns a MonoType
821         for enums too.
822
823         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
824         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
825         Throw an ArgumentNullException if 'ptr' is null.
826
827         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
828         assemblies here. Fixes #69020.
829
830 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
831
832         * reflection.c (build_compressed_metadata): Fix the previous patch for
833         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
834         the stack.
835
836 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
837
838         * assembly.c (mono_assembly_names_equal): Allow a match if one of
839         the cultures is false. Fixes #69090.
840
841         * reflection.c (build_compressed_metadata): Fix invalid memory read 
842         detected by valgrind.
843         
844         * reflection.c (mono_reflection_get_type): Avoid triggering a 
845         TypeResolve multiple times for the same type. Fixes #65577.
846
847 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
848
849         * marshal.c: Avoid using ldftn to call managed functions. It is
850         much slower than just a call.
851
852         * reflection.c (mono_module_get_object): free the basename we
853         allocate here from glib.
854         
855         * reflection.c (ensure_runtime_vtable): make sure to free
856         overrides.  Also, we were allocating an array of MonoMethod not an
857         array of MonoMethod*.
858
859         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
860
861         * image.c (mono_image_close): free image->guid here.
862
863 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
864
865         * reflection.c: Fix some spec conformance issues with the PE file
866         structures so mcs compiled apps run on the Net 2.0 beta.
867
868 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
869
870         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
871         Implement this. Fixes #67264.
872
873         * debug-helpers.h debug-helpers.c marshal.c: Move 
874         mono_find_method_by_name to debug-helpers.c.
875
876 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
877
878         * object.c (mono_release_type_locks): type_initialization_hash is
879         a GHashTable.
880
881         * reflection.c object.c object-internals.h: Fix warnings.
882
883         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
884         without accessors. Fixes #61561.
885
886         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
887         application base from the root domain if not set. Fixes #65641.
888         (mono_runtime_init): Fix warning.
889
890 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
891
892         * appdomain.c: call mono_thread_pool_init.
893         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
894         of worker threads based on the number of CPUs and the environment
895         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
896         for non-windows (windows) systems.
897
898 2004-10-27  Chris Toshok  <toshok@ximian.com>
899
900         * mono-debug-debugger.c (write_class): don't call mono_class_init
901         here, as even with the check for (!klass->init_pending), we get
902         into a situation where we're hitting cycles in class
903         initialization.  Fixes #68816.
904
905 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
906
907         * image.c: Avoid overwriting values in the loaded_images_hash when an
908         assembly is loaded multiple times. Fixes #61152.
909
910         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
911         so multiple satellite assemblies for the same name can be loaded.
912         Fixes #68259.
913
914         * mono_domain_assembly_preload: Actually return the loaded assembly, 
915         not NULL.
916
917         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
918         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
919
920         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
921         pending finalizers are not invoked after the appdomain has been 
922         unloaded. Fixes #67862.
923
924 2004-10-22  Martin Baulig  <martin@ximian.com>
925
926         * mono-debug-debugger.c
927         (mono_debugger_runtime_invoke): Don't box valuetypes.
928
929 2004-10-22  Chris Toshok  <toshok@ximian.com>
930
931         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
932         don't hide private methods.
933
934 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
935
936         * icall.c: Allows the runtime to "share" (when known) the public key
937         token of an assembly. This avoid the need to recalculate the token 
938         (from the public key) in managed code.
939
940 2004-10-21  Chris Toshok  <toshok@ximian.com>
941
942         * debug-helpers.c (append_class_name): argh, revert last patch.
943         
944 2004-10-21  Chris Toshok  <toshok@ximian.com>
945
946         * debug-helpers.c (append_class_name): use '+' as the delimiter,
947         not '/', so that it matches what the debugger uses to look up
948         methods.
949
950 2004-10-21  Martin Baulig  <martin@ximian.com>
951
952         * mono-debug-debugger.c (mono_debugger_throw_exception): New
953         public method; this is called each time an exception is thrown and
954         allows the debugger to use exception catch points.
955
956 2004-10-21  Martin Baulig  <martin@ximian.com>
957
958         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
959         the stack pointer and the exception object in some struct and pass
960         that to the debugger.
961
962 2004-10-21  Chris Toshok  <toshok@ximian.com>
963
964         * mono-debug-debugger.c (do_write_class): add instance/static
965         event support.  We don't expose "raise" or "other" yet.
966         (event_is_static): new method.
967
968 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
969
970         * mono-debug-debugger.c
971         (mono_debugger_handle_exception): Remove
972         bogus return value for fussy compilers.
973
974 2004-10-20  Martin Baulig  <martin@ximian.com>
975
976         * mono-debug-debugger.c
977         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
978         (mono_debugger_handled_exception): Likewise.
979
980 2004-10-20  Martin Baulig  <martin@ximian.com>
981
982         * mono-debug-debugger.h (MonoDebuggerEvent): Added
983         MONO_DEBUGGER_EVENT_EXCEPTION.
984
985         * mono-debug-debugger.c (mono_debugger_handle_exception): New
986         public function to send the debugger a notification for an
987         exception and inform it about a catch/finally clause.
988
989 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
990
991         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
992         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
993         fix 2.95 build. 
994
995         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
996
997 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
998
999         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1000         marshalled as [In,Out]. Fixes #58325.
1001
1002 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1003
1004         * reflection.c (mono_method_body_get_object): Implement some fields.
1005
1006 2004-10-12  Martin Baulig  <martin@ximian.com>
1007
1008         * reflection.c (mono_reflection_bind_generic_parameters): Small
1009         fix, correctly retrieve our parent from a generic instance.
1010
1011 2004-10-12  Martin Baulig  <martin@ximian.com>
1012
1013         * metadata.c (mono_metadata_generic_param_equal): We always have
1014         an owner.
1015
1016         * class.c
1017         (mono_class_from_generic_parameter): We need to have an owner.
1018         (my_mono_class_from_generic_parameter): Likewise.
1019
1020         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1021         mono_reflection_create_generic_class() and added a new
1022         mono_reflection_setup_generic_class().  
1023         (mono_reflection_initialize_generic_param): If we're a nested
1024         generic type and inherited from the containing class, set our
1025         owner to the outer class.
1026
1027 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1028
1029         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1030
1031         * reflection.c (mono_method_body_get_object): New function to create
1032         a MethodBody object.
1033
1034         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1035
1036 2004-10-11  Martin Baulig  <martin@ximian.com>
1037
1038         * metadata.c (_mono_metadata_type_equal): Renamed to
1039         do_mono_metadata_type_equal() and made static.
1040
1041 2004-10-11  Martin Baulig  <martin@ximian.com>
1042
1043         * appdomain.c: Bump corlib version number to 28.
1044
1045 2004-10-10  Martin Baulig  <martin@ximian.com>
1046
1047         * class-internals.h
1048         (MonoGenericInst): Added `MonoGenericContainer *container'.
1049         (MonoGenericMethod): Likewise.
1050         (MonoGenericContext): Likewise.
1051         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1052
1053         * metadata.c
1054         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1055         (do_mono_metadata_parse_generic_inst): Likewise.
1056         (mono_metadata_parse_type_full): New public method.  This is the actual
1057         mono_metadata_parse_type() implementation - with an additional
1058         `MonoGenericContainer *' argument.
1059         (mono_metadata_parse_array_full): Likewise.
1060         (mono_metadata_parse_signature_full): Likewise.
1061         (mono_metadata_parse_method_signature_full): Likewise.
1062         (mono_metadata_parse_mh_full): Likewise.
1063         (mono_type_create_from_typespec): Likewise.
1064         (mono_metadata_interfaces_from_typedef_full): New public method;
1065         this is similar to the other _full() methods, but we take a
1066         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1067         (mono_metadata_parse_generic_param): Take an additional
1068         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1069         from that container.
1070         (mono_metadata_generic_param_equal): New static method to compare
1071         two type parameters.
1072         (_mono_metadata_type_equal): New static method; takes an
1073         additional `gboolean signature_only' argument - if true, we don't
1074         compare the owners of generic parameters.
1075         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1076         with a TRUE argument - do a signature-only comparision.
1077
1078         * loader.c: Use the new _full() methods and pass the
1079         MonoGenericContainer to them.
1080
1081         * object-internals.h (MonoReflectionTypeBuilder): Added
1082         `MonoGenericContainer *generic_container' field.
1083         (MonoReflectionMethodBuilder): Likewise.
1084
1085 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1086
1087         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1088         case initial images of dynamic assemblies.
1089
1090         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1091
1092         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1093
1094         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1095         length of event->other array.
1096         (typebuilder_setup_events): Ditto.
1097
1098         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1099         'assembly_by_name' and add an 'assemblies' list.
1100
1101         * assembly.h assembly.c: Add a new search hook for determining whenever
1102         an assembly is already loaded. Use this instead of searching in the
1103         loaded_assemblies list.
1104
1105         * domain.c appdomain.c: Implement the new search hook so loaded 
1106         assemblies are now scoped by appdomain. Fixes #67727.
1107
1108 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1109
1110         * threads.c (mono_thread_attach): Initialize synch_lock field so
1111         mono_thread_detach works again.
1112
1113         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1114         'lib' too. Fixes #63130.
1115
1116 2004-10-06  Jackson Harper  <jackson@ximian.com>
1117
1118         * culture-info-tables.h: regenerated.
1119
1120 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1121
1122         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1123         implemented by other interfaces in the result. Fixes #65764.
1124         
1125         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1126         Handle unloadable modules without crashing.
1127
1128         * image.c (load_modules): Revert the previous patch since modules must
1129         have a fixed index inside the array.
1130         
1131         * image.c (load_modules): Don't include native modules in the modules
1132         array.
1133
1134 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1135
1136         * reflection.h: Add param_defaults field.
1137
1138         * reflection.c: Add support for parameter defaults in dynamic methods.
1139         Fixes #64595.
1140
1141         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1142         an empty string when a type has no namespace. Fixes #64230.
1143
1144 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1145
1146         * tabledefs.h: Added "internal" security actions to support non-CAS
1147         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1148         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1149
1150 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1151
1152         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1153         constructor of abstract class. Fixes #61689.
1154
1155 2004-10-04  Martin Baulig  <martin@ximian.com>
1156
1157         * class-internals.h (MonoGenericContainer): New type.
1158         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1159         `MonoGenericContainer *generic_container'.
1160         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1161         `MonoGenericContainer *generic_container'.
1162
1163         * metadata.c (mono_metadata_load_generic_params): Return a
1164         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1165         removed the `num' argument.
1166
1167 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1168
1169         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1170         for dynamic images.
1171
1172         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1173         machine fields.
1174
1175         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1176
1177         * reflection.c: Save pe_kind and machine values into the generated
1178         image file.
1179
1180         * appdomain.c: Bump corlib version number.
1181
1182         * object-internals.h: Reorganize layout of LocalBuilder.
1183
1184         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1185         New helper function.
1186
1187         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1188         created MonoType for dynamic types. Fixes #66180.
1189
1190 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1191
1192         * threadpool.c: the ares hashtable needs a critical section around it.
1193         this prevents some nasty segfaults
1194
1195 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1196
1197         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1198         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1199         bug 67324).
1200         
1201 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1202
1203         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1204         
1205 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1206
1207         * image.c: Always canonicalize image file names, to avoid loading
1208         the same assembly twice when referenced using a relative path.
1209
1210 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1211
1212         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1213
1214         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1215
1216         * marshal.c: Fix warnings.
1217
1218 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1219
1220         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1221         attempting to marshal the delegate_trampoline as the method_addr.
1222         This patch has a static hashtable of marshalled delegates so that 
1223         we can map delegate_trampoline addresses back to delegates.  This
1224         allows a delegate passed to managed code to be passed back into native
1225         code.  Fixes #67039
1226
1227 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1228
1229         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1230
1231         * reflection.c (method_encode_code): Align method headers properly.
1232         Fixes #66025.
1233
1234 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1235
1236         * marshal.c: In the runtime invoke wrapper, reset the abort
1237         exception if it is cached. This avoids the automatic rethrowal of 
1238         the exception after the catch of the wrapper. Also check for pending
1239         interruptions before calling the managed method. This is done using
1240         the new method emit_thread_force_interrupt_checkpoint, since the
1241         normal checkpoint method is ignored when running the invoke wrapper.
1242         * object.c: If the abort exception is rethrown, set the abort_exc
1243         field of the thread, so it will be rethrown aftere every catch.
1244         * threadpool.c: Only run an interruption checkpoint if what has been
1245         requested is a stop of the thread (aborts will be ignored).
1246         * threads.c: By default, a thread will now never be interrumped while
1247         running the runtime invoke wrapper (this ensures that runtime_invoke
1248         will always return to the caller if an exception pointer is provided).
1249         There is a new special method mono_thread_force_interruption_checkpoint()
1250         to force an interruption checkpoint even if running a protected
1251         wrapper, which is used by the same runtime invoke wrapper to do a check
1252         at a safe point.
1253
1254 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1255
1256         * object.c, object-internals.h: Implemented mono_release_type_locks,
1257         which releases the cctor locks held by a thread.
1258         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1259         by a thread. Added mono_thread_exit() method to be used to safely stop
1260         a thread.
1261
1262 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1263
1264         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1265         Move null check before dereference.  Avoid indexing beyond the end
1266         of the 'modules' array.
1267
1268 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1269
1270         * metadata-internals.h (MonoImage): Add module_count field.
1271         * image.c (load_modules): Set image->module_count.
1272         (mono_image_load_file_for_image): Use image->module_count.
1273         * reflection.c (mono_image_load_module): Append to image->modules array 
1274         of dynamic assembly.
1275         (mono_module_get_object): Fix loop to actually increment index.
1276         Use image->module_count.
1277         * assembly.c (mono_assembly_load_references): Use image->module_count.
1278         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1279         Likewise.
1280
1281 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1282
1283         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1284         Avoid assert on generic types.
1285
1286 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1287
1288         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1289
1290         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1291
1292         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1293         function to convert a MarshalSpec structure to its managed counterpart.
1294
1295         * reflection.c: Fix warnings.
1296         
1297         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1298         field.
1299
1300         * icall.c (mono_create_icall_signature): Fix build.
1301
1302 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1303
1304         * icall.c: Add MakePointType icall.
1305
1306         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1307         warnings.
1308
1309 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1310
1311         * threadpool.c: reuse allocated slots in the queue.
1312
1313 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1314
1315         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1316
1317         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1318
1319         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1320         previous change.
1321
1322         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1323         ThrowOnUnmappableChar.
1324
1325         * icall.c (ves_icall_Type_GetPacking): New icall.
1326
1327 2004-09-24  Martin Baulig  <martin@ximian.com>
1328
1329         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1330
1331 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1332
1333         * appdomain.c:
1334         (mono_domain_set): allow setting a domain that is being unloaded.
1335         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1336         being unloaded.
1337
1338 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1339
1340         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1341         the GetCustomAttributes icall.
1342
1343 2004-09-23  Martin Baulig  <martin@ximian.com>
1344
1345         * object-internals.h (MonoReflectionGenericParam): Replaced
1346         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1347         with `guint32 attrs'.
1348
1349 2004-09-23  Martin Baulig  <martin@ximian.com>
1350
1351         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1352
1353 2004-09-23  Martin Baulig  <martin@ximian.com>
1354
1355         * object-internals.h (GenericParameterAttributes): New enum.
1356
1357 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1358
1359         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1360         
1361         * class.c (init_events): Fill out event->other field.
1362
1363         * class.c: Fix warnings.
1364
1365         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1366
1367 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1368
1369         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1370         walk which doesn't supply the IL offset.
1371
1372 2004-09-22  Martin Baulig  <martin@ximian.com>
1373
1374         * reflection.c (mono_reflection_setup_internal_class): If we're
1375         System.ValueType, System.Object or System.Enum, set
1376         `klass->instance_size' and create the vtable.
1377         (mono_reflection_create_internal_class): If we're an enum type,
1378         get the base class from our current corlib.
1379
1380 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1381
1382         * reflection.h (MonoResolveTokenError): New type.
1383
1384         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1385         icall.
1386
1387         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1388
1389 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1390
1391         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1392         Support also calling constructors, but only for already allocated objects.
1393
1394 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1395
1396         * reflection.c (type_get_qualified_name): If the klass is null
1397         return the typename to avoid a NullRefEx.
1398         (encode_cattr_value): Get the qualified name of the boxed type,
1399         not the underlying enumtype.  Fixes #62984.
1400
1401 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1402
1403         * marshal.c: Fix problems with previous checkin.
1404
1405 2004-09-21    <vargaz@freemail.hu>
1406
1407         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1408         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1409
1410         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1411
1412 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1413
1414         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1415         should only return a type for pointers, arrays, and passbyref types.
1416         Fixes bug #63841.
1417
1418 2004-09-21  Martin Baulig  <martin@ximian.com>
1419
1420         * domain.c (mono_debugger_check_runtime_version): New public
1421         function.
1422
1423         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1424
1425 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1426
1427         * reflection.c: Added missing sort to the declarative security 
1428         attributes table. MS implementation stops seeing the attributes if the
1429         token number regress in the table (as shown by ildasm and permview).
1430
1431 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1432
1433         * object-internals.h (MonoReflectionModule): Add 'token' field.
1434         
1435         * reflection.c (mono_reflection_get_token): Add support for Module
1436         and Assembly.
1437         (mono_module_get_object): Set 'token' field.
1438         (mono_module_file_get_object): Set 'token' field.
1439
1440         * icall.c: Add new Assembly and Module icalls.
1441
1442         * appdomain.c: Bump corlib version.
1443
1444 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1445
1446         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1447         tokens of metadata objects.
1448
1449         * reflection.h reflection.c (mono_reflection_get_token): New function
1450         to obtain the token of a metadata object.
1451
1452         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1453
1454 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1455
1456         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1457         
1458         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1459
1460 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1461
1462         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1463         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1464         AssemblyBuilder to access the permissions set in the class lib.
1465         * reflection.c: Added security attributes encoding step in 
1466         mono_image_build_metadata.
1467         * tabledefs.h: Added new security actions defined in 2.0:
1468         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1469
1470 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1471
1472         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1473         macro parameter.
1474
1475 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1476  
1477         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1478           finalized. There where random SIGSEVs at program termination, when
1479           an object being finalized was trying to do a string comparison and
1480           the current culture was already finalized.
1481  
1482 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1483
1484         * threads.c: call thread_cleanup before finishing the thread if we get
1485         there.
1486
1487 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1488
1489         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1490         assemblies from the parent. Fixes #65665.
1491
1492 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1493
1494         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1495         modifiers.
1496
1497 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1498
1499         * reflection.h: add prototype for mono_get_dbnull_object
1500         * reflection.c: add prototypes for get_default_param_value_blobs 
1501         and mono_get_object_from_blob for fussier compilers
1502
1503 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1504  
1505         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1506         false deadlock checks in class initialization.
1507  
1508 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1509
1510         * image.c (mono_image_addref): Fix comment.
1511
1512         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1513         possible.
1514
1515 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1516
1517         * reflection.c (mono_param_get_objects): Modified to return
1518         ParameterInfo.DefaultValue object.
1519
1520         (get_default_param_value_blobs):
1521         (mono_get_object_from_blob):
1522         (mono_get_dbnull_object): New helper routines. 
1523
1524         * object.c (mono_get_constant_value_from_blob): New helper routine
1525         carved out from get_default_field_value ()
1526
1527         * object-internals.h (mono_get_constant_value_from_blob): Added
1528         function declaration.
1529
1530 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1531
1532         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1533         referenced assemblies. Fixes #62135.
1534
1535         * exception.h exception.c (mono_get_exception_file_not_found2): New
1536         helper function.
1537
1538 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1539
1540         * class.h class.c: Add mono_type_get_underlying_type ().
1541
1542 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1543
1544         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1545         Fix GetTypes() to support dynamically created assemblies.
1546
1547 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1548
1549         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1550         
1551         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1552         previous patch.
1553
1554         * reflection.h reflection.c loader.c: Allow dynamic construction of
1555         pinvoke methods. Fixes #65571.
1556         
1557         * reflection.c (mono_reflection_get_type): Revert previous change since
1558         it causes regressions.
1559
1560 2004-09-08  Martin Baulig  <martin@ximian.com>
1561
1562         * class.c (class_compute_field_layout): Don't call
1563         mono_class_layout_fields() for open generic instances.
1564
1565 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1566         * threads.c appdomain.c: fix typo in GC macro
1567
1568 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1569
1570         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1571         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1572
1573 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1574
1575         * image.c (mono_image_close): Applied patch from 
1576         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1577         assembly is loaded multiple times from data.
1578         
1579         * image.c (mono_image_open): Fix warning.
1580
1581 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1582
1583         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1584         once. Fixes #58334.
1585         
1586         * reflection.c (mono_reflection_create_runtime_class): Initialize
1587         klass->nested_classes. Fixes #61224.
1588
1589 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1590
1591         * threads.c: sched_yield() on exit, to allow threads to quit.
1592
1593 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1594
1595         * object.c (mono_unhandled_exception): Remove leftover debug code.
1596
1597 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1598
1599         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1600
1601 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1602
1603         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1604         
1605         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1606
1607 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1608
1609         * marshal.c (emit_marshal_array): Null terminate string arrays.
1610         
1611         * marshal.c (raise_auto_layout_exception): Fix warning.
1612
1613         * reflection.c (mono_param_get_objects): Initialize the default value
1614         with DBNull.Value, not null. Fixes #62123.
1615
1616 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1617
1618         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1619         throw an exception with a cute explanation.
1620
1621 2004-09-06  Dick Porter  <dick@ximian.com>
1622
1623         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1624         Close the new process's thread handle, as we don't use it.  The
1625         handle stays around forever otherwise.
1626
1627 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1628
1629         * object.c (arith_overflow): Fix warning.
1630
1631         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1632         calling conventions in method refs. Fixes #65352.
1633
1634         * reflection.c: Fix warnings.
1635
1636 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1637
1638         * icall.c: Add a new icall for Array.Clear
1639
1640 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1641
1642         * object.c: When allocating an array, we have to throw
1643         an overflow exception if any of the lengths are < 0.
1644
1645 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1646
1647         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1648         properly. Also move implementation of string array marshalling to 
1649         managed code. Fixes #42316.
1650
1651 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1652
1653         * assembly.c: provide more information when loading an assembly fails.
1654
1655 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1656
1657         * filewatcher.c: don't expect the development fam package to be
1658         installed.
1659
1660 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1661
1662         * marshal.c: Make a copy of the signature cookie since it will be
1663         freed by the caller.
1664         
1665         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1666
1667         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1668
1669         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1670         marshal specs.
1671
1672         * marshal.c: More refactoring.
1673         
1674         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1675         smaller functions.
1676
1677 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1678
1679         * object.c: In mono_message_invoke, fill the output parameter array after
1680           calling the managed method (it was done before the call). This fixes
1681           bug #59299.
1682
1683 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1684
1685         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1686         as well.
1687
1688 2004-09-02  Martin Baulig  <martin@ximian.com>
1689
1690         * class.c (mono_class_instance_size): Don't allow generic type
1691         definitions or open generic instances.
1692         (mono_class_array_element_size): If we're a value type, call
1693         mono_class_instance_size() on the original class.
1694
1695         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1696         handle generic instances.
1697
1698         * mono-debug-debugger.c (write_type): Handle generic instances
1699         like classes.
1700
1701 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1702
1703         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
1704         the allocation request fails. Fixes #65089.
1705
1706         * object.c (mono_runtime_free_method): Do not call mono_free_method.
1707         
1708         * object.c (mono_runtime_free_method): New function to free a dynamic
1709         method.
1710
1711         * marshal.c (mono_delegate_free_ftnptr): New function to free the
1712         delegate trampoline.
1713
1714         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
1715         with hasthis as dynamic,
1716
1717         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
1718
1719         * domain.c (mono_jit_info_table_remove): New function to remove an
1720         entry from the jit info table.
1721
1722         * class-internals.h (MonoMethod): Add 'dynamic' field.
1723
1724         * loader.c: Fix warnings.
1725
1726 2004-09-01  Martin Baulig  <martin@ximian.com>
1727
1728         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
1729         instead of mono_debugger_lock() because the latter one is a no-op
1730         unless running in the debugger.
1731
1732 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1733
1734         * class.c (class_compute_field_layout): Classes with auto-layout or
1735         reference fields are not blittable.
1736         
1737 2004-09-01  Dick Porter  <dick@ximian.com>
1738
1739         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
1740         mono_image_get_filename() to get the assembly location.
1741
1742         * icall.c:
1743         * metadata.h: Fix compile warnings
1744
1745 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1746
1747         * class.c (class_compute_field_layout): System.Object is blittable.
1748
1749         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
1750         as in/out. Fixes #59909.
1751
1752 2004-09-01  Martin Baulig  <martin@ximian.com>
1753
1754         * metadata.h (MONO_TYPE_ISREFERENCE): Call
1755         mono_metadata_generic_inst_is_valuetype() if we're a generic
1756         instance to check whether our underlying type is a reference type.
1757
1758 2004-09-01  Martin Baulig  <martin@ximian.com>
1759
1760         * metadata.c (mono_type_size): If we're a generic instance, call
1761         mono_class_value_size() for value types.
1762
1763 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
1764
1765         * marshal.c: Implement more custom marshalling functionality. Fixes
1766         #64915.
1767
1768 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1769
1770         * mono-debug.c, debug-mono-symfile.c: add some locking love.
1771
1772 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
1773
1774         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
1775
1776         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
1777
1778         * icall.c: Fix some warnings.
1779
1780         * threads.c (abort_appdomain_thread): Fix unref errors.
1781         (mono_thread_current): Fix THREAD_DEBUG define.
1782
1783 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
1784
1785         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
1786
1787         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
1788
1789 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
1790
1791         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
1792         string arrays.
1793
1794 2004-08-28  Martin Baulig  <martin@ximian.com>
1795
1796         * metadata.c
1797         (mono_metadata_generic_inst_is_valuetype): New public function.
1798
1799         * metadata.h (MONO_TYPE_ISSTRUCT): Call
1800         mono_metadata_generic_inst_is_valuetype() if we're a generic
1801         instance to check whether our underlying type is a valuetype.
1802
1803 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
1804
1805         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
1806         #63768.
1807
1808 2004-08-25  Martin Baulig  <martin@ximian.com>
1809
1810         * loader.c (mono_get_method_from_token): Abstract methods can also
1811         be generic and thus have type parameters.
1812
1813         * metadata-internals.h
1814         (MonoDynamicImage): Added `GPtrArray *gen_params'.
1815
1816         * reflection.c (mono_image_get_generic_param_info): Don't create a
1817         metadata row, just add an entry to the `gen_params' array.
1818         (build_compressed_metadata): Sort the `gen_params' array and then
1819         actually create the metadata.
1820
1821 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1822
1823         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
1824
1825 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
1826
1827         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
1828
1829 2004-08-24  Martin Baulig  <martin@ximian.com>
1830
1831         * class.cs (mono_class_is_subclass_of): Like an interface, a
1832         generic instance also derives from System.Object.
1833
1834 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
1835
1836         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
1837         custom modifiers to be in any order. Fixes #61990.
1838
1839 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
1840
1841         * object.c: Register mono_object_new_fast icall.
1842         
1843         * object.c (mono_class_get_allocation_ftn): Return to calling
1844         mono_object_new_fast, since it seems faster to compute the object 
1845         size in unmanaged code than passing it as a parameter.
1846
1847         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
1848
1849         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
1850         this function with Boehm as the oom handler, so we don't have to check
1851         the result of GC_malloc.
1852
1853         * object.c: Remove checks for oom.
1854
1855         * object.h object.c (mono_class_get_allocation_ftn): New function to
1856         return the icall which can be used to allocate an instance of a given
1857         class. 
1858
1859         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
1860
1861         * class-internals.h: Add 'enabled' field.
1862
1863 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
1864
1865         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
1866
1867 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
1868         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
1869         value 0x0010.
1870
1871 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
1872
1873         * appdomain.c: use the Tls function for appdomain too,
1874         at Zoltan's request. Actually return in mono_context_get
1875
1876         * appdomain.c, profiler.c, threads.c: use __thread
1877
1878 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
1879
1880         * appdomain.c threads.c: Call GC_CreateThread on windows.
1881
1882         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
1883         multiple libraries since this don't work on windows.
1884
1885 2004-08-18  Martin Baulig  <martin@ximian.com>
1886
1887         * class-internals.h
1888         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
1889         MonoMethodHeader.
1890
1891         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
1892         MonoMethodNormal since we also need it for abstract and interface
1893         methods.
1894
1895         * reflection.c
1896         (build_compressed_metadata): Sort the GenericParam table.
1897         (mono_image_create_token): Added `gboolean create_methodspec'
1898         argument; this is false when generating a MethodImpl token.
1899         (reflection_methodbuilder_to_mono_method): Abstract and interface
1900         methods may also have generic parameters.
1901
1902 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
1903
1904         * appdomain.c: thread local alloc
1905
1906 2004-08-17  Martin Baulig  <martin@ximian.com>
1907
1908         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
1909
1910         * icall.c
1911         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
1912         argument.
1913
1914         * class.c (mono_type_get_full_name): New public function.
1915         (mono_type_get_name): Don't include the type arguments.
1916
1917 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
1918
1919         * Makefile.am: Build static versions of libmetadata and libmonoruntime
1920         for inclusion into the mono executable.
1921
1922 2004-08-16  Martin Baulig  <martin@ximian.com>
1923
1924         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
1925         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
1926
1927 2004-08-14  Martin Baulig  <martin@ximian.com>
1928
1929         * class.c (dup_type): Also copy the `byref' field.
1930
1931 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
1932
1933         * reflection.c (create_dynamic_mono_image): Revert the last change 
1934         since it breaks bootstrap.
1935
1936 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
1937
1938         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
1939
1940         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
1941         not free them with g_free.
1942
1943 2004-08-11  Martin Baulig  <martin@ximian.com>
1944
1945         * reflection.c (mono_reflection_setup_internal_class): Also call
1946         mono_class_setup_mono_type() if we already have a `tb->type.type'.
1947
1948 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
1949
1950         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
1951         called during default (first) AppDomain creation. Keep track of
1952         Evidence when loading assemblies.
1953
1954 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
1955
1956         * opcodes.c, opcodes.h: reduce runtime relocations.
1957
1958 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
1959
1960         * culture-info.h, locales.c: fixes and chages to sue the new
1961         optimized format of the locale data.
1962         * culture-info-tables.h: regenerated.
1963
1964 2004-08-06  Geoff Norton <gnorton@customerdna.com>
1965         
1966         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
1967
1968 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
1969
1970         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
1971         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
1972         * domain-internals.h: icall declaration.
1973         * icall.c: icall registration.
1974         * object-internals.h: New fields in MonoAssembly for CAS.
1975
1976 2004-08-05  Duncan Mak  <duncan@ximian.com>
1977
1978         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
1979         CEE_LDELEM_ANY.
1980
1981 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
1982
1983         * reflection.c: fix to deal with object[] arrays in custom ctors
1984         (bug #62550).
1985
1986 2004-08-05  Martin Baulig  <martin@ximian.com>
1987
1988         * class.c (mono_class_array_element_size): Added support for
1989         generic instances and correctly handle "recursive" types.
1990
1991 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
1992
1993         * assembly.c: Fix warnings.
1994
1995 2004-08-04  Martin Baulig  <martin@ximian.com>
1996
1997         * class.c
1998         (mono_type_get_name_recurse): Added `gboolean include_arity'
1999         argument specifying whether or not we should include the generic
2000         arity in the type name.
2001         (_mono_type_get_name): New static function.
2002         (mono_class_setup_vtable): If we're a generic instance, don't
2003         include the generic arity in the names of explicit method
2004         implementations.        
2005
2006 2004-08-03  Martin Baulig  <martin@ximian.com>
2007
2008         * class.c (mono_type_get_name_recurse): Enclose the generic type
2009         arguments in `<', '>'.
2010
2011 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2012
2013         * gc.c: make GC warning messages use the trace API, they are just
2014         noise to most of the users.
2015
2016 2004-08-03  Martin Baulig  <martin@ximian.com>
2017
2018         * debug-mono-symfile.c (read_string): Correctly read the string.
2019
2020 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2021
2022         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2023         
2024         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2025         icalls.
2026         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2027
2028 2004-07-30  Martin Baulig  <martin@ximian.com>
2029
2030         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2031         Reflect latest symbol writer changes.   
2032
2033 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2034
2035         * object.c: always create an object if null is passed
2036         to Invoke() where a valuetype is expected.
2037
2038 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2039
2040         * marshal.c (mono_marshal_init): make managed
2041         signatures match native ones better for 64bits.
2042
2043 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2044
2045         * appdomain.c: hack to build correctly the private bin path on windows.
2046         Fixes bug #61991.
2047
2048 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2049
2050         * assembly.c: Load mscorlib from the correct framework directory
2051           (mono/<version>/mscorlib.dll).
2052         * appdomain.h: Added prototypes for new functions.
2053         * internals.h: Added some prototypes.
2054         * domain.c: When initializing the runtime, get from the executable and
2055           the configuration files the runtime version that the app supports.
2056           Added support methods for reading app.exe.config. Added list of versions
2057           supported by the JIT. Added two new methods: mono_init_from_assembly,
2058           which initializes the runtime and determines the required version from
2059           the provided exe file, and mono_init_version, which initializes
2060           the runtime using the provided version.
2061         * icall.c: Get machine.config from version-specific directory.
2062         * reflection.c: When generating an image, embed the version number
2063           of the current runtime.
2064
2065 2004-07-28  Dick Porter  <dick@ximian.com>
2066
2067         * socket-io.c
2068         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2069         returned sockaddr size before creating the remote address object.
2070         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2071         61608.
2072
2073 2004-07-28  Dick Porter  <dick@ximian.com>
2074
2075         * locales.c (string_invariant_compare_char): Fix invariant char
2076         compares between upper and lower cases.  Fixes bug 61458.
2077
2078 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2079         
2080         * marshal.c: actually cache stelem.ref wrappers.
2081         
2082 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2083
2084         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2085         sections and remove the mono_cli_rva_map () function.
2086
2087 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2088
2089         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2090         by Geoff Norton (<gnorton@customerdna.com>).
2091
2092 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2093
2094         * class.c: fix class loads for pointer types (typeof(int) !=
2095         typeof(int*)).
2096
2097 2004-07-27  Martin Baulig  <martin@ximian.com>
2098
2099         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2100         reading the debugging information from an external ".mdb" file.
2101
2102 2004-07-24  Martin Baulig  <martin@ximian.com>
2103
2104         * reflection.c (mono_image_get_type_info): Only write a class
2105         layout entry if we actually have a size or a packing size.
2106
2107 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2108
2109         * reflection.c (type_get_fully_qualified_name): 
2110         insert cast to get type checking of ?: with non-gcc compilers
2111
2112 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2113
2114         * rand.c: use g_getenv for both lookups of
2115         MONO_EGD_SOCKET
2116
2117 2004-07-17  Martin Baulig  <martin@ximian.com>
2118
2119         * reflection.c (mono_reflection_bind_generic_method_parameters):
2120         Set `gmethod->reflection_info'.
2121
2122 2004-07-17  Martin Baulig  <martin@ximian.com>
2123
2124         * class.c (mono_class_create_from_typedef): Insert the newly
2125         created class into the hash table before computing the interfaces
2126         since we could be called recursively.
2127
2128 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2129
2130         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2131         function to implement stelem.ref in managed code
2132         * class-internals.h, debug-helpers.c: a new wrapper type
2133         for the above.
2134
2135 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2136
2137         * gc.c: allow GC handles to work even when no GC is compiled in.
2138         Fix part of bug #61134 (GetAddrOfPinnedObject).
2139
2140 2004-07-13  Peter Williams  <peter@newton.cx>
2141  
2142         * process.c (complete_path): Make sure we don't attempt to execute
2143         directories.
2144  
2145 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2146
2147         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2148           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2149           and will add/subtract the hour if needed
2150
2151 2004-07-12  Martin Baulig  <martin@ximian.com>
2152
2153         * reflection.c (mono_field_get_object): If we have
2154         `field->generic_info', take the attributes from
2155         `field->generic_info->generic_type'.    
2156
2157 2004-07-12  Martin Baulig  <martin@ximian.com>
2158
2159         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2160         This function must be called before initializing the runtime.
2161         (mono_debug_init_1): New function; call this after initializing
2162         the runtime, but before loading the assembly.  It tells the
2163         debugger to load corlib and the builtin types.
2164
2165         * mono-debug-debugger.c: Did some larger changes in the debugging
2166         code; support recursive class declarations, make sure we actually
2167         add all classes.
2168
2169 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2170
2171         * debug-helpers.c: undo my previous patch and fixed the real issue in
2172         ../mini/exceptions-x86.c
2173
2174 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2175
2176         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2177         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2178         called from other .cctors.
2179
2180 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2181
2182         * loader.c: Removed the mono_loader_wine_init hack now that we are
2183         doing a managed version of Windows.Forms.
2184
2185 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2186
2187         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2188         threadpool.c, threads.c: remove static data from rootset.
2189
2190 2004-07-09  Dick Porter  <dick@ximian.com>
2191
2192         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2193         Don't do any more processing if the matched length was 0.  It was
2194         increasing the size of the string before.  Fixes bug 61167.
2195
2196 2004-07-09  Dick Porter  <dick@ximian.com>
2197
2198         * socket-io.h:
2199         * socket-io.c
2200         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2201         Add support for SO_PEERCRED if its available.
2202
2203 2004-07-09  Peter Bartok <pbartok@novell.com>
2204         * loader.c: winelib.exe.so error message is now only displayed if
2205         MONO_DEBUG is set. To help us avoid questions when people are trying
2206         out the new Managed.Windows.Forms.
2207
2208 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2209
2210         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2211         for isinst and castclass wrappers.
2212
2213         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2214         to libmetadata from the JIT, so they could be used by the marshalling
2215         code and the interpreter.
2216
2217         * marshal.c: Register marshalling related JIT icalls here instead of
2218         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2219         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2220
2221         * metadata.h: Remove unneeded marshalling conversions.
2222
2223         * opcodes.c: Update for new opcodes.
2224         
2225 2004-07-08  Martin Baulig  <martin@ximian.com>
2226
2227         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2228         (mono_debug_get_domain_data): Make this function static.
2229
2230 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2231
2232         * gc.c, object.h: add nice GC handle API for embedders.
2233
2234 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2235
2236         * reflection.c: more changes for the new api
2237
2238         * object.c: When we reflect on a field w/ a constant value, it
2239         will not have a memory location, so we must access metadata. Also,
2240         allow easier reading of strings so that we can read them from
2241         the constant data.
2242
2243         * class.c (mono_class_layout_fields): no need for literal fields here.
2244
2245         * class-internals.h: api changes for const fields
2246
2247         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2248
2249 2004-07-06  Martin Baulig  <martin@ximian.com>
2250
2251         * mono-debug.h: Increment version number to 44.
2252
2253         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2254         now a gpointer, rewrote this whole method.
2255
2256         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2257         function.  Add information about the wrapper in a new "misc table".
2258
2259         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2260         for the new misc table.
2261
2262 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2263
2264         * metadata-internals.h image.c: Add a cache for helper signatures.
2265
2266         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2267
2268 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2269
2270         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2271         delegates from a delegate. Fixes #61033.
2272         
2273         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2274         marshalling of stringbuilder arrays. Fixes #59900.
2275
2276 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2277
2278         * icall.c: Add EnumBuilder:setup_enum_type icall.
2279
2280 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2281
2282         * icall.c: Added a new icall for the property version of
2283         OffsetOfStringData.
2284
2285 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2286
2287         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2288         it has a constant size across platforms.
2289
2290         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2291         stack trace.
2292
2293 2004-06-29  Martin Baulig  <martin@ximian.com>
2294
2295         * mono-debug.c (mono_debug_add_method): Protect the whole function
2296         in mono_debugger_lock(), not just parts of it.
2297
2298 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2299
2300         * reflection.c: make sure padding bytes in heaps are zeroed.
2301
2302 2004-06-24  David Waite  <mass@akuma.org>
2303
2304         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2305         image.c, loader.c, locales.c, marshal.c, metadata.c,
2306         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2307         string-icalls.c, threads.c: change to C90-style comments from C99 /
2308         C++ -style
2309
2310 2004-06-24  Dick Porter  <dick@ximian.com>
2311
2312         * threads.c
2313         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2314         return createdNew.  Fixes bug 60412.
2315
2316         * threads-types.h: 
2317         * icall.c: Add createdNew parameter to CreateMutex icall
2318
2319 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2320
2321         * reflection.c, object-internals.h: save default value in params.
2322
2323 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2324
2325         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2326         no need to build a new path combining that with the application base.
2327         Fixes bug #60442.
2328
2329 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2330
2331         * reflection.c: fixed minor standard compliance issues.
2332
2333 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2334
2335         * reflection.c: fixed issue with encoding some custom attributes
2336         (arrays in properties and fields, bug #60411).
2337
2338 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2339
2340         * reflection.c: fix start address when copying the public key token.
2341
2342 2004-06-23  Martin Baulig  <martin@ximian.com>
2343
2344         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2345         the `exc' object in a static object to put it into the GC's root set.
2346
2347 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2348
2349         * reflection.c: make mono_reflection_setup_internal_class ()
2350         callable a second time to setup a new parent class.
2351
2352 2004-06-23  Dick Porter  <dick@ximian.com>
2353
2354         * threads.c: Check for WAIT_IO_COMPLETION return values.
2355
2356 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2357
2358         * appdomain.c: Removed the g_free on the public key token. Now copy 
2359         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2360         * assembly.c: Added public key token string value when loading 
2361         assemblies. Fix bug #60439.
2362         * icall.c: Added missing informations (like public key) in 
2363         GetReferencedAssemblies. Fix #60519.
2364         * image.h: Changed definition for public key token from const char*
2365         public_tok_value to guchar public_key_token [17];
2366         * reflection.c: Updated for changes to public key token.
2367
2368 2004-06-22  Lluis Sanchez Gual
2369
2370         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2371         for the field in base classes.
2372
2373 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2374
2375         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2376         mark headers as not supported, they are installed only for use by the
2377         debugger.
2378
2379 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2380
2381         * *.c, *.h: avoid namespace pollution in public headers.
2382
2383 2004-06-21  Martin Baulig  <martin@ximian.com>
2384
2385         * exception.c (mono_get_exception_security): It's in
2386         "System.Security", not in "System".
2387
2388         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2389         the exception classes.
2390
2391 2004-06-21  Martin Baulig  <martin@ximian.com>
2392
2393         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2394         Protect the exception object from being finalized.
2395
2396 2004-06-21  Martin Baulig  <martin@ximian.com>
2397
2398         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2399         public function.
2400
2401 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2402
2403         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2404         if it was not loaded before. Fix parts of #60439.
2405
2406 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2407
2408         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2409         code that was broken since Ben's change: wrappers are now
2410         dependent on the method signature only again.
2411
2412 2004-06-21  Martin Baulig  <martin@ximian.com>
2413
2414         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2415         added interface support.
2416
2417 2004-06-21  Martin Baulig  <martin@ximian.com>
2418
2419         * class.c (mono_vtable_get_static_field_data): New public method.
2420
2421 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2422
2423         * filewatcher.c : Windows build fix to be compliant with API changes.
2424
2425 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2426
2427         * class.h, class.c: more accessors.
2428         * metadata.h, metadata.c: prepare for hiding MonoType and
2429         MonoMethodSignature: people should use the accessors from now on
2430         outside of the tree.
2431
2432 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2433
2434         * *.c, *.h: more API cleanups.
2435
2436 2004-06-18  Jackson Harper  <jackson@ximian.com>
2437
2438         * assembly.c: Trace loading assemblies.
2439         * loader.c: Trace loading native libraries.
2440         * mono-config.c: Trace loading config files.
2441         
2442 2004-06-18  Dick Porter  <dick@ximian.com>
2443
2444         * locales.c: Tell ICU the lengths of strings, it can cope with
2445         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2446
2447 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2448
2449         * image.c: swapped name/filename;
2450
2451 2004-06-18  Martin Baulig  <martin@ximian.com>
2452
2453         * mono-debug-debugger.c (write_class): Write the parent class at
2454         the end of the header.
2455
2456 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2457
2458         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2459
2460 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2461
2462         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2463         (bundle_obj): New conditional define.
2464         (BUILT_SOURCES): Remove.
2465         ($(bundle_srcs)): Make parallel-make safe.
2466         (libmonoruntime_la_LIBADD): Make unconditional.
2467         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2468         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2469
2470 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2471
2472         * culture-info-tables.h: It was inconsistent with the latest
2473           supp info files.
2474
2475 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2476
2477         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2478         be loaded.
2479
2480         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2481         with gcc 2.95.
2482
2483 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2484
2485         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2486         cleaned up public header threads.h.
2487
2488 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2489
2490         * Makefile.am, *.c, *.h: more API cleanups.
2491
2492 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2493
2494         * Makefile.am: removed monosn from compilation.
2495         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2496         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2497         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2498         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2499         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2500         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2501
2502 2004-06-15  Jackson Harper  <jackson@ximian.com>
2503
2504         * assembly.c: Make locales lower case when searching the GAC for
2505         assemblies. gacutil will always make locales lowercase when
2506         installing so this effectively makes them case insensitive.
2507         
2508 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2509
2510         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2511         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2512           parameter which allows to choose whether the wait can be interrupted or 
2513           not. Also added the method mono_monitor_enter(), which locks the monitor
2514           using an infinite wait and without allowing interruption.
2515           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2516           interrupted.
2517         * object.h: Added new fields in MonoThread. suspend_event holds the event
2518           used to susped/resume the thread. synch_lock is the lock object to use for
2519           modifying the thread state.
2520         * threads.c: Use the new synch_lock object for locking, instead of "this",
2521           which can generate deadlocks.
2522           Moved thread state change in Thread.Sleep and Thread.Join from managed
2523           to unmanaged code. This avoids a deadlock when the thread was suspended
2524           just after acquiring the thread lock.
2525           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2526           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2527           which is not fully implemented in the io-layer.
2528         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2529
2530 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2531
2532         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2533         threads-types.h: more API cleanups.
2534
2535 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2536
2537         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2538         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2539         threadpool.c, threads.c: first pass at the exported API cleanup.
2540
2541 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2542
2543         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2544
2545 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2546
2547         * icall.c: added internalGetHome.
2548
2549 2004-06-14  Dick Porter  <dick@ximian.com>
2550
2551         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2552         possible to return successfully when '.' or '..' were the only
2553         entries in a directory, but were skipped.  The MonoIOStat was not
2554         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2555         Fixes bug 59574.
2556
2557 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2558
2559         * reflection.c: make binaries run on .Net 1.1 by default.
2560
2561 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2562
2563         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2564
2565 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2566
2567         * marshal.c: keep track of struct size with explicit layout
2568         (bug #59979).
2569
2570 2004-06-12  Martin Baulig  <martin@ximian.com>
2571
2572         * mono-debug-debugger.c: Comment out a debugging g_message().
2573
2574 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2575
2576         * reflection.c, reflection.h: do not free custom attrs that are cached.
2577         * icall.c: use braces to make code clearer.
2578
2579 2004-06-11  Martin Baulig  <martin@ximian.com>
2580
2581         * class.h (MonoInflatedField): New type.
2582         (MonoClassField): Replaced `MonoType *generic_type' with
2583         `MonoInflatedField *generic_info'.
2584
2585         * icall.c
2586         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2587
2588 2004-06-11  Martin Baulig  <martin@ximian.com>
2589
2590         * reflection.c (mono_image_create_method_token): Correctly encode
2591         varargs methods.
2592
2593 2004-06-11  Martin Baulig  <martin@ximian.com>
2594
2595         * metadata.c (mono_metadata_parse_method_signature): When parsing
2596         a MethodDef which has VarArgs, also set sentinelpos if we don't
2597         have any parameters.
2598
2599 2004-06-11  Martin Baulig  <martin@ximian.com>
2600
2601         * verify.c (mono_method_verify): In CEE_CALL, use
2602         mono_method_get_signature() to get the method's signature, unless
2603         we're a PInvoke method.
2604
2605 2004-06-10  Jackson Harper  <jackson@ximian.com>
2606
2607         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2608         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2609         logical name as the supplied path is just a prefix to the gac not
2610         the direct path to it.
2611         
2612 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2613
2614         * reflection.c: make the token for a created method match
2615         the token of the MethodBuilder it was created from
2616         (IKVM requires this behaviour now).
2617
2618 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2619
2620         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2621         reflection.c, socket-io.c: leak fixes.
2622
2623 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2624
2625         * icall.c: handle sentinel pos in vararg methods in position different
2626         from 0.
2627
2628 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2629
2630         * culture-info-tables.h: freshly generated.
2631
2632 2004-06-09  Martin Baulig  <martin@ximian.com>
2633
2634         * loader.c (mono_get_method_constrained): Call `mono_class_init
2635         (constrained_class)'.   
2636
2637 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2638
2639         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2640         any methods. Fixes #59629.
2641
2642 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2643
2644         * culture-info-tables.h: reflecting locale-builder updates.
2645
2646 2004-06-08  Dick Porter  <dick@ximian.com>
2647
2648         * object.h:
2649         * locales.c: Fixed compile warnings, including a real bug in
2650         CompareInfo_internal_compare.
2651         
2652 2004-06-08  Dick Porter  <dick@ximian.com>
2653
2654         * locales.c
2655         (ves_icall_System_Globalization_CompareInfo_internal_index):
2656         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2657         Double-check the resuls of usearches, because ICU currently
2658         ignores most of the collator settings here.  Fixes bug 59720.
2659         
2660 2004-06-08  Dick Porter  <dick@ximian.com>
2661
2662         * locales.c
2663         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2664         Fix memory leak and segfault-causing typo.  No idea how this one
2665         lasted so long without being noticed.
2666
2667 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2668
2669         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2670         any methods. Fixes #59629.
2671
2672 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2673
2674         * assembly.c:
2675         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2676         own the critical section before). Removed dead code (that's done
2677         in the preload hook).
2678
2679         (mono_assembly_load_with_partial_name): call the preload hook.
2680
2681 2004-06-08  Martin Baulig  <martin@ximian.com>
2682
2683         * metadata.c (mono_metadata_signature_alloc): Default
2684         `sentinelpos' to -1.
2685
2686         * reflection.c (mono_image_get_array_token): Likewise.
2687
2688 2004-06-08  Martin Baulig  <martin@ximian.com>
2689
2690         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2691
2692         * metadata.c (mono_metadata_parse_method_signature): When parsing
2693         a MethodDef which has VarArgs, set sentinelpos.
2694
2695         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2696         `gint16' since we're using -1 for non-varargs methods.
2697
2698         * reflection.c
2699         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
2700         (method_encode_signature): Added varargs support.
2701         (method_builder_encode_signature): Likewise.
2702         (mono_image_get_varargs_method_token): New static method.
2703         (mono_image_create_method_token): New public method; this is
2704         called via an icall instead of mono_image_create_token() when
2705         calling a varargs method.       
2706
2707 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
2708
2709         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
2710
2711 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2712
2713         * culture-info-tables.h : Reflecting the latest locale-builder that
2714           fixed empty array representation ({} to {0}).
2715
2716 2004-06-07  Jackson Harper  <jackson@ximian.com>
2717
2718         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
2719         looking up extra gac paths. This allows MONO_GAC_PATH to act
2720         exactly like a prefix.
2721         
2722 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2723
2724         * reflection.c (mono_reflection_type_from_name): Make a copy of the
2725         type name before modifying it. Fixes #59405.
2726
2727 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2728
2729         * culture-info.h: added fields for "all datetime patterns".
2730         * locales.c: (  ves_icall_System_Globalization_CultureInfo
2731           _construct_datetime_format ()): fill xxx_patterns fields.
2732         * object.h: added fields for "all datetime patterns" to
2733           MonoDateTimeFormatInfo.
2734         * culture-info-tables.h: reflecting locale-builder updates.
2735
2736 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2737
2738         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
2739         the event has no add and remove methods. Fixes #59629.
2740
2741 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
2742
2743         * object.c: Fixed possible integer overflow when allocating large
2744         strings.
2745
2746 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2747
2748         * culture-info-tables.h: reflecting locale-builder updates.
2749
2750 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2751
2752         * culture-info-tables.h: reflecting locale-builder updates.
2753
2754 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
2755
2756         * culture-info-tables.h: reflecting locale-builder updates.
2757
2758 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
2759
2760         * threads.c: Made Thread.Sleep abortable.
2761
2762 2004-06-02  Martin Baulig  <martin@ximian.com>
2763
2764         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
2765
2766         * debug-mono-symfile.h: Bumped symbol file version number to 37.
2767
2768 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
2769
2770         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
2771
2772 2004-05-30  Jackson Harper  <jackson@ximian.com>
2773
2774         * reflection.c: Do not hardcode assembly versions or public key
2775         tokens anymore. All of this except the corlib section was dead
2776         code anyways.
2777         
2778 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
2779
2780         * object.c (mono_runtime_invoke_array): Automatically create boxed
2781         objects for byref valuetypes if needed. Fixes #59300.
2782         
2783         * object.c (mono_method_return_message_restore): Handle 
2784         MONO_TYPE_OBJECT as well.
2785
2786 2004-05-28  Jackson Harper  <jackson@ximian.com>
2787
2788         * reflection.c: The modified type encoding was causing build
2789         problems. Reverted for now.
2790         
2791 2004-05-28  Jackson Harper  <jackson@ximian.com>
2792
2793         * reflection.c/h: Take an assembly ref so that we dont create
2794         fully qualified names when encoding types in the same assembly as
2795         the custom attribute being emitted.
2796         * appdomain.c: Increment version number.
2797         
2798 2004-05-26  Duncan Mak  <duncan@ximian.com>
2799
2800         * icall.c
2801         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
2802         Set the full version number (major, minor, build, revision).
2803
2804 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
2805
2806         * marshal.c (emit_struct_conv): increment src/dst after blit
2807         (mono_marshal_get_managed_wrapper,
2808         mono_marshal_get_native_wrapper): make sure we have marshalling
2809         info before marshalling params (info computation affects
2810         blittable)
2811
2812         * class.c (class_compute_field_layout): correctly deal with
2813         blittable
2814         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
2815         value types (as per what windows dows by default)
2816         (mono_class_setup_mono_type): System.ValueType is blittable
2817         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
2818         blittable
2819
2820         * marshal.c (mono_marshal_load_type_info): flag types  as
2821         non-blittable if the native layout doesn't match the managed
2822         layout
2823
2824 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2825
2826         * appdomain.c: don't add stuff in the private search path that is
2827         above the application base. If application base is not set, there's
2828         no private search path.
2829
2830 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
2831
2832         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
2833         byref struct arguments in native->managed marshalling.
2834
2835 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
2836
2837         * marshal.c (mono_marshal_get_runtime_invoke): correctly
2838         cache methods using signature (special case for methods
2839         that are value type or string class)
2840         
2841         * image.c (mono_image_close): clean up allocated GSList's
2842         in runtime_invoke_cache.
2843
2844 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2845
2846         * mono-config.c: set the correct path for mono_cfg_dir on windows when
2847         there's no MONO_CFG_DIR environment variable defined.
2848
2849 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2850
2851         * threads.c: windows version must be >= 0x0500 to include OpenThread.
2852
2853 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
2854
2855         * threadpool.c: Really wait for 500ms after the async call, even if the wait
2856           is interrumped.
2857         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
2858           before waiting for it, and call CloseHandle after the wait to unref it.
2859           This will make sure that handles are not disposed too early.
2860
2861 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2862
2863         * appdomain.c:
2864         * appdomain.h:
2865         * icall.c: removed
2866         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
2867         needed now.
2868
2869         * object.c: se the application_base only for the domain that runs
2870         Main. Fixes bug #59216,
2871
2872 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2873
2874         * appdomain.c:
2875         * object.c: only the domain in which Main is run have
2876         SetupInformation.ConfigurationFile set, so moved a few lines from
2877         appdomain.c to object.c.
2878
2879 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2880
2881         * appdomain.c: we tried to load [name].(dll|exe), but according
2882         to bug #57710, we must also try [culture]/[name].(dll|exe) and
2883         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
2884         There's a test case attached to bug #58922.
2885
2886 2004-05-27  Dick Porter  <dick@ximian.com>
2887
2888         * icall.c:
2889         * file-io.c: Implemented icalls for locking and unlocking regions
2890         in a file.
2891         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
2892         FALSE on error (fixes both compiler warning and real bug.)
2893
2894 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
2895
2896         * culture-info-tables.h: reflecting locale-builder updates.
2897
2898           (Added missing ChangeLog entry for 05/26)
2899
2900 2004-05-27  Jackson Harper  <jackson@ximian.com>
2901
2902         * locales.c: Fix some cut and paste errors.
2903         
2904 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2905
2906         * mono-config.c: set the correct path for config. directory on windows.
2907
2908 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
2909
2910         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
2911           on win32.
2912
2913 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
2914
2915         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
2916         from pinvoke functions.
2917         
2918         * marshal.c (mono_ftnptr_to_delegate): Implement this.
2919
2920 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
2921
2922         * culture-info-tables.h: reflecting locale-builder updates.
2923
2924 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
2925
2926         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
2927         #59086.
2928
2929 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
2930
2931         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
2932         * icall.c: Modified icalls for RNG.
2933         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
2934         Windows (CryptoAPI).
2935
2936 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
2937
2938         * locales.c: Fix build.
2939
2940 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
2941
2942         * culture-info-tables.h: reflecting locale-builder updates.
2943
2944 2004-05-25  Jackson Harper  <jackson@ximian.com>
2945
2946         * locales.c: When creating the current culture use the $LANGs
2947         specific culture. So DateTimeFormat and NumberFormat entries are created.
2948         
2949 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
2950
2951         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
2952         a char array as parameter.
2953
2954 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
2955
2956         * image.c: In mono_image_open(), always use an absolute path name to
2957           look for already loaded images.
2958
2959 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
2960
2961         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
2962         missing in the windows build (like older cygwin include files).
2963
2964 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
2965
2966         * icall.c: Fixed check for possible integer overflow in Buffer_
2967         BlockCopy icall. Replaced comments style // by /* */.
2968
2969 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
2970
2971         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
2972         
2973         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
2974         check after MONO_VTADDR. Fixes pinvoke2.exe.
2975
2976         * marshal.h marshal.c metadata.h: Add beginnings of support for
2977         ftnptr -> delegate marshalling.
2978
2979 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
2980
2981         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
2982         * threads.c: Fix warnings.
2983
2984 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
2985
2986         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
2987         * icall.c: Registered icalls for Suspend and Resume.
2988         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
2989           Thread.Abort.
2990         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
2991         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
2992         * process.c: Use WaitForSingleObjectEx.
2993         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
2994           checkpoints.
2995         * threads.c, threads.h: Make use of new Ex wait methods. Improved
2996           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
2997           for Suspend and Resume. Added new mono_thread_stop, used for stoping
2998           background threads. Added basic support for Abort in Windows.
2999           Start new threads using a managed delegate invoke wrapper. This wrapper
3000           has an interruption checkpoint that is needed since an interruption
3001           can be requested before the thread leaves the unmanaged code that starts 
3002           the thread.
3003         * marshal.c: Added interruption checkpoint after every native call, and
3004           also before managed calls for wrappers called from unmanaged code to
3005           go into managed code.
3006         * object.h: Added new field in MonoThread to keep track of interruption
3007           requests.
3008
3009 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3010
3011         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3012         calls.
3013
3014 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3015
3016         * appdomain.c:
3017         * assembly.c:
3018         * gc.c:
3019         * locales.c:
3020         * mono-config.c:
3021         * rand.c: getenv -> g_getenv (windows!)
3022
3023         * process.c: complete_path is also used on non-windows platforms.
3024
3025 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3026
3027         * icall.c: new signature for Process_Start.
3028
3029         * process.[ch]: new signature for Process_Start. If we're on windows
3030         and UseShellExecute is false, we have to search for the program by
3031         ourselves if we don't get a full path.
3032
3033 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3034
3035         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3036         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3037
3038 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3039
3040         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3041         Fixes bug #58373.
3042
3043 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3044
3045         * process.c: use double quotes to quote program name and arguments on
3046         windows. Fixes bug #58575.
3047
3048 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3049
3050         * file-io.c: don't return "." and ".." when using windows Find*File.
3051
3052 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3053
3054         * marshal.c: Don't pass wrappers to message init because method 
3055         addressed used to lookup metadata. part of remoting[2|3] fix.
3056
3057 2004-05-15  Jackson Harper  <jackson@ximian.com>
3058
3059         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3060         path is essentially the same as MONO_PATH except that it points to
3061         GACs instead of lib directories.
3062         * loader.h: The user gac is gone so we dont need function to
3063         enable/disable it.
3064         * mono-config.c: user gac option is now gone.
3065         
3066 2004-05-15  Jackson Harper  <jackson@ximian.com>
3067
3068         * culture-info.h: Make defines more consistent, add calendar data
3069         to the culture info table.
3070         * culture-info-tables.h: Add basic calendar data. Basically
3071         everyone gets default gregorian until all the data is
3072         updated.
3073         * locales.c: Use the new consistent defines. Set calendar data for
3074         culture info objects.
3075         * object.h: add a field for calendar data to CultureInfo
3076         
3077 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3078
3079         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3080         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3081         a signature.
3082         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3083         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3084         an extra param that is the pointer of the method to invoke. The IL for
3085         the invoke method is no longer specific to the method, but to the
3086         signature of the method. Thus, we can share the same code for multiple
3087         methods. This reduces the number of methods that have to be compiled.
3088
3089 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3090
3091         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3092
3093         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3094
3095         * icall.c: Optimize Buffer.BlockCopy.
3096
3097 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3098
3099         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3100         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3101         quote). Changed them to "MMMM yyyy".
3102
3103 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3104
3105         * rand.c
3106         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3107
3108 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3109
3110         * reflection.h: Updated after changes to managed structures.
3111
3112         * appdomain.c: Bump corlib version.
3113
3114 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3115
3116         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3117         windows.
3118
3119 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3120
3121         * Makefile.am: link to ../os/libmonoos.la on windows.
3122
3123         * assembly.c:
3124                 -If MONO_DEBUG, warn about non-existing directories in
3125                 MONO_PATH.
3126                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3127                 compile time variable.
3128                 -Removed init_default_path and call mono_set_rootdir from
3129                 libmonoos.a instead (windows only).
3130
3131         * assembly.h: declare mono_assembly_getrootdir().
3132
3133         * domain.c:
3134         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3135
3136         * loader.c: s/getenv/g_getenv/
3137
3138 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3139
3140         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3141
3142         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3143
3144         * metadata.h: Add new marshalling conversions.
3145
3146         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3147         function.
3148
3149         * reflection.c (mono_reflection_get_type): Lookup the type in all
3150         modules of a multi-module assembly. Fixes #58291.
3151
3152 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3153
3154         * threads.c: Before aborting a background, set the StopRequested
3155         state.  This avoids throwing the Abort exception.
3156         In mono_thread_manage, don't continue with the shutdown until all
3157         aborted threads have actually stopped.
3158
3159 2004-05-10  Jackson Harper  <jackson@ximian.com>
3160
3161         * locales.c: Remove the modifier from culture names.
3162         
3163 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3164
3165         * Makefile.am: monosn is not installed any more. It has been deprecated
3166         in favor of sn.
3167
3168 2004-05-07  Jackson Harper  <jackson@ximian.com>
3169
3170         * locales.c
3171         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3172         Fix array construction, add bailout if the length is 0.
3173
3174 2004-05-07  Dick Porter  <dick@ximian.com>
3175
3176         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3177         machine doesn't have a DNS entry.  Patch by Urs Muff
3178         (umuff@quark.com), fixes bug 57928.
3179
3180 2004-05-06  Jackson Harper  <jackson@ximian.com>
3181
3182         * reflection.c: Handle null PublicTokens properly. alloc mem for
3183         assembly names culture so we dont crash when freeing it.
3184         
3185 2004-05-06  Jackson Harper  <jackson@ximian.com>
3186
3187         * assembly.c: Check the usergac when loading with partial names.
3188         
3189 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3190
3191         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3192         does nothing for now (not required for Linux/Windows) but the class
3193         library can call it (and a newer or modified runtime could need it).
3194         * icall.c: Registred icall.
3195
3196 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3197
3198         * loader.c: prints a message on module loading error we set MONO_DEBUG
3199         environment variable.
3200
3201 2004-05-05  Jackson Harper  <jackson@ximian.com>
3202
3203         * appdomain.c: Handle PublicKeyToken=null properly.
3204         
3205 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3206
3207         * environment.c|h: Added icall ves_icall_System_Environment_
3208         GetOSVersionString to get the current OS version as a string.
3209         * icall.c: Registred icall.
3210
3211 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3212
3213         * object.c: in mono_object_get_virtual_method(), take into account that
3214         non-virtual methods don't have a slot in the vtable. Check needed when
3215         the object is a proxy.
3216
3217 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3218
3219         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3220         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3221
3222         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3223
3224         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3225         passed when a valuetype is expected.
3226
3227         * object.c (mono_unhandled_exception): Only set the exit code if the
3228         exception happens in the main thread. Fixes thread5.exe.
3229
3230         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3231         invalid names. Fixes #58047.
3232
3233 2004-05-03  Jackson Harper  <jackson@ximian.com>
3234
3235         * assembly.c: This line was committed accidently and is unneeded.
3236         
3237 2004-05-03  Jackson Harper  <jackson@ximian.com>
3238
3239         * icall.c: Add new icall for Assembly::LoadWithPartialName
3240         * assembly.c/.h: new function that probes the GAC to load partial
3241         assembly names by Paolo Molaro.
3242         
3243 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3244
3245         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3246         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3247         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3248         full type name.
3249
3250 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3251
3252         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3253         * reflection.c: fix bug when parsing a full type name and Version is not
3254         the last thing in the string.
3255
3256 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3257
3258         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3259         crashes when it is freed.
3260
3261 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3262
3263         * assembly.c: print the compat warning to stderr.
3264
3265 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3266
3267         * assembly.c (mono_assembly_load_references): Add a compatibility
3268         hack to run old applications that might be still referencing the
3269         3300-based assemblies, only do this for System.xxx.
3270
3271 2004-05-01  Jackson Harper  <jackson@ximian.com>
3272
3273         * appdomain.c: If the culture is neutral we set it to "".
3274         
3275 2004-04-29  Jackson Harper  <jackson@ximian.com>
3276
3277         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3278
3279 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3280  
3281         * string-icalls.c: added low overhead function for copying chars
3282         * icall.c: added needed icall for the above function
3283  
3284 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3285
3286         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3287         Environment.GetLogicalDrives.
3288
3289 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3290
3291         * rand.c: try and talk to egd or prngd
3292         for random bytes if opening devices fail.
3293
3294 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3295
3296         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3297         alignment for the type using the native alignment of its members 
3298         instead of using klass->min_align.
3299
3300         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3301
3302 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3303
3304         * file-io.c:
3305         * socket-io.c: added check for sys/aio.h.
3306
3307 2004-04-28  Dick Porter  <dick@ximian.com>
3308
3309         * threads.c: Don't abort a thread thats already aborting, when
3310         terminating everything.
3311
3312 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3313
3314         * icall.c: added 2 new async calls for Socket.
3315
3316         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3317         IO on *nix systems.
3318
3319         * threadpool.c: removed unused variable.
3320
3321 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3322
3323         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3324
3325 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3326
3327         * locales.c: put back string_invariant_tolower () and
3328         string_invariant_toupper ().
3329
3330 2004-04-26 David Waite <mass@akuma.org>
3331
3332         * file-io.h:
3333         * socket-io.h:
3334         * threads.h:
3335         * unicode.h: remove comma from end of enumeration declarations
3336
3337 2004-04-26 David Waite <mass@akuma.org>
3338
3339         * debug-mono-symfile.h:
3340         * decimal.c:
3341         * mono_debug.h:
3342         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3343
3344
3345 2004-04-26  Jackson Harper  <jackson@ximian.com>
3346
3347         * appdomain.c: Increment version number.
3348         
3349 2004-04-26  Jackson Harper  <jackson@ximian.com>
3350
3351         * appdomain.c: Set assembly references public token value when
3352         PublicKeyToken is specified, not the hash_value. Free public token
3353         values when free assembly name data. Previously the public key
3354         token was hex decoded, however we are using hex encoded public key
3355         tokens, so this is not neccasary.
3356         * assembly.c: Lookup assemblies in the gac if their public token
3357         value is set. Add function to allow enabling user gac
3358         lookups. Specify whether or not the assembly was loaded from the
3359         GAC. Compare full assembly names when checking the cache for
3360         assemblies (Temporarily disabled see comment in code). Remove
3361         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3362         specifies trace-loader they get extra info to stdout on the
3363         loading of assemblies.
3364         * image.h: Add a field for an assembly references public token
3365         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3366         whether an assembly has been loaded from the GAC.
3367         * image.c: Remove a corlib -> mscorlib name mapping.
3368         * loader.h: Add function to enable/disable the user gac.
3369         * mono-config.c: Check if the usergac is enabled in the config
3370         file.
3371         * icall.c: New icall to determine whether or not an assembly has
3372         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3373         * tabldefs.h: Add constant for assemblyref flag that specifies a
3374         full public key is used instead of a public token.
3375         * reflection.c: Remove mscorlib -> corlib mappings. Set
3376         PublicTokenValue instead of hash value. This value is a hex
3377         string so it does not need to be expanded.
3378
3379 2004-04-26  Martin Baulig  <martin@ximian.com>
3380
3381         * mono-debug-debugger.c (mono_debugger_initialize): Set
3382         `mono_debugger_initialized' before calling mono_debug_lock().
3383
3384 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3385
3386         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3387           InternalToUpper/InternalToLower.
3388         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3389           removed invariant culture shortcut.  This is now done in managed code.
3390         * locales.c: (string_invariant_toupper/tolower) removed.
3391
3392 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3393
3394         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3395         Added Poll internal call.
3396
3397         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3398         call for Poll. Select was too heavy for polling a single socket.
3399
3400         * threadpool.[ch]: added mono_threadpool_cleanup.
3401         * threads.c: use it. Don't use Thread_Abort on windows.
3402
3403 2004-04-23  Martin Baulig  <martin@ximian.com>
3404
3405         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3406
3407 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3408
3409         * icall.c: Registred new icalls for key pair protection and added an
3410         icall for Environment.GetFolderPath on Windows.
3411         * security.c|h: Added new icalls for key pair protection.
3412
3413 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3414
3415         * socket-io.c: don't display the non-supported family warning for known
3416         families. Now this is not displayed on windows when checking support
3417         for IPv4/IPv6.
3418
3419 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3420
3421         * class.c: don't display the layout warning for static fields.
3422
3423 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3424
3425         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3426         * locales.c, locales.h: Added new icalls for culture-specific
3427         Char.ToLower and Char.ToUpper.
3428
3429 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3430
3431         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3432         by David Waite.
3433
3434 2004-04-20  Martin Baulig  <martin@ximian.com>
3435
3436         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3437         of the type name before passing it to mono_reflection_type_from_name().
3438
3439 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3440
3441         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3442         encodings here. Fixes #56965.
3443
3444 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3445
3446         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3447         fix test on strstr result not that I can see anything that
3448         relies on the result.
3449
3450 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3451
3452         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3453         Fixes #57081.
3454
3455         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3456
3457         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3458         function to determine which marshalling to use for strings. Fixes
3459         #56965.
3460
3461         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3462
3463         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3464
3465 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3466
3467         * icall.c: #include mono-config.h
3468
3469 2004-04-15  Jackson Harper  <jackson@ximian.com>
3470
3471         * culture-info-tables.h: Fix date formats for en-US culture.
3472         
3473 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3474
3475         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3476         ThreadPool.SetMinThreads.
3477         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3478         ThreadPool.SetMinThreads.
3479
3480 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3481
3482         * mono-config.c: also load the .config file in the directory
3483         where the assembly was found.
3484
3485 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3486
3487         * assembly.c: load per-assembly config files.
3488         * icall.c: decrapified code to get the config dir and moved to
3489         mono-config.c.
3490         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3491         per-assembly config files. When doing a dll map lookup give precedence
3492         to the per-assembly data.
3493
3494 2004-04-14  Martin Baulig  <martin@ximian.com>
3495
3496         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3497         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3498         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3499
3500         * mono-debugger-debugger.c: While the debugger is locked, remember
3501         whether the symbol tables have changes and send one single
3502         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3503
3504 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3505
3506         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3507
3508         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3509         function.
3510
3511         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3512         account when marshalling string arrays. Fixes #56965.
3513
3514 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3515
3516         * icall.c: Add new icalls mapping for security.
3517         * security.c|h: Add internal calls for WindowsIdentity,
3518         WindowsImpersonationContext and WindowsPrincipal.
3519
3520 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3521
3522         * class.c: Added comment to ensure the System.MonoDummy class
3523         is removed when no longer necessary
3524
3525 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3526
3527         * appdomain.c: Pass arguments to the bootstraping exceptions to
3528         minimize JITed methods at boot
3529
3530         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3531         second string to be null.
3532
3533         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3534         Change the protocol to minimize the JIT methods at startup.  Now
3535         it Returns the internal codepage, if the value of "int_code_page"
3536         is 1 at entry, and we can not compute a suitable code page
3537         number, returns the code page as a string.
3538
3539 2004-04-13  Jackson Harper  <jackson@ximian.com>
3540
3541         * culture-info-tables.h: Fix number of decimal digits for all
3542         english locales.
3543
3544 2004-04-13  Jackson Harper  <jackson@ximian.com>
3545
3546         * icall.c: Clairfy out of sync error message. It is not always
3547         your corlib that is out of sync.
3548
3549 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3550
3551         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3552         properties when only the set accessor is overriden. Fixes #55874.
3553
3554 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3555
3556         * assembly.c (mono_assembly_load_references): Make this thread safe.
3557         Fixes #56327.
3558
3559 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3560
3561         * monosn.c: Add missing initialization calls.
3562
3563 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3564
3565         * locales.c:
3566         ves_icall_System_Globalization_CultureInfo_construct_number_format
3567         Fix g_assert so it compiles on fussier compilers re int/ptr
3568         mismatch
3569
3570 2004-04-08  Dick Porter  <dick@ximian.com>
3571
3572         * socket-io.h:
3573         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3574         53992.  Also rearrange the code so that the internal calls return
3575         an error value and exceptions are thrown from managed code.
3576
3577         * icall.c: Add type info to the socket icalls.
3578
3579 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3580
3581         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3582         owes me a beer.
3583
3584 2004-04-07  Martin Baulig  <martin@ximian.com>
3585
3586         * class.c (mono_class_from_generic_parameter): Don't default
3587         `klass->parent' to `mono_defaults.object_type'.
3588
3589 2004-04-07  Martin Baulig  <martin@ximian.com>
3590
3591         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3592         `param->pklass->reflection_info'.       
3593
3594 2004-04-07  Jackson Harper  <jackson@ximian.com>
3595
3596         * culture-info-tables.h: Fix date separator symbol.
3597         
3598 2004-04-07  Martin Baulig  <martin@ximian.com>
3599
3600         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3601         from System.Type to System.MonoType.
3602
3603 2004-04-07  Martin Baulig  <martin@ximian.com>
3604
3605         * reflection.h
3606         (MonoReflectionGenericParam): Added `has_reference_type' and
3607         `has_value_type' fields.
3608
3609         * reflection.c (mono_image_get_generic_param_info): Encode the
3610         correct flags if we have the `class' or `struct' constraint.
3611
3612 2004-04-07  Martin Baulig  <martin@ximian.com>
3613
3614         * reflection.h
3615         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3616
3617 2004-04-07  Jackson Harper  <jackson@ximian.com>
3618
3619         * appdomain.c: Revert extra patches, just wanted to bump the
3620         version number.
3621         
3622 2004-04-07  Jackson Harper  <jackson@ximian.com>
3623
3624         * Makefile.am: Add culture-info private headers.
3625         * icall.c: Add new icalls for contructing locales.
3626         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3627         * locales.h: Declare new culture info construction methods.
3628         * object.h: Add new fields used to avoid the CultureMap to
3629         MonoCultureInfo.
3630         * culture-info.h: Definition of structs used in the culture info
3631         tables.
3632         * culture-info-tables.h: Autogenerated tables that contain culture
3633         info data. This file was generated with the locale-builder tool.
3634         * appdomain.c: Incement corlib version number.
3635         
3636 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3637
3638         * appdomain.c: (mono_runtime_init) move mono_thread_init
3639         to before mono_object_new calls so critical sections
3640         are initialized before use.
3641
3642 2004-04-07  Martin Baulig  <martin@ximian.com>
3643
3644         * icall.c
3645         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3646         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3647         (ves_icall_MonoGenericParam_initialize): Removed.
3648         (monogenericparam_icalls): Removed.
3649         (generictypeparambuilder_icalls): Added new table for
3650         System.Reflection.Emit.GenericTypeParameterBuilder.
3651
3652         * reflection.c
3653         (mono_reflection_define_generic_parameter): Removed.
3654         (mono_reflection_initialize_generic_parameter): This is now called
3655         from GenericTypeParameterBuilder's .ctor.
3656
3657 2004-04-06  Martin Baulig  <martin@ximian.com>
3658
3659         * class.c (mono_class_init): Don't inflate nested classes in a
3660         generic instance.
3661         (mono_type_get_name_recurse): Include the generic arguments for
3662         generic instances and generic type declarations.
3663         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3664         (_mono_class_get_instantiation_name): Removed.
3665         (mono_class_create_generic): Always use `gklass->name' as our name.
3666
3667         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3668
3669         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3670         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3671         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3672         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3673         closed generic methods here.
3674
3675         * reflection.c
3676         (mono_reflection_generic_inst_get_nested_types): Removed.
3677         (inflate_mono_method): Copy the generic parameters from the
3678         MonoMethodHeader into out MonoGenericMethod.
3679
3680 2004-04-06  Martin Baulig  <martin@ximian.com>
3681
3682         * row-indexes.h
3683         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3684
3685         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3686
3687         * reflection.c (build_compressed_metadata): If we have any entries
3688         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3689         set the header version to 1.1.
3690
3691 2004-04-06  Martin Baulig  <martin@ximian.com>
3692
3693         * class.c (mono_class_init): If we're a generic instance,
3694         initialize our nested classes, too.
3695         (_mono_class_get_instantiation_name): Deal with the new `!%d'
3696         suffix. 
3697
3698 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3699
3700         * process.c: quote the argument passed to the shell on windows.
3701
3702 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
3703
3704         * threads.c (mono_alloc_special_static_data): Allow this to be
3705         called during startup.
3706
3707 2004-04-02  Martin Baulig  <martin@ximian.com>
3708
3709         * icall.c
3710         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
3711
3712 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
3713
3714         * icall.c: Fix build.
3715
3716 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
3717
3718         * Makefile.am: Added security.c|h.
3719         * icall.c: Added icall for get_UserName;
3720         * security.c: New file for security related icalls. Added function
3721         get_UserName for System.Environment (fix #56144).
3722         * security.h: New. Header file for security.c
3723
3724 2004-04-02  Dick Porter  <dick@ximian.com>
3725
3726         * icall.c: Deleted the icalls that were obsoleted some time ago
3727         by the ICU string code, and which were mixed into the icall
3728         rearranging.  Fixes bug 55969.
3729
3730         * string-icalls.h: 
3731         * string-icalls.c: Deleted the code that those icalls reference.
3732
3733 2004-04-01  Martin Baulig  <martin@ximian.com>
3734
3735         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
3736
3737         * class.c (mono_class_from_generic_parameter): Don't set 
3738         TYPE_ATTRIBUTE_INTERFACE.
3739         (my_mono_class_from_generic_parameter): Likewise.
3740
3741 2004-04-01  Martin Baulig  <martin@ximian.com>
3742
3743         * loader.c (find_method): Added an optional `MonoClass *ic'
3744         argument to search in a specific interface.
3745         (mono_get_method_constrained): New public function.
3746
3747 2004-04-01  Martin Baulig  <martin@ximian.com>
3748
3749         * reflection.c (mono_image_get_generic_field_token): Use the
3750         `handleref' cache here.
3751
3752 2004-04-01  Martin Baulig  <martin@ximian.com>
3753
3754         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
3755
3756         * reflection.c (create_generic_typespec): Use the `typespec' hash
3757         here, not the `typeref' one.    
3758
3759 2004-04-01  Martin Baulig  <martin@ximian.com>
3760
3761         * class.c (mono_class_inflate_generic_type): Moved the
3762         functionality into a new static inflate_generic_type() which
3763         returns NULL if it didn't do anything.  Only increment the
3764         `mono_stats.inflated_type_count' if we actually inflated
3765         something.
3766         (mono_class_get_full): Check the classes type to see whether we
3767         need to inflate it; also inflate MONO_TYPE_(M)VAR.
3768
3769 2004-04-01  Jackson Harper  <jackson@ximian.com>
3770
3771         * reflection.c: Set culture for assembly references.
3772         
3773 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
3774
3775         * reflection.[ch], icall.[ch], Fix support for pinning variables.
3776
3777 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3778
3779         * assembly.c:
3780         (do_mono_assembly_open): the critical section also covers
3781         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
3782
3783 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3784
3785         * threads.c:
3786         (mono_manage_threads): abort the background threads when finishing.
3787         Fixes bug #47232.
3788
3789 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3790
3791         * gc.c: only close the done_event handle if there was no timeout.
3792         C-ified comments.
3793
3794 2004-03-30  Martin Baulig  <martin@ximian.com>
3795
3796         * icall.c (icall_entries): It's called "System.Activator", not
3797         "System.Activation".    
3798
3799 2004-03-30  Martin Baulig  <martin@ximian.com>
3800
3801         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
3802         (mono_class_create_from_typespec): Likewise.
3803
3804 2004-03-30  Martin Baulig  <martin@ximian.com>
3805
3806         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
3807         `has_ctor_constraint' and `initialized'.
3808
3809 2004-03-30  Martin Baulig  <martin@ximian.com>
3810
3811         * reflection.c (encode_new_constraint): New static function to add
3812         the constructor constraint attribute to a type parameter.
3813         (encode_constraints): Call encode_new_constraint() if necessary.
3814
3815         * reflection.h
3816         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
3817
3818         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
3819         
3820 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
3821
3822         * reflection.c, icall.c: add support for pinning variables. 
3823
3824 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
3825
3826         * marshal.c (mono_marshal_get_managed_wrapper):
3827         init bool local with zero rather than null.
3828
3829 2004-03-29  Martin Baulig  <martin@ximian.com>
3830
3831         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
3832         the "official" behavior here.
3833         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
3834
3835 2004-03-29  Martin Baulig  <martin@ximian.com>
3836
3837         * icall.c: Reflect latest API changes.
3838
3839 2004-03-29  Martin Baulig  <martin@ximian.com>
3840
3841         * loader.c (mono_get_method_from_token): Also call
3842         mono_metadata_load_generic_params () for abstract and interface
3843         methods; replace the type arguments in the method signature with
3844         the ones which are loaded from the metadata.
3845
3846 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
3847
3848         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
3849         of the lock is not the current thread. MS.NET don't do it, in spite of
3850         what the documentation says. See bug #56157.
3851
3852 2004-03-28  Martin Baulig  <martin@ximian.com>
3853
3854         * class.c (mono_class_init): Don't call init_properties() and
3855         init_events() for generic instances; set `prop->parent' when
3856         inflating properties.
3857
3858         * reflection.c (mono_generic_inst_get_object): Call
3859         `mono_class_init (ginst->klass)'.
3860         (mono_type_get_object): Only create a MonoGenericInst if your
3861         generic type is a TypeBuilder.
3862         (do_mono_reflection_bind_generic_parameters): Only set
3863         `ginst->is_dynamic' if our generic type is a TypeBuilder.
3864
3865 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
3866
3867         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
3868         Fixes #56091.
3869
3870 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3871
3872         * icall.c: added Kill_internal icall.
3873         * process.[ch]: added Kill_internal icall.
3874
3875 2004-03-25  Martin Baulig  <martin@ximian.com>
3876
3877         * class.h (MonoStats): Added `generic_instance_count',
3878         `inflated_method_count', `inflated_type_count' and
3879         `generics_metadata_size'.       
3880
3881 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3882
3883         * reflection.c: no warnings now.
3884
3885 2004-03-25  Martin Baulig  <martin@ximian.com>
3886
3887         * class.c (mono_class_get_full): New public function; does a
3888         mono_class_get(), but also takes a `MonoGenericContext *'.
3889
3890         * loader.c (mono_field_from_memberref): Renamed to
3891         `field_from_memberref', made static and added `MonoGenericContext *'
3892         argument.
3893         (mono_field_from_token): Added `MonoGenericInst *' argument.
3894         (method_from_memberef): Likewise.
3895         (mono_get_method_from_token): Likewise.
3896         (mono_get_method_full): New public function; does a
3897         mono_get_method(), but also takes a `MonoGenericContext *'.
3898
3899         * verify.c (mono_method_verify): Get the method's generic context
3900         and pass it to mono_field_from_token(), mono_get_method_full() and
3901         mono_class_get_full().
3902
3903 2004-03-25  Martin Baulig  <martin@ximian.com>
3904
3905         * class.c (mono_class_inflate_generic_type): Take a
3906         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
3907         `MonoGenericMethod *'.
3908
3909 2004-03-25  Martin Baulig  <martin@ximian.com>
3910
3911         * loader.h (MonoMethodInflated): Store the MonoGenericContext
3912         instead of the MonoGenericMethod here.
3913
3914 2004-03-25  Martin Baulig  <martin@ximian.com>
3915
3916         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
3917         each time we create a new MonoGenericInst, we also create a new
3918         context which points back to us.
3919
3920         * class.c (inflate_method): Use `ginst->context' instead of
3921         creating a new context.
3922
3923         * loader.c (method_from_memberref): Use
3924         `klass->generic_inst->context' instead of creating a new context.
3925
3926 2004-03-25  Martin Baulig  <martin@ximian.com>
3927
3928         * class.h (MonoGenericContext): New struct.
3929         (MonoGenericMethod): Removed `generic_inst'.
3930
3931         * class.c (mono_class_inflate_generic_method): Take a
3932         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
3933
3934 2004-03-25  Martin Baulig  <martin@ximian.com>
3935
3936         * loader.h (MonoMethodInflated): New typedef.
3937
3938         * metadata.h (MonoMethodSignature): Removed `gen_method', make
3939         `generic_param_count' consume just 30 bits, added `is_inflated'
3940         and `has_type_parameters' flags (one bit each).
3941
3942         * class.c (mono_class_inflate_generic_method): Create a
3943         MonoMethodInflated instead of a MonoMethodNormal and set
3944         `is_inflated' in the method signature.
3945
3946         * class.h (MonoGenericMethod): Removed `generic_method'.
3947
3948 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
3949
3950         * image.c: Make sure the name of a MonoImage is always an absolute path.
3951           This fixes bug #54415.
3952
3953 2004-03-24  Martin Baulig  <martin@ximian.com>
3954
3955         * class.c (mono_class_setup_vtable): If we're a generic instance,
3956         use our generic type's vtable size.
3957
3958 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
3959
3960         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
3961         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
3962         problems.
3963
3964 2004-03-23  Martin Baulig  <martin@ximian.com>
3965
3966         * class.h (MonoDynamicGenericInst): Added `int count_events' and
3967         `MonoEvent *events'.
3968
3969         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
3970         (typebuilder_icalls): Added "get_event_info"; calls
3971         mono_reflection_event_builder_get_event_info(). 
3972
3973         * reflection.c (mono_reflection_generic_inst_initialize): Added
3974         `MonoArray *events'.
3975         (mono_reflection_event_builder_get_event_info): New function.
3976
3977 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
3978
3979         * object.h: add mono_type_initialization_init
3980
3981         * object.c (mono_runtime_class_init): 
3982         implement class constructor synchronization rules
3983         to cope with threading issues.  
3984         add mono_type_initialization_init
3985
3986         * appdomain.c (mono_runtime_init): call 
3987         mono_type_initialization_init
3988
3989         * class.h: removing initializing field from MonoVTable
3990
3991 2004-03-23  Martin Baulig  <martin@ximian.com>
3992
3993         * class.c (my_mono_class_from_generic_parameter): Use
3994         `param->name' if it's not NULL. 
3995
3996 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
3997
3998         * class.c: do not insert non-virtual methods in the vtable.
3999         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4000         that means the method is non-virtual. This never would have
4001         happened before.
4002
4003 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4004
4005         * profiler.c: Added lock for accessing coverage_hash.
4006
4007 2004-03-22  Martin Baulig  <martin@ximian.com>
4008
4009         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4010         `method->method->signature->generic_param_count != 0' to make it
4011         work for interface methods.
4012
4013 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4014
4015         * process.c: quote the string passed to the shell using g_shell_quote.
4016
4017 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4018
4019         * threads.c:
4020         (mono_threads_manage): don't remove the finalizer thread and self
4021         from the threads hash table so that mono_thread_manage can be called
4022         more than once.
4023
4024 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4025
4026         * process.c: quote the arguments when UseShellExecute is true. Fixes
4027         bug #55790.
4028
4029 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4030
4031         * threads.c: set mono_thread_detach as a cleanup routine for every
4032         thread. This way it's always executed upon thread termination, either
4033         aborted or finished normally. No more xsp hangs!
4034
4035 2004-03-17  Martin Baulig  <martin@ximian.com>
4036
4037         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4038         `int count_nested' and a `MonoType **nested'.
4039
4040         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4041         most of the functionality into a new static
4042         do_mono_reflection_bind_generic_parameters() and don't take a
4043         `MonoType *nested_in' argument any more.  Don't compute nested
4044         types here.
4045         (mono_reflection_generic_inst_get_nested_types): New public method
4046         to get nested types.
4047
4048         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4049         we're a nested class.
4050
4051         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4052         mono_reflection_generic_inst_get_nested_types() to compute the
4053         nested types.
4054
4055 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4056
4057         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4058         descriptive error message under windows.
4059         
4060 2004-03-17  Martin Baulig  <martin@ximian.com>
4061
4062         * class.c (dup_type): Added `const MonoType *original' argument;
4063         copy the attrs from the original type.
4064
4065 2004-03-17  Martin Baulig  <martin@ximian.com>
4066
4067         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4068         `m->generic_inst_cache' here.
4069
4070 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4071
4072         * exception.h exception.c: Add stack_overflow_exception.
4073
4074 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4075
4076         * threadpool.c:
4077         (overlapped_callback): call SetEvent *after* invoking the callback.
4078         No need to call CloseHandle.
4079
4080 2004-03-16  Martin Baulig  <martin@ximian.com>
4081
4082         * reflection.c (mono_image_get_fieldref_token): Take a
4083         `MonoReflectionField *' instead of a `MonoClassField *' and a
4084         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4085
4086 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4087
4088         * appdomain.c: don't add the culture to the filename we're looking for
4089         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4090
4091 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4092
4093         * locales.c: don't ignore symbols when doing case insensitive compares.
4094         Thanks Dick! Fixes bug #54046.
4095
4096         * threads.c: surround 'threads' usage with enter/leave in
4097         mono_thread_manage.
4098
4099 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4100
4101         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4102         implicitly marshalled as [Out]. Fixes #55450.
4103
4104         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4105         an exception.
4106
4107 2004-03-16  Martin Baulig  <martin@ximian.com>
4108
4109         * class.c (mono_class_from_generic_parameter): Use the actual
4110         parameter name. 
4111
4112 2004-03-16  Martin Baulig  <martin@ximian.com>
4113
4114         * reflection.c (type_get_signature_size): New static function.
4115         Compues the size of the type in a method signature.
4116         (method_get_signature_size): New static function; calls
4117         type_get_signature_size() to compute the actual size of the
4118         method's signature.
4119         (method_encode_signature): Use method_get_signature_size() to get
4120         the signature's size rather than using `nparams * 10'.
4121
4122 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4123
4124         * file-io.h: define here WapiOverlapped on windows. I don't want the
4125         regular OVERLAPPED one.
4126
4127         * file-io.c:
4128         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4129         Disabling AIO on windows.
4130
4131 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4132
4133         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4134         bug #55385.
4135
4136 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4137
4138         * appdomain.c: upgraded corlib version.
4139
4140         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4141         and BeginWrite. Allow opening files for asynchrnous operations.
4142
4143         * file-io.h: new struct that maps FileStreamAsyncResult.
4144         * icall.c: added new icalls.
4145         * process.[ch]: support setting child process environment variables
4146         and use the SHELL or COMSPEC when UseShellExecute is true.
4147
4148         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4149         callback for async. IO is here and also BindHandle.
4150
4151         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4152         from here.
4153
4154 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4155
4156         * reflection.c (create_custom_attr): Allow len == 0.
4157
4158         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4159         computation on big-endian machines.
4160
4161 2004-03-13  Martin Baulig  <martin@ximian.com>
4162
4163         * class.h (MonoGenericInst): Added `int count_ifaces'.
4164
4165         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4166         `ginst->count_ifaces' instead `klass->interface_count' since we
4167         may get called before the vtable is created.
4168
4169         * loader.c (mono_method_get_param_names): If we're a generic
4170         instance, return and don't initialize the class.
4171
4172         * reflection.c (mono_reflection_setup_generic_class): Don't call
4173         ensure_runtime_vtable().
4174         (mono_reflection_bind_generic_parameters): Set
4175         `ginst->count_ifaces'.
4176
4177 2004-03-11  Jackson Harper <jackson@ximian.com>
4178
4179         * icall.c:
4180         * unicode.c:
4181         * unicode.h: Remove unused System.Char icalls.
4182         
4183 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4184
4185         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4186         code when we P/Invoke the first library in Windows.Forms, instead
4187         of when we first open the assembly.
4188
4189         * assembly.c: Drop the lookup from here.
4190
4191 2004-03-10  Martin Baulig  <martin@ximian.com>
4192
4193         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4194         class for properties, fields and events.  Finally fixes #54945.
4195
4196 2004-03-10  Martin Baulig  <martin@ximian.com>
4197
4198         * metadata.c (mono_metadata_class_equal): New static function;
4199         checks whether two generic instances or two generic parameters are
4200         equal.
4201         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4202         compare classes.        
4203
4204 2004-03-10  Martin Baulig  <martin@ximian.com>
4205
4206         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4207
4208         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4209         argument and write it into the `reflection_info' field.
4210
4211         * icall.c
4212         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4213         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4214
4215 2004-03-09  Jackson Harper  <jackson@ximian.com>
4216
4217         * char-conversions.h: use 8 bits for numeric data its all we need
4218         * icall.c: numeric data is only 8 bits now.
4219
4220 2004-03-09  Martin Baulig  <martin@ximian.com>
4221
4222         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4223
4224         * class.c (init_properties, init_events): Initialize the new
4225         `parent' field.
4226
4227         * reflection.c (typebuilder_setup_properties): Likewise.
4228         (typebuilder_setup_events): Likewise.
4229
4230         * reflection.h (MonoEventInfo): Replaced `parent with
4231         `declaring_type' and `reflected_type'.
4232
4233         * icall.c (ves_icall_get_property_info): Distinguish between
4234         declaring and reflected type.
4235         (ves_icall_get_event_info): Likewise.
4236
4237 2004-03-09  Martin Baulig  <martin@ximian.com>
4238
4239         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4240         (ves_icall_Type_GetField): Correctly set field->klass.
4241
4242 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4243
4244         * loader.h: Fix warning.
4245
4246 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4247
4248         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4249         library routine if present.  Notice that it will still continue
4250         executing even if its missing, for those working on the Gtk#
4251         edition of Windows.Forms.
4252
4253         * assembly.c (do_mono_assembly_open): If loading the
4254         System.Windows.Forms call mono_loader_wini_init.
4255
4256 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4257
4258         * class.h: Added MonoRemoteClass struct.
4259         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4260         function for MonoStrings.
4261         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4262         Added internal call for getting the proxy type.
4263         * marshal.c: Get the type of transparent proxies from its remote_class.
4264         Added methods that generate the IL for type checks and casts:
4265         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4266         mono_marshal_get_proxy_cancast.
4267         * marshal.h: Declaration of the previous new methods.
4268         * object.c: Added new moethods for creating and updating MonoRemoteClass
4269         instances: mono_remote_class, mono_upgrade_remote_class, 
4270         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4271         * verify.c: FIx transparent_proxy_fields layout.
4272         * appdomain.c: Bump corlib version.
4273
4274 2004-03-04  Jackson Harper  <jackson@ximian.com>
4275
4276         * icall.c: Add icall to access char conversion tables.
4277         * char-conversions.h: Character conversion tables.
4278         * Makefile.am: Add char-conversions.h private header file.
4279         
4280 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4281
4282         * appdomain.c (unload_thread_main): Increase unloading timeout to
4283         10 sec as a temporary workaround for Nant problems.
4284
4285 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4286
4287         * gc.c: Add checks for GC_enable and GC_disable.
4288
4289         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4290         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4291         (bug #54988).
4292         
4293 2004-02-27  Martin Baulig  <martin@ximian.com>
4294
4295         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4296         `MonoReflectionType *' instead of a `MonoType *'.
4297
4298 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4299
4300         * gc.c (run_finalize): Avoid finalizing the object representing the
4301         finalizer thread.
4302         (finalizer_thread): Fix warning.
4303
4304 2004-02-25  Martin Baulig  <martin@ximian.com>
4305
4306         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4307         argument for nested types.
4308         (mono_class_create_generic): Added support for nested generictypes.
4309
4310         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4311         `GList *nested'.
4312
4313         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4314
4315         * reflection.c (method_encode_signature): Increase the minimum
4316         value of `size' from 10 to 11.
4317         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4318         and `MonoType **types' arguments instead of the `MonoArray
4319         *types'; added `MonoType *nested_in'.  Recursively instantiate
4320         nested classes. 
4321
4322 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4323
4324         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4325         stack_overflow_ex members which are used by exception handling.
4326
4327         * appdomain.c (mono_runtime_init): Initialize the new members.
4328
4329         * gc.c (mono_gc_enable): New helper function.
4330         * gc.c (mono_gc_disable): New helper function.
4331
4332 2004-02-23  Martin Baulig  <martin@ximian.com>
4333
4334         * icall.c: I must have been really stupid - make it actually work
4335         this time ;-)
4336
4337 2004-02-23  Martin Baulig  <martin@ximian.com>
4338
4339         * loader.c (method_from_memberref): Only inflate the method if
4340         it's in another klass.
4341
4342 2004-02-23  Martin Baulig  <martin@ximian.com>
4343
4344         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4345         (mono_class_init): If we're a generic instance and an interface,
4346         compute `class->interface_id'; also create `class->interfaces'
4347         here and inflate them.
4348
4349         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4350         `ginst->is_open'.
4351         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4352
4353         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4354
4355 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4356
4357         * reflection.c (method_encode_code): Improved the error message
4358         generated by the exception.
4359
4360 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4361
4362         * icall.c: Martin did not do what he said in the ChangeLog for
4363         2004-02-18, but put back the changes for properties and events.
4364         Commenting those changes out again and adding comment to bug #54518.
4365         
4366         * process.c: removed warning.
4367
4368 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4369
4370         * marshal.c (emit_struct_conv): Print an error message instead of
4371         asserting when a type does not have the StructLayout attribute.
4372
4373 2004-02-20  Martin Baulig  <martin@ximian.com>
4374
4375         * reflection.c (mono_type_get_object): Also use the cache for
4376         generic instances.
4377         (mono_reflection_bind_generic_parameters): Always compute
4378         `ginst->ifaces'.        
4379
4380 2004-02-20  Martin Baulig  <martin@ximian.com>
4381
4382         * class.h (MonoGenericMethod): Removed `klass'.
4383
4384         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4385         *klass' argument.
4386
4387 2004-02-20  Martin Baulig  <martin@ximian.com>
4388
4389         * reflection.c (method_encode_methodspec): Actually use the
4390         uninflated signature for the memberref.
4391
4392 2004-02-20  Martin Baulig  <martin@ximian.com>
4393
4394         * class.h (MonoGenericMethod): Removed `declaring'.
4395
4396         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4397         is NULL, compute it here.
4398
4399 2004-02-20  Martin Baulig  <martin@ximian.com>
4400
4401         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4402
4403         * metadata.c (mono_metadata_generic_inst_hash): New method.
4404         (mono_metadata_generic_inst_equal): New method.
4405
4406         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4407         `klass->image->generic_inst_cache' cache to avoid creating
4408         duplicate MonoGenericInst's.
4409
4410         * class.c (mono_class_inflate_generic_type): Use the cache.
4411
4412 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4413
4414         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4415
4416 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4417
4418         * icall.c: added Socket.WSAIoctl icall.
4419
4420         * socket-io.[ch]: implemented
4421         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4422
4423 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4424
4425         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4426
4427 2004-02-18  Urs C Muff  <umuff@quark.com>
4428
4429         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4430         this work on PPC and other big-endian architectures.
4431
4432         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4433         fields with an underscore to make sure they're only accessed by
4434         the read32() macro.
4435
4436 2004-02-18  Martin Baulig  <martin@ximian.com>
4437
4438         * icall.c: Put the klass->refclass changes back for methods and
4439         fields, but not for properties and events.  We're currently not
4440         distinguishing between DeclaringType and ReflectedType for
4441         properties and events, that's what caused the regressions.
4442
4443 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4444
4445         * object.c:
4446         (mono_async_result_new): the handle can be NULL.
4447
4448         * threadpool.c: Use an event instead of a semaphore, don't initialize
4449         it until needed. This saves quite a few semaphores from being created
4450         when using the threadpool.
4451
4452 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4453
4454         * object.c (mono_string_is_interned_lookup): Fix interning of long
4455         strings. Fixes #54473.
4456
4457         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4458
4459         * icall.c: Revert the klass->refclass changes since they introduce
4460         regressions (bug #54518).
4461
4462 2004-02-18  Martin Baulig  <martin@ximian.com>
4463
4464         * class.c (mono_class_init): If we're a generic instance and don't
4465         come from a TypeBuilder, inflate our members here.
4466         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4467         (mono_class_create_generic): New public method.
4468         (mono_class_initialize_generic): Removed.
4469         (get_instantiation_name): Renamed to
4470         _mono_class_get_instantiation_name() and made it public.
4471
4472 2004-02-18  Martin Baulig  <martin@ximian.com>
4473
4474         * class.c (mono_class_inflate_generic_type): Clear the new
4475         instance's `nginst->klass' when inflating a generic instance.
4476         (mono_class_is_subclass_of): Added (basic) support for generic
4477         instances.
4478
4479 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4480
4481         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4482         MonoMempool to hold compiled native code.
4483
4484 2004-02-17  Martin Baulig  <martin@ximian.com>
4485
4486         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4487         `properties'.
4488
4489         * reflection.c (mono_reflection_generic_inst_initialize): Added
4490         `MonoArray *properties' argument.
4491
4492         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4493
4494 2004-02-17  Martin Baulig  <martin@ximian.com>
4495
4496         * icall.c (ves_icall_Type_GetFields): Renamed to
4497         ves_icall_Type_GetFields_internal() and added a
4498         `MonoReflectionType *rtype' argument; pass it to
4499         mono_field_get_object() to set the field's "reflected" type.
4500         (ves_icall_Type_GetConstructors): Likewise.
4501         (ves_icall_Type_GetEvents): Likewise.
4502         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4503         argument; pass it to mono_method_get_object() to set the method's
4504         "reflected" type.       
4505
4506 2004-02-17  Martin Baulig  <martin@ximian.com>
4507
4508         * class.h (MonoDynamicGenericInst): New type.
4509         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4510
4511         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4512         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4513         (ves_icall_MonoGenericInst_GetFields): New interncall.
4514
4515         * class.c (mono_class_from_generic): Don't call
4516         mono_class_initialize_generic() if this is a dynamic instance;
4517         ie. it's being created from a TypeBuilder.
4518         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4519         `class->byval_arg.type'.
4520
4521         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4522         to `inflate_method' and made static.
4523         (mono_reflection_inflate_field): Removed.
4524         (mono_reflection_generic_inst_initialize): New public method.
4525
4526         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4527         `ctors' and `fields'; added `initialized'.
4528
4529 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4530
4531         * debug-helpers.c (mono_method_full_name): Fix output for empty
4532         namespaces.
4533
4534 2004-02-12  Martin Baulig  <martin@ximian.com>
4535
4536         * class.h (MonoClassField): Added `MonoType *generic_type'.
4537
4538         * reflection.c (mono_image_get_fieldref_token): Added support for
4539         instantiated generic types.
4540         (field_encode_inflated_field): Removed.
4541         (mono_image_get_inflated_field_token): Removed.
4542         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4543
4544         * reflection.h (MonoReflectionInflatedField): Removed.
4545
4546 2004-02-12  Martin Baulig  <martin@ximian.com>
4547
4548         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4549         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4550
4551         * reflection.c (mono_image_get_methodspec_token): Take a
4552         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4553         (mono_image_create_token): Check whether we have a
4554         `method->signature->gen_method' and call
4555         mono_image_get_methodspec_token() if appropriate.
4556         (inflated_method_get_object): Removed.
4557         (mono_reflection_bind_generic_method_parameters): Return a
4558         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4559         (mono_reflection_inflate_method_or_ctor): Likewise.
4560
4561         * reflection.h (MonoReflectionInflatedMethod): Removed.
4562
4563 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4564
4565         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4566         for custom valuetype marshalling.
4567
4568         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4569
4570 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4571
4572         * icall.c: fixed WSAGetLastError_internal name.
4573
4574 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4575
4576         * threads.c (mono_thread_attach): Allow this to be called multiple
4577         times for a thread.
4578         
4579         * threads.c (build_wait_tids): Do not wait for ourselves.
4580
4581         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4582         appdomain list is empty.
4583
4584         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4585         memory returned by mono_string_builder_to_utf16, since it points into
4586         managed memory. Thanks to Bernie Solomon for noticing this.
4587
4588         * icall.c: Add AppDomainSetup icalls.
4589
4590         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4591
4592         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4593         types.
4594
4595         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4596         custom attributes to the method_aux struct. Also fix array indexes etc.
4597
4598         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4599         
4600 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4601
4602         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4603         (both static and runtime) and reduce startup time.
4604
4605 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4606
4607         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4608         AsAny marshalling conversion instead of crashing.
4609
4610         * marshal.c: Fix warnings.
4611
4612 2004-02-09  Martin Baulig  <martin@ximian.com>
4613
4614         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4615
4616         * reflection.h (MonoReflectionInflatedMethod): Removed the
4617         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4618
4619         * reflection.c (method_encode_methodspec): Removed the `method'
4620         argument; we get it from `gmethod->declaring'.
4621         (inflated_method_get_object): Removed the `declaring' argument.
4622
4623 2004-02-09  Martin Baulig  <martin@ximian.com>
4624
4625         * class.h (MonoGenericMethod): New type.
4626         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4627         `generic_method'.
4628
4629         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4630         a `MonoGenericMethod *gen_method' one.
4631
4632         * class.c (mono_class_inflate_generic_type): Take an additional
4633         `MonoGenericMethod * argument.  This is only non-NULL if we're
4634         inflating types for a generic method.   
4635         (mono_class_inflate_generic_signature): Renamed to
4636         inflate_generic_signature() and made static; take a
4637         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4638         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4639         instead of a `MonoGenericInst *' one.
4640         (mono_class_inflate_generic_method): Likewise.
4641
4642         * reflection.c (encode_generic_method_sig): Take a
4643         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4644         (method_encode_methodspec): Likewise.
4645         (inflated_method_get_object): Likewise. 
4646
4647         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4648         field with a `MonoGenericMethod *gmethod' one.  
4649
4650 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4651
4652         * class.h (mono_class_has_parent): add parens to expansion
4653         so you can ! this.
4654
4655 2004-02-08  Martin Baulig  <martin@ximian.com>
4656
4657         * image.h (MonoImage): Removed `generics_cache'.
4658
4659         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4660         instead of a `MonoType *' argument; removed the `inflate_methods'
4661         argument.  Don't inflate methods here.
4662
4663         * loader.c (find_method): If it's a generic instance, call
4664         mono_class_init() on the `sclass->generic_inst->generic_type'.
4665
4666         * metadata.c (mono_type_size): Make this work on uninitialized
4667         generic instances; call it on the `ginst->generic_type's class.
4668
4669         * reflection.c (mono_reflection_bind_generic_parameters): Call
4670         mono_class_from_generic() to create the `ginst->klass'.
4671
4672 2004-02-08  Martin Baulig  <martin@ximian.com>
4673
4674         * class.h (MonoClass): Changed type of `generic_inst' from
4675         `MonoType *' to `MonoGenericInst *'.
4676
4677 2004-02-08  Martin Baulig  <martin@ximian.com>
4678
4679         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4680         mono_type_get_object(), this is now creating a `MonoGenericInst'
4681         for MONO_TYPE_GENERICINST.
4682         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4683         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4684
4685         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4686         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4687         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4688         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4689         and reflected type.
4690
4691         * reflection.h (MonoReflectionInflatedMethod): Removed
4692         `declaring_type' and `reflected_type'.
4693
4694 2004-02-08  Martin Baulig  <martin@ximian.com>
4695
4696         * class.h (MonoGenericInst): Added `MonoType *parent' and
4697         `MonoType **ifaces'.
4698
4699         * reflection.h (MonoReflectionGenericInst): Removed `klass',
4700         `parent' and `interfaces'.
4701
4702         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4703         `MonoType *' argument and return a `MonoType *'.
4704
4705         * icall.c
4706         (ves_icall_MonoGenericInst_GetParentType): New interncall.
4707         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
4708
4709 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4710
4711         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
4712         valuetype marshalling.
4713
4714 2004-02-06  Martin Baulig  <martin@ximian.com>
4715
4716         * class.c
4717         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
4718         (my_mono_class_from_generic_parameter): Likewise.
4719
4720 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4721
4722         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
4723         contents of the symbol files lazily.
4724
4725         * object.h (MonoThread): Add 'name' and 'name_len' fields.
4726
4727         * threads.h threads.c icall.c: New icalls for getting and setting the
4728         threads name.
4729
4730 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
4731
4732         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
4733         Raise an exception when the domain is not found.
4734
4735 2004-02-03  Martin Baulig  <martin@ximian.com>
4736
4737         * reflection.c (mono_image_get_methodspec_token): Use the
4738         uninflated signature; fixes gen-33.
4739
4740 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
4741
4742         * gc.c threads.c: Make the finalizer thread a normal managed thread so
4743         the finalizer code can use thread functionality.
4744
4745         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
4746         the finalizer thread.
4747
4748         * threads.c: Make some functions more robust.
4749
4750         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
4751
4752         * metadata.h: Add new marshalling conventions.
4753
4754         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
4755         stringbuilder marshalling. Fixes #53700.
4756
4757         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
4758
4759         * reflection.c (mono_image_get_type_info): Save declarative security
4760         info.
4761
4762         * reflection.c (mono_image_get_field_info): Handle uninitialized 
4763         unmanaged fields as well.
4764
4765         * appdomain.c: Bump corlib version.
4766
4767 2004-02-01  Martin Baulig  <martin@ximian.com>
4768
4769         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
4770         method type arguments.  
4771
4772 2004-01-30  Duncan Mak  <duncan@ximian.com>
4773
4774         * marshal.h: Add prototype for
4775         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
4776         and
4777         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
4778         fix the build.
4779
4780 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
4781
4782         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
4783         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
4784
4785 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4786
4787         * marshal.c (mono_marshal_get_native_wrapper): Add support for
4788         custom marshalling of valuetypes.
4789
4790         * marshal.c: Fix some warnings.
4791
4792 2004-01-29  Martin Baulig  <martin@ximian.com>
4793
4794         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
4795         for generic method parameters.
4796
4797         * reflection.c (method_encode_methodspec): Write the uninflated
4798         signature into the methodspec table.
4799         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
4800         is always the uninflated method.
4801         (reflection_methodbuilder_to_mono_method): Copy the generic
4802         parameters from the MethodBuilder into `header->gen_params'.
4803
4804 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4805
4806         * class.c (mono_class_from_generic_parameter): Fix warning.
4807
4808 2004-01-27  Martin Baulig  <martin@ximian.com>
4809
4810         * class.c (mono_class_from_generic_parameter): Don't create
4811         `klass->methods' here.  
4812
4813 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
4814
4815         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
4816         extension since it does not work with libraries named lib<FOO>.dll.so.
4817
4818 2004-01-25  Martin Baulig  <martin@ximian.com>
4819
4820         * class.c (mono_class_inflate_generic_type): Added support for
4821         MONO_TYPE_GENERICINST.
4822
4823         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
4824         inflate methods on open constructed types.      
4825
4826 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4827
4828         * object.c: fire ProcessExit event in the root AppDomain after running
4829         Main. Fixes bug #53299.
4830
4831 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
4832
4833         * socket-io.c: include the new socket-wrappers.h header.
4834         Use the wrappers instead of the unix socket functions to make the code
4835         more clear.
4836
4837 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
4838
4839         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
4840
4841         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4842         Fixes #22532.
4843
4844 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
4845
4846         * reflection.c (mono_image_create_pefile): Handle the case when the
4847         entry point is not a MethodBuilder.
4848
4849         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4850         field to ReflectionMethod since it is not allways a builder.
4851
4852         * reflection.c (type_get_fully_qualified_name): New helper function to
4853         return the fully qualified name of a type.
4854
4855         * reflection.c (encode_marshal_blob): Always emit the fully qualified
4856         type name for custom marshallers.
4857
4858         * reflection.c (mono_marshal_spec_from_builder): Ditto.
4859
4860         * class.c (mono_class_setup_vtable): If a parent class already 
4861         implements an interface, use the implementing methods from that class.
4862         Fixes #53148.
4863
4864 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4865
4866         * threadpool.c: just return instead of ExitThread to allow for thread
4867         clean up earlier.
4868
4869 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
4870
4871         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
4872         when closing resource modules.
4873
4874         * reflection.c (mono_image_create_pefile): Handle the case when the
4875         entry point is not a MethodBuilder.
4876
4877         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4878         field to ReflectionMethod since it is not allways a builder.
4879
4880 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
4881
4882         * marshal.c (mono_marshal_get_managed_wrapper): 
4883         mono_marshal_alloc takes native int so CONV_I
4884         the arg for 64bits.
4885
4886 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
4887
4888         * reflection.c (fixup_cattrs): New function to fixup the methoddef
4889         tokens in the cattr table. Fixes #53108.
4890
4891 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4892
4893         * loader.c: don't trim ".dll" before looking up in the config file.
4894         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
4895
4896 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
4897
4898         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
4899         Return the module which contains the resource as well.
4900         (ves_icall_System_Reflection_Module_Close): New icall.
4901
4902         * appdomain.c: Bump corlib version number.
4903
4904         * image.c (mono_image_addref): New public function.
4905
4906         * assembly.c: Call mono_image_addref.
4907
4908         * reflection.c (mono_module_get_object): Increase reference count of 
4909         the image.
4910
4911         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4912         Fixes #22532.
4913
4914         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
4915         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
4916         proper exceptions on DllImport problems.
4917
4918 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
4919
4920         * class.c, metadata.c: eliminate CSIZE macro.
4921
4922 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
4923
4924         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
4925         * object.h: Added async_callback field in MonoAsyncResult.
4926         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
4927         * verify.c: Added async_callback in MonoAsyncResult layout.
4928
4929 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
4930
4931         * reflection.c (mono_reflection_get_custom_attrs): Add support
4932         for Modules.
4933
4934 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
4935
4936         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
4937         marshalling.
4938         (mono_marshal_method_from_wrapper): Add null pointer check.
4939
4940 2004-01-16  Martin Baulig  <martin@ximian.com>
4941
4942         * debug-mono-symfile.h: Set version number to 36 and reflect
4943         latest symbol writer changes.
4944
4945 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
4946
4947         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
4948         multi-dimensional arrays.
4949         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
4950         (mono_class_from_mono_type): Use bounded_array_class_get.
4951         
4952         * class.c (mono_bounded_array_class_get): New function which takes
4953         a 'bounded' bool argument to distinguish vectors from one dimensional
4954         arrays.
4955
4956         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
4957         bounded_array_class_get if the array has bounds.
4958
4959         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
4960         Search modules loaded using AssemblyBuilder:AddModule as well.
4961
4962 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4963
4964         * appdomain.c: increased corlib version.
4965         * filewatcher.c: removed g_print.
4966         * icall.c:
4967         (get_property_info): only allocate what is actually requested.
4968         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
4969
4970 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4971
4972         * Makefile.am: added filewatcher.[ch]
4973         * filewatcher.[ch]: FileSystemWatcher runtime support.
4974         * icall.c: added new FSW icalls.
4975
4976 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
4977
4978         * string-icalls.c: fix stringbuilder regression as suggested by
4979         Iain McCoy <iain@mccoy.id.au>.
4980
4981 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
4982
4983         * process.c (process_read_stringtable_block): Recognize '007f' as
4984         a language neutral stringtable block.
4985
4986 2004-01-12  Patrik Torstensson
4987
4988         * object.h (MonoStringBuilder) : Changed layout to support our
4989         new stringbuilder class.
4990         * marshal.c: Change marshalling to support the new layout of 
4991         string builder.
4992         * appdomain.c: increased version number because new layout of
4993         string builder.
4994
4995 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
4996
4997         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
4998         assembly name as an string instead of an AssemblyName, since it is
4999         easier to extract info from it.
5000
5001         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5002         the culture subdirectories too. Fixes #52231.
5003
5004 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5005
5006         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5007         It takes 2 new parameters with an optional name for the method to look
5008         for and case ignoring info.
5009
5010         * threadpool.c: removed unused variable.
5011
5012 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5013
5014         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5015         It takes 2 new parameters with an optional name for the property to look
5016         for and case ignoring info.
5017         Fixes bug #52753.
5018
5019 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5020
5021         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5022         Fix #52451.
5023
5024 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5025
5026         * appdomain.c:
5027         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5028         Fixes bug #52630.
5029
5030 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5031
5032         * reflection.c: Add support for more than one unmanaged resource.
5033
5034         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5035         in field->def_value, as done in all other cases.
5036
5037         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5038         TypeBuilders.
5039
5040         * reflection.c (mono_reflection_create_runtime_class): Remove 
5041         errorneous assignment to klass->element_class, since it is already
5042         done in mono_reflection_setup_internal_class.
5043
5044 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5045
5046         * gc.c: added missing LeaveCriticalSection.
5047         * icall.c: indented a couple of lines.
5048         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5049         if we call EndInvoke inside a callback. Fixes bug #52601.
5050
5051 2004-01-07  Martin Baulig  <martin@ximian.com>
5052
5053         * mono-debug-debugger.h
5054         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5055
5056 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5057
5058         * appdomain.c: Use messages in NotImplementedException.
5059
5060         * exception.c (mono_get_exception_not_implemented): Now this takes
5061         a message argument.
5062
5063         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5064         exception instead of g_asserting an aborting when something is not
5065         implemented.
5066
5067         Add some inline docs.
5068
5069 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5070
5071         * reflection.h: Update after changes to object layout.
5072
5073         * reflection.c: Implement saving of unmanaged aka win32 resources.
5074
5075         * appdomain.c: Bump version number.
5076
5077         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5078         Handle missing domains gracefully.
5079
5080 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5081
5082         * file-io.c : On Windows, there are much more invalid_path_chars.
5083
5084 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5085
5086         * class.h, object.c: prepare for GetType () speedup.
5087
5088 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5089
5090         * profiler.c: workaround for --profile null reference exception on
5091           cygwin. Patch by Patrik Torstensson.
5092
5093 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5094
5095         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5096         make work for unaligned access.
5097
5098 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5099
5100         * class.c: small cleanup (class->fields [i] -> field).
5101         * image.c: check address of metadata is valid.
5102
5103 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5104
5105         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5106         search the list of loaded assemblies.
5107
5108         * reflection.c (mono_reflection_type_from_name): Use 
5109         mono_assembly_loaded instead of mono_image_loaded.
5110
5111         * reflection.c: Fix warnings.
5112
5113 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5114
5115         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5116         is dynamic. This is needed since an assembly can contain both dynamic and
5117         non-dynamic images.
5118
5119         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5120         assembly->dynamic.
5121
5122         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5123
5124         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5125         to store modules loaded using AddModule.
5126
5127         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5128         on Modules.
5129
5130         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5131
5132         * reflection.c (mono_image_fill_export_table_from_module): New function to
5133         fill out the EXPORTEDTYPES table from a module.
5134
5135         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5136         into a separate function. Also handle loaded non-dynamic modules.
5137
5138         * reflection.c (mono_image_basic_init): Fix memory allocation.
5139
5140         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5141
5142         * assembly.c (mono_assembly_load_references): Make this public.
5143
5144 2003-12-19  Martin Baulig  <martin@ximian.com>
5145
5146         * class.c (mono_class_initialize_generic): Made this static, take
5147         a `MonoGenericInst *' instead of a `MonoClass *'.
5148         (mono_class_from_generic): Call mono_class_initialize_generic()
5149         unless we're already initialized or being called from
5150         do_mono_metadata_parse_generic_inst().
5151
5152         * class.h (MonoGenericInst): Added `initialized' and
5153         `init_pending' flags.
5154
5155         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5156         `mono_class_init (gklass)' or mono_class_initialize_generic()
5157         here; set `generic_inst->init_pending' while parsing the
5158         `type_argv'.
5159
5160 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5161
5162         * locales.c: include string.h for memxxx prototypes
5163
5164 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5165
5166         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5167         constructor when accessing literal fields.
5168
5169 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5170
5171         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5172
5173         * reflection.c (assembly_add_resource_manifest): New function to fill
5174         the MANIFESTRESOURCE table.
5175
5176         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5177
5178         * reflection.h: Update to changes in class layout.
5179
5180         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5181         Reenable call to mono_runtime_is_shutting_down ().
5182
5183         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5184         determine if the runtime is shutting down.
5185
5186 2003-12-16  Jackson Harper <jackson@ximian.com>
5187
5188         * icall.c: comment out call to mono_runtime_is_shutting_down to
5189         fix build.
5190         
5191 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5192
5193         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5194         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5195
5196 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5197
5198         * reflection.c: move definition of swap_with_size
5199         to before its first call
5200
5201 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5202
5203         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5204
5205         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5206         icall.
5207
5208         * object.c: Fix warnings.
5209
5210         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5211         members if FlattenHierarchy is set.
5212
5213         * reflection.c (mono_image_add_decl_security): New function to emit
5214         declarative security.
5215
5216         * reflection.h reflection.c: Add support for declarative security.
5217
5218         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5219         
5220 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5221
5222         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5223         
5224         * appdomain.c verify.c: Moved corlib version checking into its own
5225         function in appdomain.c since it needs to create vtables etc.
5226
5227 2003-12-13  Patrik Torstensson <p@rxc.se>
5228
5229         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5230         instead of unwrapped server.
5231
5232 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5233
5234         * verify.c (check_corlib): Fix field index.
5235
5236 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5237
5238         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5239         GetGacPath icall.
5240
5241 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5242
5243         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5244         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5245         cope with sizeof(size_t) != sizeof(guint32).
5246
5247 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5248
5249         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5250         in case of failure.
5251
5252 2003-12-10  Mark Crichton <crichton@gimp.org>
5253
5254         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5255         in managed code.
5256
5257         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5258
5259 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5260
5261         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5262         marked as deleted.
5263
5264 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5265
5266         * verify.c (check_corlib): Handle the case when the version field is 
5267         initialized by a static constructor.
5268
5269 2003-12-08  Patrik Torstensson  <p@rxc.se>
5270
5271     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5272
5273 2003-12-08  Martin Baulig  <martin@ximian.com>
5274
5275         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5276         a MonoReflectionGenericParameter, also take the parameter index
5277         and name as arguments.
5278         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5279         (ves_icall_MonoGenericParam_initialize): New interncall.
5280         (ves_icall_Type_make_byref_type): New interncall.
5281
5282         * reflection.h (MonoReflectionGenericParam): Derive from
5283         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5284         `index' fields.
5285
5286         * reflection.c (mono_reflection_define_generic_parameter): Create
5287         and return a new MonoReflectionGenericParam; don't initialize the
5288         constraints here.
5289         (mono_reflection_initialize_generic_parameter): New public method;
5290         initializes the constraints and creates the `param->pklass'.
5291
5292 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5293
5294         * reflection.h reflection.c: Use the new fields 'num_types', 
5295         'num_fields' and 'num_methods' to track the number of types etc.
5296
5297         * verify.c (check_corlib): Check corlib version number.
5298
5299 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5300
5301         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5302         function works on all methods.
5303
5304 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5305
5306         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5307         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5308         the custom_type_info flag of the transparent proxy.
5309         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5310         objects that supports IRemotingTypeInfo.
5311         * object.h: Added custom_type_info field in transparent proxy.
5312
5313 2003-12-06  Martin Baulig  <martin@ximian.com>
5314
5315         * class.c (mono_class_create_from_generic): Removed.
5316         (mono_class_from_generic): Check `ginst->klass' before doing
5317         anything else.  This is important to fully support "recursive"
5318         generic types.
5319
5320         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5321         empty `generic_inst->klass' before doing anything else.
5322
5323 2003-12-06  Dick Porter  <dick@ximian.com>
5324
5325         * verify.c: 
5326         * object.h:
5327         * icall.c:
5328         * locales.c: Use C structs to access class fields.  Don't do a
5329         conversion between MonoString and UChar because both are
5330         platform-endian UTF-16.  Compare now takes startindex and count
5331         parameters.  Add a char overload for IndexOf.  Speed up the
5332         invariant string IndexOf.
5333
5334 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5335
5336         * Makefile.am (monosn_LDADD): Fix parallel build.
5337
5338 2003-12-04  Martin Baulig  <martin@ximian.com>
5339
5340         * icall.c
5341         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5342         (ves_icall_Type_make_array_type): New interncall.       
5343
5344 2003-12-04  Martin Baulig  <martin@ximian.com>
5345
5346         * locales.c: also change it in the !HAVE_ICU case.
5347
5348 2003-12-04  Dick Porter  <dick@ximian.com>
5349
5350         * icall.c:
5351         * locales.c: construct_compareinfo is now in CompareInfo, not
5352         CultureInfo.
5353
5354 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5355
5356         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5357         image->files array.
5358
5359         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5360         table as well.
5361
5362         * assembly.c (mono_assembly_load_references): Only load references
5363         once.
5364
5365         * class.c (mono_class_from_name): Avoid linear search of the 
5366         EXPORTEDTYPE table.
5367
5368         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5369
5370 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5371
5372         * image.h (MonoImage): Add 'field_cache' field.
5373
5374         * loader.c (mono_field_from_token): Cache field lookups.
5375         
5376         * reflection.c (mono_module_get_object): Fix name property.
5377
5378         * icall.c (ves_icall_get_enum_info): Update after changes to 
5379         mono_metadata_get_constant_index ().
5380
5381         * icall.c: Get rid of get_type_info icall, use a separate icall for
5382         each type property to avoid needless memory allocations. Fixes #51514.
5383
5384         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5385         to avoid needless binary searches.
5386
5387         * class.c (class_compute_field_layout): Move the initialization of
5388         field->def_value to mono_class_vtable ().
5389
5390         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5391         non-corlib types.
5392
5393         * object.c (mono_object_allocate): Make it inline.
5394
5395         * object.c (mono_object_allocate_spec): Make it inline.
5396         
5397 2003-12-02  Dick Porter  <dick@ximian.com>
5398
5399         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5400         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5401
5402 2003-12-01  Dick Porter  <dick@ximian.com>
5403
5404         * threads.c: Fix signature and call in CreateMutex and
5405         CreateEvent.
5406
5407 2003-12-01  Dick Porter  <dick@ximian.com>
5408
5409         * icall.c: 
5410         * locales.c: Implement string compares and searching
5411
5412         * object.h: Add extra Thread field
5413
5414 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5415
5416         * reflection.c (fixup_method): Add support for MonoCMethod.
5417
5418 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5419
5420         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5421
5422         * reflection.c (assembly_name_to_aname): Allow extra characters in
5423         assembly names. Fixes #51468.
5424
5425 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5426
5427         * exception.c (mono_exception_from_name_domain): New helper function.
5428
5429         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5430         exception object in the correct domain.
5431
5432         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5433         formatting + make a copy a the input data.
5434
5435         * loader.c (mono_get_method_from_token): Methods which contain
5436         native code do not have entries in the ImplMap.
5437
5438         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5439         Thanks to Gonzalo for spotting this.
5440         
5441         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5442         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5443
5444         * assembly.h (mono_assembly_load_from): Split the second part of 
5445         assembly loading into a new public function.
5446
5447         * exception.h (mono_get_exception_bad_image_format): New function.
5448
5449 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5450
5451         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5452         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5453         
5454         * icall.c: Add new icall for creating dynamic methods.
5455
5456         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5457
5458         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5459
5460         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5461         create a dynamic method.
5462
5463         * reflection.c (resolve_object): New helper function.
5464
5465         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5466         which manipulate it so they can also work on dynamic methods.
5467
5468         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5469         creating the MonoReflectionMethodAux structure if it is not needed.
5470         
5471         * reflection.h verify.c: Update after changes to object layout.
5472
5473         * reflection.c (method_builder_encode_signature): Fix compilation on
5474         gcc 2.95.x.
5475
5476 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5477
5478         * appdomain.h: Added support for context static fields. Added static_data
5479           field to MonoAppContext and renamed thread_static_fields to a more
5480           generic special_static_fields in MonoAppDomain, since it can now contain
5481           context static fields.
5482         * domain.c: Updated hashtable name.
5483         * object.c: Replaced field_is_thread_static() for a more generic
5484           field_is_special_static() which also checks for context static attribute.
5485           In mono_class_vtable(), added support for static context fields.
5486         * threads.c: Changed methods that manage thread static fields to more
5487           generic methods so they can be reused both for thread and context static
5488           data.
5489         * threads.h: Declared some new methods.
5490
5491 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5492
5493         * reflection.h: Update after changes to the managed types.
5494
5495         * reflection.c (encode_custom_modifiers): New helper function.
5496
5497         * reflection.c (method_encode_signature): Emit custom modifiers.
5498
5499         * reflection.c (field_encode_signature): Emit custom modifiers.
5500
5501 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5502
5503         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5504
5505         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5506         implementation.
5507
5508         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5509         icall.
5510
5511         * object.c (mono_field_get_value_object): New function.
5512
5513         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5514         specific.
5515
5516 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5517
5518         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5519         return a preallocated out-of-memory exception instance.
5520
5521         * object.c (out_of_memory): Use the new function.
5522
5523         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5524         flag is before the custom modifiers. Fixes #49802.
5525
5526 2003-11-16  Martin Baulig  <martin@ximian.com>
5527
5528         * class.c (mono_class_is_open_constructed_type): Implemented the
5529         MONO_TYPE_GENERICINST case.
5530
5531 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5532
5533         * assembly.c (mono_assembly_fill_assembly_name): New function to
5534         fill out the MonoAssemblyName structure.
5535         (mono_assembly_open): Use the new function.
5536
5537         * icall.c (fill_reflection_assembly_name): New helper function.
5538
5539         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5540         new function.
5541
5542         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5543
5544 2003-11-15  Martin Baulig  <martin@ximian.com>
5545
5546         * class.c (mono_class_is_open_constructed_type): New public
5547         function; checks whether a type is an open constructed type,
5548         ie. whether it still contains type parameters.
5549         (mono_class_inflate_generic_type): If we're a type parameter and
5550         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5551         type.
5552
5553         * class.h (MonoGenericInst): Added `guint32 is_open'.
5554
5555         * loader.c (method_from_methodspec): Check whether we're an open
5556         or closed constructed type and set `ginst->is_open'.
5557
5558         * reflection.c (mono_reflection_bind_generic_parameters): Check
5559         whether we're an open or closed constructed type and set
5560         `ginst->is_open'.
5561         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5562         from open constructed types.
5563
5564 2003-11-15  Martin Baulig  <martin@ximian.com>
5565
5566         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5567         a generic instance (instead of a generic type declaration) with
5568         unbound generic parameters, bind them to our actual types.
5569
5570 2003-11-14  Martin Baulig  <martin@ximian.com>
5571
5572         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5573
5574         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5575         an interface type, populate `res->interfaces' with instantiated
5576         versions of all the interfaces we inherit.
5577
5578 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5579
5580         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5581         when MONO_PATH is set but doesn't contain the install dir.
5582
5583 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5584
5585         * icall.c:
5586         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5587         it's also implemented in base classes. Fixes bug #50927.
5588
5589 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5590
5591         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5592         if this method is called from a finalizer. Fixes #50913.
5593
5594 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5595
5596         * threads.c: Implement VolatileRead/VolatileWrite
5597
5598         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5599
5600 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5601
5602         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5603         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5604         2.95.3.
5605
5606         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5607         from Peter Ross (pro@missioncriticalit.com).
5608         
5609 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5610
5611         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5612
5613 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5614
5615         * assembly.c (mono_assembly_load_references): Disable check because it
5616         triggers on older corlibs which lots of people have.
5617
5618 2003-11-12  Jackson Harper  <jackson@ximian.com>
5619
5620         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5621         load corlib.dll if mscorlib.dll is not found.
5622         * assembly.h: Remove corlib name define.
5623         * class.c:
5624         * domain.c:
5625         * image.c: Change corlib name to mscorlib.
5626         
5627 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5628
5629         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5630
5631 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5632
5633         * appdomain.h: Added loader_optimization here to sync with the C#
5634         code, and add disallow_binding_redirects field.
5635
5636 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5637
5638         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5639
5640         * reflection.c (mono_image_build_metadata): Fix crash on modules
5641         with no types.
5642
5643         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5644
5645         * icall.c (ves_icall_get_method_info): Return callingConvention as
5646         well.
5647
5648         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5649         namespaces from the EXPORTEDTYPE table as well.
5650
5651         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5652         from all modules inside the assembly.
5653         
5654 2003-11-11  Martin Baulig  <martin@ximian.com>
5655
5656         * reflection.c (mono_reflection_bind_generic_parameters): Make
5657         this work for interfaces.
5658
5659 2003-11-11  Martin Baulig  <martin@ximian.com>
5660
5661         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5662
5663 2003-11-11  Martin Baulig  <martin@ximian.com>
5664
5665         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5666         "MonoInflatedMethod" and "MonoInflatedCtor".
5667
5668 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5669
5670         * reflection.c (resolution_scope_from_image): Use the assembly table
5671         from the manifest module, since other modules don't have it.
5672
5673         * debug-helpers.c (mono_type_full_name): New helper function.
5674
5675         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5676
5677         * image.c (mono_image_load_file_for_image): New public function which
5678         is a replacement for the load_file_for_image in class.c.
5679
5680         * assembly.c (mono_assembly_load_module): A wrapper for the function
5681         above which does assembly association and reference loading too.
5682
5683         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5684
5685 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5686
5687         * appdomain.c: not all of the attributes for the full assembly name
5688         are required and the order doesn't matter. Fixes bug #50787.
5689
5690 2003-11-10  Dick Porter  <dick@ximian.com>
5691
5692         * locales.c: Use platform-endian UTF16
5693
5694 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5695
5696         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5697         
5698 2003-11-10  Martin Baulig  <martin@ximian.com>
5699
5700         * metadata.c
5701         (mono_metadata_load_generic_params): Make this actually work.
5702
5703         * reflection.c (mono_reflection_bind_generic_parameters): If our
5704         parent is a generic instance, pass all the `types' to it, no
5705         matter whether it has the same number of type parameters or not.
5706
5707 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5708
5709         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5710
5711         * assembly.c (mono_assembly_load_references): Move the image<->assembly
5712         assignment code to this function so it gets called recursively for all
5713         modules.
5714
5715         * image.c (load_modules): Remove the assembly assignment since it is
5716         now done by mono_assembly_load_references.
5717         
5718         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5719         Add 'module' argument.
5720         (mono_module_get_types): New helper function.
5721         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
5722
5723 2003-11-08  Martin Baulig  <martin@ximian.com>
5724
5725         * class.c (mono_class_inflate_generic_method): Interface method
5726         don't have a header.
5727
5728         * reflection.c (mono_image_get_methodspec_token): Take an
5729         additional `MonoGenericInst *' argument instead of reading it from
5730         the header; this is necessary to support interfaces.
5731         (mono_image_create_token): Pass the `MonoGenericInst *' from the
5732         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
5733         (inflated_method_get_object): Take an additional `MonoGenericInst *'
5734         argument.
5735
5736         * reflection.h (MonoReflectionInflatedMethod): Added
5737         `MonoGenericInst *ginst'.
5738
5739 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
5740
5741         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
5742
5743 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
5744
5745         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
5746
5747 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
5748
5749         * reflection.c 
5750         (reflection_methodbuilder_from_method_builder):
5751         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
5752         initialize a ReflectionMethodBuilder structure.
5753         (mono_image_get_methodbuilder_token):
5754         (mono_image_get_ctorbuilder_token): New functions to emit memberref
5755         tokens which point to types in another module inside the same assembly.
5756
5757         * reflection.c: Use the new helper functions.
5758         
5759         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
5760
5761         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
5762         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
5763
5764         * reflection.c (resolution_scope_from_image): Emit a moduleref if
5765         neccesary.
5766
5767         * reflection.c (mono_image_build_metadata): Emit metadata only for the
5768         current module. Emit the manifest only for the main module.
5769
5770         * reflection.c (mono_image_create_token): Add assertion when a 
5771         memberref needs to be created.
5772
5773         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
5774
5775         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
5776         larger buffer for the custom attribute blob. Fixes #50637.
5777         
5778 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5779
5780         * threadpool.c: notify listener on async processing handles after
5781         invoking the async callback. Thanks to Zoltan.
5782
5783 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5784
5785         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
5786         avoid code duplication.
5787
5788         * reflection.h (MonoDynamicImage): New type which is currently unused,
5789         but will be used through the ref.emit code in place of 
5790         MonoDynamicAssembly.
5791
5792         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5793         object layout.
5794
5795         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
5796         a MonoDynamicImage instead of just a MonoImage.
5797         
5798         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
5799         icalls to ModuleBuilder but keep their semantics, so they will work
5800         with moduleb->assemblyb. This will change later.
5801         
5802 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5803
5804         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5805         object layout.
5806
5807         * reflection.c (mono_image_build_metadata): Avoid creation of a default
5808         main module, since it is now done by the managed code.
5809
5810 2003-11-03  Martin Baulig  <martin@ximian.com>
5811
5812         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
5813         `ginst->klass' here.
5814         (method_encode_methodspec): Don't use the `ginst->generic_method's
5815         klass if it's a generic instance, use `ginst->klass' in this case.
5816
5817 2003-11-03  Martin Baulig  <martin@ximian.com>
5818
5819         * reflection.c (mono_image_get_generic_method_param_info):
5820         Removed, use mono_image_get_generic_param_info() instead.
5821         (mono_image_get_type_info): Write the GenericParam table before
5822         the Method table.  This is neccessary because in the GenericParam
5823         table, type parameters of the class (ie. '!0' etc.) must come
5824         before the ones from its generic methods (ie. '!!0' etc).
5825
5826 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5827
5828         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
5829
5830 2003-11-02  Martin Baulig  <martin@ximian.com>
5831
5832         * reflection.c (create_generic_typespec): Take a
5833         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
5834         the generic parameters from it.
5835
5836 2003-11-02  Martin Baulig  <martin@ximian.com>
5837
5838         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
5839         instead of a `MonoClassField *' since we just need the type.
5840         (create_generic_typespec): New static function.  Creates a
5841         TypeSpec token for a generic type declaration.
5842         (mono_image_get_generic_field_token): New static function.
5843         (mono_image_create_token): If we're a FieldBuilder in a generic
5844         type declaration, call mono_image_get_generic_field_token() to get
5845         the token.
5846
5847 2003-11-02  Martin Baulig  <martin@ximian.com>
5848
5849         * reflection.h
5850         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
5851         `MonoReflectionGenericInst *declaring_type' and
5852         `MonoReflectionGenericInst *reflected_type' fields.
5853
5854         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
5855         `MonoReflectionGenericInst *declaring_type' and a
5856         `MonoReflectionGenericInst *reflected_type' argument instead of a
5857         single `MonoReflectionGenericInst *type' one.  Set
5858         `res->declaring_type' and `res->reflected_type' from them.
5859         (mono_reflection_inflate_field): Likewise.      
5860
5861 2003-11-02  Martin Baulig  <martin@ximian.com>
5862
5863         * class.c (mono_class_setup_vtable): Don't store generic methods
5864         in the vtable.  
5865
5866 2003-11-02  Martin Baulig  <martin@ximian.com>
5867
5868         * reflection.h (MonoReflectionGenericInst): Added
5869         `MonoReflectionType *declaring_type'.
5870
5871         * reflection.c (mono_reflection_bind_generic_parameters): Use
5872         `if (tb->parent)' instead of `klass->parent'.
5873
5874 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
5875
5876         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
5877         with an empty ASSEMBLY table.
5878
5879         * reflection.c (mono_image_build_metadata): Avoid using the same loop
5880         variable in the inner and outer loops.
5881
5882 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
5883
5884         * metadata.h (mono_metadata_make_token): Put parentheses around macro
5885         argument.
5886
5887         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
5888         
5889         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
5890         icalls. Instead, do everything in managed code. This is needed since
5891         it is hard to restore the original domain etc. in unmanaged code in the
5892         presence of undeniable exceptions.
5893
5894         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
5895         New icalls to push and pop appdomain refs.
5896
5897 2003-10-31  Martin Baulig  <martin@ximian.com>
5898
5899         * class.c (inflate_generic_type): Renamed to
5900         mono_class_inflate_generic_type() and made it public.
5901
5902         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
5903         New interncall.
5904
5905         * loader.c (mono_field_from_memberref): Also set the retklass for
5906         typespecs.
5907
5908         * fielder.c (mono_image_get_inflated_field_token): New static
5909         method; creates a metadata token for an inflated field.
5910         (mono_image_create_token, fixup_method): Added support for
5911         "MonoInflatedField".
5912         (fieldbuilder_to_mono_class_field): New static function.
5913         (mono_reflection_inflate_field): New public function.
5914
5915         * reflection.h
5916         (MonoReflectionGenericInst): Added `MonoArray *fields'.
5917         (MonoReflectionInflatedField): New typedef.     
5918
5919 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
5920
5921         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
5922         for Solaris and other platforms without s6_addr16
5923
5924 2003-10-30  Martin Baulig  <martin@ximian.com>
5925
5926         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
5927         argument instead of two.
5928         (mono_class_inflate_generic_signature): Likewise.
5929         (inflate_generic_header): Likewise.
5930         (mono_class_inflate_generic_method): Likewise.  In addition, if
5931         `ginst->klass' is set, it becomes the new `method->klass'.
5932
5933         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
5934         field.
5935
5936         * reflection.c (encode_generic_method_sig): Write a 0xa as the
5937         first byte. [FIXME]
5938         (method_encode_methodspec): If we have generic parameters, create
5939         a MethodSpec instead of a MethodRef.
5940         (fixup_method): Added support for "MonoInflatedMethod" and
5941         "MonoInflatedCtor".
5942         (mono_image_create_token): Added support for "MonoInflatedMethod"
5943         and "MonoInflatedCtor".
5944         (inflated_method_get_object): New static function; returns a
5945         managed "System.Reflection.MonoInflatedMethod" object.
5946         (mono_reflection_bind_generic_method_parameters): Return a
5947         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
5948         (mono_reflection_inflate_method_or_ctor): Likewise.
5949         (mono_image_get_generic_method_param_info): Initialize unused
5950         fields to zero.
5951         (mono_image_get_generic_param_info): Likewise.
5952
5953         * reflection.h (MonoReflectionInflatedMethod): New public
5954         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
5955         "S.R.MonoInflatedCtor" classes.
5956
5957         * loader.c (method_from_memberref): If we're a TypeSpec and it
5958         resolves to a generic instance, inflate the method.
5959
5960 2003-10-28  Dick Porter  <dick@ximian.com>
5961
5962         * object.c (mono_runtime_run_main): Convert command-line arguments
5963         into utf8, falling back to the user's locale encoding to do so.
5964
5965 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
5966
5967         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
5968         at this time.
5969
5970         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
5971
5972         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
5973         up icalls at method definition time. Partially fixes #33569.
5974
5975 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
5976
5977         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
5978         marshalling of arrays. Fixes #50116.
5979
5980         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
5981
5982         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
5983         points to a vtable in the dying appdomain.
5984
5985         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
5986         listeners into unmanaged code inside the lock.
5987
5988         * object.c (mono_class_vtable): Turn off typed allocation in non-root
5989         domains and add some comments.
5990
5991 2003-10-25  Martin Baulig  <martin@ximian.com>
5992
5993         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
5994
5995         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
5996
5997         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
5998         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
5999         currently parsing.  Create the generic class and store it in
6000         `generic_inst->klass' before parsing the type arguments.  This is
6001         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6002         for an example.
6003         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6004         to support recursive typespec entries.
6005
6006         * class.c (mono_class_setup_parent): If our parent is a generic
6007         instance, we may get called before it has its name set.
6008         (mono_class_from_generic): Splitted into
6009         mono_class_create_from_generic() and mono_class_initialize_generic().
6010
6011 2003-10-25  Martin Baulig  <martin@ximian.com>
6012
6013         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6014         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6015         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6016         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6017
6018         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6019         (create_typespec): Likewise.
6020         (mono_reflection_bind_generic_parameters): Return a
6021         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6022         (mono_reflection_inflate_method_or_ctor): New public function.
6023
6024         * reflection.h (MonoReflectionGenericInst): New typedef.        
6025
6026 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6027
6028         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6029         inside the domain lock. Fixes #49993.
6030         
6031         * object.c (mono_class_vtable): When typed allocation is used, 
6032         allocate vtables in the GC heap instead of in the mempool, since the
6033         vtables contain GC descriptors which are used by the collector even
6034         after the domain owning the mempool is unloaded.
6035
6036         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6037
6038         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6039         reflect what it does. Also invalidate mempools instead of freeing
6040         them if a define is set.
6041
6042         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6043         of the appdomain.
6044         
6045         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6046         hold the finalizable objects in this domain.
6047
6048         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6049         appdomain.
6050
6051         * appdomain.c (mono_domain_set): New function to set the current
6052         appdomain, but only if it is not being unloaded.
6053
6054         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6055         appdomain which is being unloaded.
6056         
6057         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6058         unloading of the root appdomain.
6059
6060         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6061         icall to execute a method in another appdomain. Intended as a 
6062         replacement for InternalSetDomain, which can confuse the code 
6063         generation in the JIT.
6064
6065         * appdomain.c (mono_domain_is_unloading): New function to determine
6066         whenever an appdomain is unloading.
6067
6068         * appdomain.c (mono_domain_unload): New function to correctly unload
6069         an appdomain.
6070
6071         * assembly.c (mono_assembly_load_references): Check that an assembly
6072         does not references itself.
6073
6074         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6075         domain manually, it asks the finalizer thread to do it, then waits for
6076         the result. Also added a timeout.
6077
6078         * icall.c: Register the new icalls.
6079
6080         * threads.h threads.c: Export the mono_gc_stop_world and 
6081         mono_gc_start_world functions.
6082         
6083         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6084         function to fill out the mempool with 0x2a.
6085
6086 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6087
6088         * reflection.h (MonoReflectionMethodAux): New structure to store
6089         information which is rarely used, thus is not in the MonoMethod
6090         structure.
6091
6092         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6093         store the aux info.
6094
6095         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6096         and marshalling info into the aux structure.
6097
6098         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6099         from the aux structure.
6100
6101         * loader.c (mono_method_get_param_names): Retrieve the param names from
6102         the aux structure.
6103         
6104 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6105
6106         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6107         warning.
6108
6109 2003-10-21  Dick Porter  <dick@ximian.com>
6110
6111         * socket-io.c
6112         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6113         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6114
6115 2003-10-21  Martin Baulig  <martin@ximian.com>
6116
6117         * reflection.c (mono_reflection_bind_generic_parameters):
6118         `klass->parent' is NULL for interfaces.
6119
6120 2003-10-21  Martin Baulig  <martin@ximian.com>
6121
6122         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6123
6124 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6125
6126         * exception.c (mono_exception_from_name_msg): New helper function for
6127         creating exceptions and initializing their message field.
6128
6129         * exception.c: Simplify functions using the new helper.
6130
6131         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6132         New function.
6133
6134         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6135         mono_raise_exception, since otherwise gcc doesn't generate the function
6136         epilog for raise_exception, confusing the stack unwinding in the JIT.
6137         Fixes #45043.
6138
6139         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6140         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6141         Fixes #49499.
6142
6143 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6144
6145         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6146         utf8.
6147
6148 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6149
6150         * icall.c: Removed GetUninitializedObject method because
6151           AllocateUninitializedClassInstance does the same.
6152
6153 2003-10-18  Martin Baulig  <martin@ximian.com>
6154
6155         * class.c (inflate_generic_signature): Renamed to
6156         mono_class_inflate_generic_signature() and made it public.
6157         (my_mono_class_from_generic_parameter): New static function; if we
6158         don't already have the generic parameter's MonoClass, create a
6159         very simple one which is just used internally in the runtime and
6160         not passed back to managed code.
6161
6162         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6163
6164         * metadata.h (MonoMethodSignature): Moved the
6165         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6166         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6167
6168         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6169         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6170         interncall on the MonoMethod class, not on MethodInfo.
6171         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6172         calling mono_reflection_bind_generic_method_parameters() directly.
6173
6174         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6175         return the already computed `method->signature'.
6176         (method_from_methodspec): New static function to load a method
6177         from a MethodSpec entry.
6178         (mono_get_method_from_token): Call the new method_from_methodspec()
6179         for MethodSpec tokens.  
6180         (mono_get_method_from_token): If we're a generic method, load the
6181         type parameters.
6182
6183         * reflection.c (mono_image_get_memberref_token): Allow
6184         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6185         table.
6186         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6187         (mono_image_create_token): First check whether it's a generic
6188         method (so we'd need to create a MethodSpec), then do the other
6189         two alternatives.
6190         (mono_reflection_bind_generic_method_parameters): Return a
6191         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6192         called directly from the interncall.
6193
6194 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6195
6196         * reflection.c (load_public_key): Move loading of the public key
6197         into managed code.
6198
6199         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6200
6201         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6202         fields.
6203
6204         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6205         culture, hash_alg and public_key. Fixes #49555.
6206
6207 2003-10-17  Martin Baulig  <martin@ximian.com>
6208
6209         * class.h (MonoGenericInst): Moved this declaration here and added
6210         `MonoMethod *generic_method'.
6211
6212         * icall.c
6213         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6214         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6215
6216         * metadata.c (mono_metadata_type_equal): Two types of
6217         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6218         index; ie. don't compare the address of the `MonoGenericParam'
6219         structure.
6220         (mono_metadata_load_generic_params): Removed the `MonoMethod
6221         *method' argument.
6222
6223         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6224         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6225
6226         * reflection.c (method_encode_signature): Encode the number of
6227         generic parameters.
6228         (encode_generic_method_sig): New static function.
6229         (method_encode_methodspec): New static function; creates an entry
6230         in the MethodSpec table for a generic method.
6231         (mono_image_get_methodspec_token): New static function.
6232         (mono_image_create_token): Call mono_image_get_methodspec_token()
6233         for generic methods.
6234         (mono_reflection_bind_generic_method_parameters): New public
6235         function.  Instantiates a generic method.
6236
6237 2003-10-16  Martin Baulig  <martin@ximian.com>
6238
6239         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6240         *gen_params' here from MonoMethodHeader.
6241
6242         * metadata.c (mono_metadata_parse_method_signature): If we have
6243         generic parameters, initialize `method->gen_params' and then set
6244         the correct `type->data.generic_param' in all the parameters.
6245
6246 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6247
6248         * threads.c (mono_threads_get_default_stacksize): New function to 
6249         return the default stacksize.
6250
6251         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6252         termination of the finalizer thread, since the previous method had
6253         race conditions. Fixes #49628.
6254
6255         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6256         as for the other managed threads.
6257
6258 2003-10-16  Martin Baulig  <martin@ximian.com>
6259
6260         * class.c (inflate_generic_signature): Copy `generic_param_count'
6261         and `gen_params'.
6262
6263         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6264         New interncall.
6265
6266         * metadata.c (mono_metadata_parse_method_signature): Actually set
6267         the `method->generic_param_count' here.
6268         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6269
6270 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6271
6272         * object.h: Add a new field to TypedRef to simplify the implementation
6273         of the REFANY opcodes in the JIT.
6274
6275         * icall.c: Make use of the new field.
6276
6277         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6278         dynamically.
6279
6280 2003-10-15  Martin Baulig  <martin@ximian.com>
6281
6282         * class.c (mono_class_from_gen_param): Renamed to
6283         mono_class_from_generic_parameter() and moved most of the
6284         functionality from mono_reflection_define_generic_parameter()
6285         here; ie. we create a "real" class here.
6286         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6287         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6288         previously been called.
6289
6290         * class.h (MonoGenericParam): Moved the declaration of this struct
6291         here from metadata.h and added `MonoMethod *method'.
6292
6293         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6294         interncall.
6295
6296         * loader.c (mono_get_method_from_token): If we have any generic
6297         parameters, call mono_metadata_load_generic_params() to read them
6298         from the MONO_TABLE_GENERICPAR.
6299
6300         * metadata.c (mono_metadata_load_generic_params): Added
6301         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6302
6303         * metadata.h (MonoMethodSignature): Replaced
6304         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6305         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6306
6307         * reflection.c (mono_reflection_define_generic_parameter): Moved
6308         most of the functionality into the new
6309         mono_class_from_generic_parameter(); set the `method' field if
6310         we're a method parameter.       
6311
6312 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6313
6314         * marshal.c (emit_struct_conv): if native size is 0
6315         emit no code.
6316
6317 2003-10-14  Martin Baulig  <martin@ximian.com>
6318
6319         * icall.c: The generics API has changed in the spec since it was
6320         added to System.Type; these modifications make it match the spec
6321         again.
6322         (ves_icall_Type_GetGenericParameters): Renamed to
6323         `ves_icall_Type_GetGenericArguments'.
6324         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6325         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6326         `ves_icall_MonoType_get_HasGenericArguments'.
6327         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6328         `ves_icall_MonoType_get_IsGenericParameter'.
6329         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6330         this is no interncall anymore.
6331         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6332         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6333
6334 2003-10-14  Martin Baulig  <martin@ximian.com>
6335
6336         * reflection.c (mono_reflection_bind_generic_parameters): Also
6337         inflate generic methods if we're reading the class from IL.
6338
6339 2003-10-13  Martin Baulig  <martin@ximian.com>
6340
6341         * reflection.c (mono_reflection_define_generic_parameter): This
6342         method isn't called directly from the icall anymore; take a
6343         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6344         method generic parameters.
6345         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6346         (method_builder_encode_signature): Encode generic parameters.
6347         (mono_image_get_method_info): Write generic params to the
6348         MONO_TABLE_GENERICPARAM table.
6349
6350         * reflection.h (MonoReflectionMethodBuilder): Added
6351         `MonoArray *generic_params'.
6352
6353         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6354
6355         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6356         wrapper for mono_reflection_define_generic_parameter().
6357         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6358
6359 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6360
6361         * marshal.h: Add missing function to fix build.
6362
6363         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6364         the SetLastError pinvoke attribute.
6365
6366         * marshal.c (mono_marshal_set_last_error): New helper function called
6367         by the generated code.
6368         
6369         * marshal.c (mono_mb_emit_branch): New helper function.
6370
6371         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6372
6373         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6374         classes as parameters and return values of delegates. Fixes #29256. 
6375
6376 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6377
6378         * locales.c: use gint32 in non HAVE_ICU case
6379
6380 2003-10-11  Martin Baulig  <martin@ximian.com>
6381
6382         * mono-debug.c (mono_debug_add_method): Added a workaround for
6383         bug #48591.
6384
6385 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6386
6387         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6388         delegates passed to native code must use the STDCALL calling 
6389         convention. Fixes #35987.
6390
6391 2003-10-10  Martin Baulig  <martin@ximian.com>
6392
6393         * class.c (inflate_generic_type): If we're inflating for a generic
6394         type instance (and not for a generic method), return
6395         MONO_TYPE_MVAR unchanged.
6396
6397 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6398
6399         * string-icalls.c: Join ignores null strings in the source array.
6400         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6401         * threads.c: GetAvailableTheads is slightly more accurate.
6402
6403 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6404
6405         * threads.h threads.c : add mono_threads_set_default_stacksize
6406         and pass default to CreateThread calls.
6407
6408 2003-10-09  Dick Porter  <dick@ximian.com>
6409
6410         * icall.c:
6411         * locales.h:
6412         * locales.c: Internal calls for constructing CultureInfo and
6413         related objects from libicu (if its available.)
6414
6415 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6416
6417         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6418
6419 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6420
6421         * threadpool.c: added an argument to async_invoke_thread that is the
6422         item to process, pass the MonoAsyncResult to the thread start function
6423         when creating a new thread. This way we don't need to acquire any lock
6424         when we're creating a new thread. Readded a semaphore for faster
6425         response times (instead of that Sleep i added).
6426
6427 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6428
6429         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6430         get daylight change dates better on Windows, fix handling
6431         of platforms without tm_gmtoff.
6432
6433 2003-10-06  Martin Baulig  <martin@ximian.com>
6434
6435         * class.c (inflate_generic_method): Renamed to
6436         mono_class_inflate_generic_method() and made public.
6437         (mono_class_init): Don't inflate the generic methods here.
6438         (mono_class_from_generic): Added `gboolean inflate_methods'
6439         argument.  Inflate the methods here.
6440
6441         * loader.c (mono_method_get_param_names): Ignore instances of
6442         generic types for the moment.
6443
6444         * reflection.c (fixup_method): Added support for inflated methods.
6445         (mono_image_create_token): Use mono_image_get_methodref_token()
6446         for inflated methods.
6447         (mono_custom_attrs_from_param): Ignore instances of generic types
6448         for the moment.
6449         (mono_reflection_bind_generic_parameters): New public function.
6450         Moved all the functionality from
6451         ves_icall_Type_BindGenericParameters() here and added support for
6452         dynamic types.
6453         (mono_reflection_define_generic_parameter): Initialize
6454         `klass->methods' here.
6455
6456         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6457         functionality into mono_reflection_define_generic_parameter().
6458         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6459         TypeBuilder, return that TypeBuilder.
6460
6461 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6462
6463         * appdomain.c: removed mono_delegate_semaphore.
6464
6465         * threadpool.c:
6466         (mono_thread_pool_add): moved hash table creation inside and the thread 
6467         creation outside of the critical region.
6468         (mono_thread_pool_finish): removed obsolete code.
6469         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6470         continue or exit the thread depending on the queue.
6471
6472 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6473
6474         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6475         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6476         handle more bool marshalling options
6477
6478 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6479
6480         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6481         arrays of structs. Also add a more descriptive error message when
6482         a structure member is marshalled as LPArray.
6483
6484 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6485
6486         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6487         marshalling arrays of complex types. Fixes #29098. Also remove an
6488         usused and incomplete function.
6489
6490 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6491
6492         * gc.c: report heap_size - free_bytes as total memory allocated
6493         (bug#49362).
6494
6495 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6496
6497         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6498         fix timezone handling problems on Windows.
6499         
6500         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6501         asserts when the year is outside the range handled by ms the functions.
6502
6503         * class.c (setup_interface_offsets): If the class is an interface,
6504         fill out its interface_offsets slot.
6505
6506 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6507
6508         * threadpool.c: mark threadpool threads as background.
6509
6510 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6511
6512         * decimal.c - define DECINLINE to nothing if not using GCC
6513
6514 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6515
6516         * assembly.c: More refcount fixes.
6517
6518 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6519
6520         * string-icalls.c: if we're not trimming, return the same string.
6521         When not splitting, don't create a new string.
6522
6523 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6524
6525         * image.c:
6526         (mono_image_open): increment the ref_count inside the critical section.
6527
6528 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6529
6530         * image.c (mono_image_open): Fix reference counting bug.
6531
6532 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6533
6534         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6535         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6536         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6537         mono_lookup_pinvoke_call throws.        
6538
6539 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6540
6541         * reflection.c (mono_reflection_parse_type): Fix #49114.
6542
6543         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6544         temporary workaround for cygwin header problem.
6545
6546         * object.c (mono_object_isinst): Synchronize this with the code
6547         generated by the JIT for casts.
6548
6549 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6550
6551         * reflection.c (encode_type): Fix #38332.
6552
6553 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6554
6555         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6556         the original method from the wrapper method.
6557
6558 2003-09-25  Martin Baulig  <martin@ximian.com>
6559
6560         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6561         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6562         (ves_icall_Type_get_IsGenericInstance): New interncall.
6563
6564 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6565
6566         * object.c: fix cast warning in big endian code.
6567
6568 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6569
6570         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6571         
6572 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6573
6574         * assembly.c: don't call check_env from mono_assembly_load. It's
6575         already done once in mono_assemblies_init and may cause headaches when
6576         multiple threads are loading assemblies.
6577
6578 2003-09-19  Martin Baulig  <martin@ximian.com>
6579
6580         * reflection.c (mono_reflection_define_generic_parameter): Don't
6581         allocate `klass->methods', set `klass->flags' to
6582         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6583
6584 2003-09-18  Martin Baulig  <martin@ximian.com>
6585
6586         * class.c (mono_class_init): Don't create `class->methods' if it's
6587         already initialized.
6588
6589         * metadata.c (mono_metadata_load_generic_params): Make this
6590         actually work.
6591
6592         * reflection.c (mono_reflection_define_generic_parameter): Set
6593         parent class and interfaces from the constraints.
6594
6595         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6596         to keep this struct in sync with the declaration in TypeBuilder.cs.
6597
6598 2003-09-17  Martin Baulig  <martin@ximian.com>
6599
6600         * metadata.h (MonoType): Replaced the data's `int type_param'
6601         field with `MonoGenericParam *generic_param'.
6602         (MonoGenericParam): Added `MonoClass *klass'.
6603
6604         * class.c (mono_class_from_gen_param): Removed the
6605         `MonoImage *image' and `int type_num' arguments.
6606
6607         * metadata.c (mono_metadata_parse_generic_param): New static
6608         method; creates a MonoGenericParam which just contains the index.
6609         (do_mono_metadata_parse_type): Call
6610         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6611         MONO_TYPE_MVAR.
6612
6613         * reflection.c (mono_image_typedef_or_ref): Generic type
6614         parameters may be in the same assembly, but never use a typedef
6615         for them.
6616         (mono_reflection_define_generic_parameter): We're now creating a
6617         "real" class for the type parameter; it's now safe to call
6618         mono_class_from_mono_type() on the class'es type, it'll do the
6619         right thing.
6620
6621 2003-09-16  Martin Baulig  <martin@ximian.com>
6622
6623         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6624         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6625         the `symfile' data structure must be fully initialized before it
6626         gets added to the table.
6627
6628 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6629
6630         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6631
6632         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6633         class init trampolines.
6634
6635 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6636
6637         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6638         to the built-in profiler to turn off time and allocation profiling
6639         respectively.
6640
6641 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6642
6643         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6644         g_direct_equal.
6645
6646         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6647         in human readable form.
6648
6649 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6650
6651         * reflection.c icall.c: Fixed warnings.
6652
6653         * image.c (load_class_names): Use a temporary hash table to hold the
6654         namespaces in order to avoid doing many string comparisons.
6655
6656         * image.h: Fix typo.
6657
6658         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6659         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6660         since the NULL case is short-circuited inside g_hash_table_lookup, 
6661         leading to better performance.  
6662
6663         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6664         obtain the first custom attribute for a given index. Depends on the
6665         CustomAttribute table being sorted by the parent field.
6666
6667         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6668         for better performance.
6669
6670 2003-09-07  Martin Baulig  <martin@ximian.com>
6671
6672         * class.c (mono_class_init): If we're a generic instance, inflate
6673         all our methods instead of loading them from the image.
6674         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6675
6676 2003-09-07  Martin Baulig  <martin@ximian.com>
6677
6678         * mono-debug-debugger.c: Added support for constructors.
6679
6680 2003-09-06  Martin Baulig  <martin@ximian.com>
6681
6682         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6683         New interncall.
6684
6685         * reflection.c (mono_reflection_setup_generic_class): Call
6686         ensure_runtime_vtable() to create the vtable.
6687
6688 2003-09-05  Martin Baulig  <martin@ximian.com>
6689
6690         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6691         MONO_TYPE_MVAR.
6692
6693 2003-09-04  Martin Baulig  <martin@ximian.com>
6694
6695         * reflection.c (mono_reflection_define_generic_parameter): Generic
6696         parameters start with zero.
6697
6698 2003-09-04  Martin Baulig  <martin@ximian.com>
6699
6700         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6701
6702         * reflection.h (MonoReflectionGenericParam): New typedef.
6703         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
6704         the generic parameters from the managed TypeBuilder.
6705
6706         * reflection.c (mono_reflection_define_generic_parameter): New function.
6707         (mono_reflection_create_runtime_class): Encode generic parameters.
6708         (mono_reflection_setup_generic_class): New function; this is
6709         called after adding adding all generic params to the TypeBuilder.
6710         (encode_type): Added MONO_TYPE_VAR.
6711
6712 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
6713
6714         * class.h class.c (mono_class_needs_cctor_run): Moved this method
6715         here from the JIT.
6716
6717         * assembly.h assembly.c: Moved the AOT loading code into an assembly
6718         load hook.
6719
6720 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
6721
6722         * reflection.h reflection.c class.h class.c: Delete duplicate 
6723         definition of mono_type_get_name () from reflection.c and export the
6724         one in class.c.
6725
6726         * class.c: Class loading fixes from Bernie Solomon 
6727         (bernard@ugsolutions.com).
6728
6729         * reflection.c: Endianness fixes from Bernie Solomon 
6730         (bernard@ugsolutions.com).
6731         
6732 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
6733
6734         * assembly.h assembly.c: Define a file format version for AOT
6735         libraries.
6736         
6737         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
6738
6739         * appdomain.h (MonoJitInfo): New field to determine whenever the
6740         code is domain neutral.
6741         
6742 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
6743
6744         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
6745
6746 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
6747
6748         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
6749         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
6750         Avoid caching the result since strings must be domain specific. Fixes
6751         #48050.
6752
6753 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
6754
6755         * marshal.c (mono_marshal_init): Make this callable multiple times
6756         since it is hard to find a correct place to call it.
6757
6758         * object.c (mono_runtime_class_init): Execute static constructors in
6759         the correct appdomain.
6760
6761         * image.c (build_guid_table): Handle the case when multiple images have
6762         the same GUID.
6763
6764 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6765
6766         * icall.c: added a couple of icalls for System.Web.
6767
6768 2003-08-28  Martin Baulig  <martin@ximian.com>
6769
6770         * icall.c (ves_icall_Type_BindGenericParameters): Use
6771         `klass->generic_inst' instead of `&klass->byval_arg' in the
6772         mono_type_get_object() call.  The returned type must be
6773         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
6774
6775 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
6776
6777         * NOTES: New file.
6778
6779         * object.c (mono_class_proxy_vtable): Make it thread safe.
6780
6781         * pedump.c: Fix warning.
6782
6783         * object.c appdomain.h: Get rid of metadata_section. 
6784         It is no longer needed and it was causing deadlocks with domain->lock.
6785
6786         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
6787
6788 2003-08-26  Martin Baulig  <martin@ximian.com>
6789
6790         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
6791
6792 2003-08-26  Martin Baulig  <martin@ximian.com>
6793
6794         * pedump.c (main): Call mono_metadata_init(),
6795         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
6796         and mono_loader_init().
6797
6798 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
6799
6800         * loader.h: Add missing include to fix build.
6801
6802         * image.h: mono_image_load_references is no more.
6803
6804         * assembly.c: Reworked assembly loading to make it really thread safe.
6805         After these changes, the assembly returned by mono_assembly_open is
6806         fully initialized, i.e. all its references assemblies are loaded.
6807
6808         * assembly.c (mono_image_load_references): Renamed to 
6809         mono_assembly_load_references, and made private, since clients no
6810         longer need to call it.
6811
6812         * class.c: Removed calls to mono_assembly_load_references, since it was
6813         a source of deadlocks.
6814
6815         * loader.h loader.c class.h class.c: Protect data structures using a 
6816         new lock, the loader lock.
6817
6818         * class.c (mono_class_setup_vtable): Create temporary hash tables and
6819         GPtrArrays only when needed.
6820
6821         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
6822         into empty structures by mcs. Fixes pinvoke7.cs.
6823         
6824         * domain.c (mono_init): Call a new initialization function.
6825
6826         * appdomain.c (mono_runtime_init): Call the new initializer function
6827         of the marshal module.
6828
6829         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
6830         inserted into empty structures by mcs. Fixes pinvoke7.cs.
6831
6832         * marshal.h marshal.c: Added locks around the wrapper caches to make
6833         this module thread safe.
6834
6835         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
6836         this argument. Fixes pinvoke1.exe.
6837
6838 2003-08-25  Lluis Sanchez <lluis@ximian.com>
6839
6840         * object.h: Added call_type field to MonoMethodMessage and the corresponding
6841         enumeration of values. Removed fields to store remote call output values in
6842         MonoAsyncResult. Not needed any more.
6843         * object.c: Initialize call_type and async_result fields in mono_message_init.
6844         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
6845         dispatching the message.
6846         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
6847         async call to finish. To do it use a message with EndInvoke call type.
6848
6849 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
6850
6851         * loader.h loader.c (mono_method_hash_marhal_info): New function which
6852         determines whenever a method has marshalling info.
6853
6854 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6855
6856         * assembly.c: fix the build on windows.
6857
6858 2003-08-22 Lluis Sanchez <lluis@ximian.com>
6859
6860         * object.cs: Fixed bug #47785.
6861
6862 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
6863
6864         * string-icalls.c (StringReplace): If their are no occurances of
6865         the old string found return a reference to the supplied
6866         string. This saves some memory and matches MS behavoir.
6867         
6868 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6869
6870         * socket-io.c: fixed compilation for systems that define AF_INET6
6871         and don't define SOL_IP/SOL_IPV6.
6872
6873 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
6874
6875         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
6876         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
6877
6878         * rawbuffer.c rawbuffer.h: Make this module thread safe.
6879
6880         * domain.c: Make this module thread safe.
6881
6882         * domain.c (mono_init): Call new initialization function.
6883
6884         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
6885         reference types too. Fixes #38812.
6886
6887         * image.c (mono_image_init): Fixed warnings.
6888
6889         * class.c (mono_class_from_typeref): Handle assembly load failure
6890         correctly.
6891
6892         * appdomain.c (add_assemblies_to_domain): Handle the case when
6893         the references of an assembly are not yet loaded.
6894
6895         * metadata.c image.c assembly.c: Moved initialization of global
6896         variables to a separate function called at startup since lazy 
6897         initialization of these variables is not thread safe.
6898         
6899         * image.c assembly.c: Made this module thread safe by adding locks in 
6900         the appropriate places.
6901
6902         * domain.c (mono_init): Call the new initialization functions of the
6903         three modules.
6904
6905 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
6906
6907         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
6908           make a direct call. It is proxy's work to make the call asynchronous.
6909           mono_delegate_end_invoke(): If the targe is a proxy, just collect
6910           the return values.
6911         * object.cs: mono_method_call_message_new(): read AsyncResult and
6912           state object from parameters list, if this info is requested.
6913         * object.h: Added fields to store remote call output values in
6914           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
6915
6916 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
6917
6918         * object.h: add needed fields to MonoThread.
6919         * threads.c, threads.h: allow registering a function to cleanup data
6920         allocated per thread by the JIT.
6921
6922 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6923
6924         * loader.h: portability fix by Bernie Solomon
6925         * <bernard@ugsolutions.com>.
6926
6927 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
6928
6929         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
6930         return a MonoArray. This simplifies the code and also ensures that
6931         the cache allways contains an object reference as a value.
6932
6933         * icall.c (ves_icall_get_parameter_info): Simplified using the new
6934         function.
6935
6936 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6937
6938         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
6939         fixes a problem with byte ordering when getting the address family for
6940         a socket.
6941
6942 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
6943
6944         * .cvsignore: Added monosn.
6945
6946         * reflection.h reflection.c loader.c: Added support for parameter
6947         marshalling to dynamically created types. Fixes #47295.
6948
6949 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
6950
6951         * rand.c: remove useless warnings.
6952
6953 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
6954
6955         * class.c: implemented ldtoken for methods and fieldrefs.
6956
6957 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6958
6959         * threadpool.c: when mono_async_invoke was called, no one took care of
6960         monitoring the queue. So if the method invoked took some time and we
6961         got new async invoke requests after 500 ms (the thread created waited
6962         that long in WaitForSingleObject), the new async invoke was not called
6963         until the previous one finished.
6964
6965         This is fixed now. Thanks to Totte for helping with it.
6966
6967 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6968
6969         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
6970
6971 2003-08-11  Martin Baulig  <martin@ximian.com>
6972
6973         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
6974
6975 2003-08-06  Martin Baulig  <martin@ximian.com>
6976
6977         * mono-debug-debugger.c: Added support for static fields,
6978         properties and methods.
6979
6980 2003-08-06  Martin Baulig  <martin@ximian.com>
6981
6982         * mono-debug-debugger.c: Don't store the MonoString's vtable to
6983         make this work for applications with multiple application domains.
6984
6985 2003-08-04  Martin Baulig  <martin@ximian.com>
6986
6987         * mono-debug-debugger.c: Completely reworked the type support; the
6988         most important thing is that we're now just using one single
6989         `MonoType' instance per type.
6990
6991 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
6992
6993         * mono-endian.h, mono-endian.c, icall.c: Added icall
6994         ves_icall_System_Double_AssertEndianity to assert double word endianity
6995         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
6996
6997 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
6998
6999         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7000         support, icalls and fixes.
7001
7002 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7003
7004         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7005         classes that are a punctuation character in .NET is not the same a
7006         g_unichar_ispunct.
7007
7008 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7009
7010         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7011
7012 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7013
7014         * icall.c: Add new MemCopy internalcall.
7015         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7016         Simplified code; It is not necessary to handle all the cases here,
7017         as the C# code takes care of it.  Only handle the case of the name
7018         resource embedded into the assembly.
7019
7020         Changed signature to return the data pointer and the size of the
7021         data. 
7022
7023 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7024
7025         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7026         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7027
7028 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7029
7030         * socket-io.c: ignore EINTR error in select.
7031
7032 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7033
7034         * class.h, class.c: removed unused subclasses field in MonoClass.
7035
7036 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7037
7038         * icall.c: improve fix of get_base_definition(). If the parent class
7039           doesn't have the mehod, look at the parent of the parent.
7040         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7041           to check if a parameter is an in or out parameter
7042           (PARAM_ATTRIBUTE_IN is not set by default).
7043           mono_method_return_message_restore(): Use mono_class_value_size to
7044           get the size of a value type. mono_type_stack_size (parameterType)
7045           does not return the correct value if parameterType is byRef.
7046           mono_load_remote_field(), mono_load_remote_field_new(),
7047           mono_store_remote_field(), mono_store_remote_field_new():
7048           raise exception if the remote call returns an exception.
7049
7050 2003-07-28  Martin Baulig  <martin@ximian.com>
7051
7052         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7053         method.  This is a wrapper around mono_runtime_invoke() which
7054         boxes the instance object if neccessary.
7055
7056 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7057
7058         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7059         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7060
7061 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7062
7063         * icall.c: disable mcs bug workaround.
7064
7065 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7066
7067         * object.c (mono_runtime_class_init): Take the metadata_section
7068         mutex before obtaining the domain mutex.
7069
7070         * appdomain.h: Added definition of metadata_section mutex here. 
7071
7072         * object.c: define metadata_mutex here.
7073
7074 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7075
7076         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7077         fixed.
7078
7079 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7080
7081         * reflection.c: Fix bug #46669
7082
7083 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7084
7085         * exception.c:
7086         * exception.h:
7087         * icall.c:
7088         * object.h: fill in the type name for TypeLoadException.
7089
7090 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7091
7092         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7093         relationship between TypeBuilders while compiling corlib) and bug
7094         45993 (Array types returned from the runtime while compiling
7095         corlib were from the loaded corlib).
7096
7097 2003-07-22  Martin Baulig  <martin@ximian.com>
7098
7099         * mono-debug-debugger.c: Reworked the type support a bit more;
7100         distinguish between types and classes.
7101
7102 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7103
7104         * icall.c: add IsArrayImpl icall.
7105
7106 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7107
7108         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7109         initializing real_size only once. Also fix bug #46602.
7110
7111 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7112
7113         * object.c: Renamed mono_metadata_section to metadata_section.
7114
7115 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7116
7117         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7118           empty array if the type is an array. Fixed.
7119           ves_icall_MonoMethod_get_base_definition: if the base method
7120           is abstract, get the MethodInfo from the list of methods of
7121           the class.
7122         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7123           and it was 1-based. Fixed in mono_param_get_objects.
7124
7125 2003-07-20  Martin Baulig  <martin@ximian.com>
7126
7127         * mono-debug.h: Set version number to 31.
7128         (mono_debug_init): Added `MonoDomain *' argument.
7129
7130         * mono-debug-debugger.c: Reworked the type support; explicitly
7131         tell the debugger about builtin types; pass the `klass' address to
7132         the debugger.
7133
7134 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7135
7136         * image.c: Allow new metadata tables to be loaded without a
7137         warning. Also update the warning message to give the new constant value.
7138                 
7139 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7140
7141         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7142         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7143         array type representation changes.
7144
7145 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7146
7147         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7148         on Environment.Exit () call.
7149
7150 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7151
7152         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7153         requires a matching corlib.
7154
7155 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7156
7157         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7158           Committed again without the CRs.
7159         
7160 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7161
7162         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7163           getting it from the "this" socket instance. Did not work
7164           if the socket is a subclass of Socket.
7165           Also fixed bug #35371.
7166
7167 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7168
7169         * metadata.c: fixed size for TypedByRef.
7170         * loader.c: when searching for a method, consider the vararg amrker.
7171         * unicode.c, decimal.c: constify some arrays.
7172
7173 2003-07-15  Dick Porter  <dick@ximian.com>
7174
7175         * socket-io.c: Fixed compilation for gcc < 3.2.
7176
7177         Fixed compilation for machines that don't have AF_INET6 (thanks to
7178         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7179
7180         Fixed compile warnings.
7181         
7182         Fixed formatting and line endings.
7183
7184 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7185
7186         * socket-io.h:
7187         * socket-io.c: Added IPv6 support.
7188
7189 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7190
7191         * class.c (mono_class_is_assignable_from): New function to implement
7192         the is_assignable_from logic. Used by mono_object_isinst, 
7193         Type::IsAssignableFrom () and the interpreter.
7194
7195         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7196         Object, even interfaces.
7197         
7198         * object.c (mono_object_isinst): Implement in terms of 
7199         is_assignable_from.
7200
7201         * icall.c (ves_icall_type_is_assignable_from): New icall.
7202
7203 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7204
7205         * domain.c (foreach_domain): fix compiler warning.
7206
7207 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7208
7209         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7210         not available on all plattforms
7211
7212 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7213
7214         * image.h image.c: Store the metadata version string in MonoImage.
7215         * icall.c: New icall to retrieve the image version.
7216         * reflection.c (create_dynamic_image): Fill in the image version field
7217         * reflection.c (build_compressed_metadata): Use the image version
7218         from the image structure.
7219
7220 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7221
7222         * appdomain.c: modified comment.
7223         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7224         That will be its last iteration when mono_gc_cleanup is called from
7225         mono_runtime_cleanup and before the domain is unloaded.
7226
7227         Fixes bug #45962.
7228
7229 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7230
7231         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7232         attributes.
7233
7234 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7235
7236         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7237         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7238         Bernie Solomon <bernard@ugsolutions.com>.
7239
7240 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7241
7242         * object.c, object.h: provide mono_object_new_fast() for faster
7243         allocation in some special cases.
7244
7245 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7246
7247         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7248         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7249
7250 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7251
7252         * threadpool.c: fix leaks.
7253
7254 2003-07-01  Dick Porter  <dick@ximian.com>
7255
7256         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7257         using MonoGHashTables.  Fixes threadpool bug posted to list.
7258
7259 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7260
7261         * image.h, image.c: added support to load an assembly from a byte array.
7262         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7263         assembly bundle support.
7264
7265 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7266
7267         * threadpool.c (mono_thread_pool_add): keep a reference to the
7268         AsyncResult to prevent GC
7269
7270 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7271
7272         * class.c: leak fix.
7273
7274 2003-06-25  Dick Porter  <dick@ximian.com>
7275
7276         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7277         for the async object, the WaitHandle object will close the handle.
7278         Fixes bug 45321.
7279
7280 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7281
7282         * class.c: in mono_array_class_get (), lookup from the hash with the
7283         same type we insert: this works around a bug in
7284         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7285         lluis. The real fix will have to wait for after the release.
7286
7287 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7288
7289         * icall.c: fix memory leak when getting type members.
7290
7291 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7292
7293         * reflection.c: added more pubtoken special cases.
7294
7295 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7296
7297         * class.c: handle field offset correctly when class size
7298         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7299
7300 2003-06-20  Martin Baulig  <martin@ximian.com>
7301
7302         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7303         *image' field.
7304
7305 2003-06-20  Martin Baulig  <martin@ximian.com>
7306
7307         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7308
7309 2003-06-20  Martin Baulig  <martin@ximian.com>
7310
7311         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7312         just distinguish between variables in registers and variables at
7313         an offset relative to a register.
7314
7315 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7316
7317         * icall.c: #ifdef out latest changes until mcs is fixed.
7318
7319 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7320
7321         * icall.c: return members in metadata order.
7322
7323 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7324
7325         * icall.c: avoid infinite loop in GetTimeZoneData.
7326
7327 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7328
7329         * icall.c: added Marshal.Prelink/All icalls.
7330
7331 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7332
7333         * object.c, object.h: fix warnings and do some overflow checking
7334         when creating arrays.
7335
7336 2003-06-17  Dick Porter  <dick@ximian.com>
7337
7338         * file-io.h:
7339         * file-io.c: File attributes need to be tweaked slightly when
7340         passed from the managed to the w32 world.
7341
7342 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7343         * profiler.h profiler-private.h profiler.c: Rework last patch
7344         based on suggestion by Paolo.
7345         
7346 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7347
7348         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7349         instruction level coverage data collection.
7350         * profiler.h profiler.c (: Added new callback function which can be
7351         used by the profiler to limit which functions should have coverage
7352         instrumentation.
7353         * profiler.c (mono_profiler_load): Call g_module_build_path to
7354         generate the file name of the profiler library.
7355
7356 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7357
7358         * profiler.c, profiler.h, profiler-private.h: added basic block 
7359         coverage profiling API.
7360
7361 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7362
7363         * reflection.c (mono_reflection_create_runtime_class): Add support
7364         for events in dynamically generated code.
7365
7366         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7367         not allocated.
7368
7369 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7370
7371         * icall.c: when getting timezone info, return reasonable values if we
7372         can't get the actual data.
7373
7374 2003-06-14  Dick Porter  <dick@ximian.com>
7375
7376         * threads.c (start_wrapper): Remove the reference to the thread
7377         object in the TLS data, so the thread object can be finalized.
7378         This won't be reached if the thread threw an uncaught exception,
7379         so those thread handles will stay referenced :-( (This is due to
7380         missing support for scanning thread-specific data in the Boehm GC
7381         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7382
7383 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7384
7385         * reflection.c: ensure streams and tables are first allocated with
7386         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7387
7388 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7389
7390         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7391
7392 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7393
7394         * reflection.c (mono_reflection_create_runtime_class): Add support for
7395         properties to dynamically created classes.
7396         * reflection.c: Fix a few places where non-MonoObjects were inserted
7397         into the tokens hashtable.
7398
7399 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7400
7401         * object.c: some support to handle out of memory exceptions.
7402
7403 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7404
7405         * marshal.c (mono_marshal_get_native_wrapper): support reference
7406         return types
7407
7408 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7409
7410         * object.h, object.c: more portability stuff from Bernie Solomon.
7411         Unexport mono_object_allocate(). Added mono_object_unbox ().
7412         Set exitcode when an unhandled exception is thrown.
7413
7414 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7415
7416         * marshal.c (mono_marshal_get_native_wrapper): use custom
7417         marshaler for return types.
7418
7419 2003-06-10  Dick Porter  <dick@ximian.com>
7420
7421         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7422         ip_mreq is available
7423
7424 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7425
7426         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7427         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7428         by Bernie Solomon <bernard@ugsolutions.com>.
7429
7430 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7431
7432         * gc.c (mono_gc_init): Avoid error message on shutdown when
7433         GC_DONT_GC=1 is used.
7434
7435         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7436         New icall to return the GUID of a module.
7437
7438 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7439
7440         * class.c: ensure instance size always includes the parent's size
7441         even whem class size is set explicitly (fixes bug#44294).
7442
7443 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7444
7445         * profiler.h, profiler.c: made the simple profiler thread-safe,
7446         get more accurate timing info. Allow the loading of an
7447         externally-developed profiler module.
7448
7449 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7450
7451         * marshal.c (mono_marshal_get_native_wrapper): improved
7452         class/byref arguments.
7453         (mono_marshal_get_native_wrapper): better string marshaling support.
7454
7455 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7456
7457         * class.c: ensure .pack and .size are handled correctly and
7458         simplified layout of static fields.
7459
7460 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7461
7462         * appdomain.c
7463         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7464
7465         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7466         current directory (fix bug 44008)
7467
7468 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7469
7470         * marshal.c (mono_marshal_get_native_wrapper): started support for
7471         custom marshalers.
7472         (mono_delegate_to_ftnptr): consider marshalling specifications
7473
7474 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7475
7476         * reflection.c, reflection.h: emit custom marshal info.
7477
7478 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7479
7480         * object.c: free the GError.
7481         * icall.c: added CloseEvent_internal.
7482         * threads.[ch]:
7483         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7484         call.
7485
7486 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7487
7488         * loader.c (mono_method_get_signature): Add support for dynamic
7489         assemblies.
7490
7491 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7492
7493         * reflection.c: fixed bug #43905.
7494
7495 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7496
7497         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7498         handling TypedReference and ArgIterator.
7499         * loader.c, loader.h: added function to get signature at call site.
7500
7501 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7502
7503         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7504         data readonly. Buglets and warning fixes. Some MethodSpec support.
7505
7506 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7507
7508         * class.h, class.c, object.c: remove relative numbering support.
7509
7510 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7511
7512         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7513         free the string, until we get a chance to fix Gtk#
7514
7515 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7516
7517         * marshal.c: revert last patch.
7518
7519 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7520
7521         * icall.c: updates for new mono_class_vtable() not calling
7522         the type constructor anymore.
7523
7524 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7525
7526         * object.h, object.c: separate vtable creation from type
7527         initialization. Make running the .cctor thread safe.
7528
7529 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7530
7531         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7532
7533 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7534
7535         * loader.c (mono_get_method): consider calling convention
7536
7537 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7538
7539         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7540         to return the invisible global type for a module.
7541
7542         * reflection.c (mono_image_build_metadata): Emit global fields too.
7543
7544 2003-05-20  Peter Williams  <peterw@ximian.com>
7545
7546         * loader.c (mono_lookup_internal_call): Add a few newlines.
7547
7548 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7549
7550         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7551         literal strings.
7552
7553         * appdomain.c (set_domain_search_path): Recalculate search path when
7554         AppDomainSetup.PrivateBinPath changes.
7555
7556         * object.c (mono_class_compute_gc_descriptor): It turns out some
7557         parts of the class libs (like System.Thread) holds pointers to
7558         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7559         to treat native int a pointer type here.
7560         
7561 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7562
7563         * appdomain.h, domain.c: add hashtable for jump target resolution.
7564
7565 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7566
7567         * reflection.h reflection.c icall.c: Added new icalls 
7568         GetManifestResourceInfoInternal, GetModulesInternal and support
7569         infrastructure.
7570
7571 2003-05-16  Dick Porter  <dick@ximian.com>
7572
7573         * icall.c:
7574         * file-io.h:
7575         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7576
7577 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7578
7579         * object.c: mono_store_remote_field: little fix to previous patch.
7580
7581 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7582
7583         * class.c: add constructors to array classes.
7584         * icall.c: special case array construction for InternalInvoke (),
7585
7586 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7587
7588         * class.h class.c reflection.c object.c: Added support for field
7589         defaults in dynamically generated classes.
7590
7591 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7592
7593         * reflection.c: properly encode charset for ddlimport.
7594
7595 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7596
7597         * threads.c: allow compiling without GC.
7598
7599 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7600
7601         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7602         handling of thread static data.
7603
7604 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7605
7606         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7607
7608 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7609
7610         * class.c (mono_array_class_get): always set the serializable flags
7611         (mono_array_class_get): always set the SEALED attribute for array types
7612
7613 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7614
7615         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7616         attributes (fix for bug 42021).
7617
7618 2003-05-12  Dick Porter  <dick@ximian.com>
7619
7620         * gc.c: Don't run finalizers when the finalizer thread is
7621         finishing up, because the default domain has already been
7622         destroyed.
7623
7624 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7625
7626         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7627         value is null, we should throw an exception.   This is slightly
7628         different than the other conventions used for the constructor.
7629
7630 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7631
7632         * socket-io.c: fixed windows build.
7633
7634 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7635
7636         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7637
7638 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7639
7640         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7641         compilers.
7642
7643 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7644
7645         * class.c (mono_class_layout_fields): Add experimental GC aware
7646         auto layout facility. Requires class library changes to work correctly.
7647
7648         (mono_class_setup_vtable): Avoid overriding explicit interface
7649         method implementations. Fixes iface3.exe test.
7650
7651         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7652         object reference.
7653         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7654         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7655
7656         * metadata.h: Add new type classification macro which determines
7657         whenever the type holds an object reference.
7658
7659 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7660
7661         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7662
7663 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7664
7665         * gc.c (finalizer_thread): Work around a GC bug.
7666
7667 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7668
7669         * marshal.c (emit_struct_conv): allow unions
7670
7671         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7672
7673 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7674
7675         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7676
7677 2003-05-06  Martin Baulig  <martin@ximian.com>
7678
7679         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7680
7681 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7682
7683         * socket-io.c:
7684         (Select_internal): allow NULLs, don't create arrays if not needed.
7685         Coupled with Socket.cs changes.
7686
7687         * threadpool.c:
7688         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7689         register a finalizer for it that will close the semaphore handle. This
7690         fixes the leak and make Lupus' test run with > 4080 loops.
7691
7692 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7693
7694         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7695         Jerome Laban (bug #42287)
7696
7697 2003-05-02  Martin Baulig  <martin@ximian.com>
7698
7699         * debug-mono-symfile.h
7700         (MonoSymbolFile): Moved declaration into mono-debug.h.
7701         (MonoDebugMethodJitInfo): Likewise.
7702         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
7703         argument.
7704         (_mono_debug_address_from_il_offset): Take a
7705         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
7706
7707         * mono-debug.h
7708         (MonoDebugDomainData): New struct.
7709         (mono_debug_get_domain_data): New function.
7710         (mono_debug_add_method): Take an additional `MonoDomain *'
7711         argument.
7712         (mono_debug_source_location_from_address): Likewise.
7713         (mono_debug_il_offset_from_address): Likewise.
7714         (mono_debug_address_from_il_offset): Likewise.
7715
7716 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
7717
7718         * reflection.c: one more check for null type in custom attrs.
7719
7720 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7721
7722         * reflection.c: avoid warning (comparison is always false due to limited
7723         range of data type).
7724
7725 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7726
7727         * icall.c: throw an exception in Type.GetField if the argument 'name'
7728         is NULL.
7729
7730 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
7731
7732         * reflection.c: fixed handling of enums in named arguments to custom
7733         attributes (bug #42123).
7734
7735 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
7736
7737         * reflection.c: use the right array element type and handle
7738         a null for a Type argument, too.
7739
7740 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
7741
7742         * reflection.c: handle arrays as arguments to custom attributes.
7743
7744 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7745
7746         * reflection.c: handle a string value in a custom attr
7747         ctor that takes an object.
7748
7749 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
7750
7751         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
7752         (fix bug #42063)
7753
7754 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
7755
7756         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
7757
7758 2003-04-27  Martin Baulig  <martin@ximian.com>
7759
7760         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
7761         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
7762         MONO_DEBUGGER_EVENT_BREAKPOINT.
7763         (mono_breakpoint_trampoline_code): Removed.
7764         (mono_debugger_event_handler): The last argument is now a
7765         `guint32'.
7766         (mono_debugger_insert_breakpoint_full): Removed the
7767         `use_trampoline' argument.
7768         (mono_debugger_method_has_breakpoint): Likewise.
7769         (mono_debugger_trampoline_breakpoint_callback): Renamed to
7770         mono_debugger_breakpoint_callback(); take the method and
7771         breakpoint number as arguments.
7772
7773 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
7774
7775         * metadata.c: fix off by one when loading parameters attributes.
7776
7777 2003-04-24  Martin Baulig  <martin@ximian.com>
7778
7779         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
7780
7781 2003-04-24  Martin Baulig  <martin@ximian.com>
7782
7783         * mono-debug-debugger.c: Moved all code which interacts with the
7784         Mono Debugger here.
7785
7786         * debug-mono-symfile.c: This code now just deals with the symbol
7787         file itself, the debugger code is now in mono-debug-debugger.c.
7788
7789 2003-04-23  Martin Baulig  <martin@ximian.com>
7790
7791         * mono-debug.c (mono_debug_source_location_from_il_offset):
7792         New method; like mono_debug_source_location_from_address(), but
7793         takes an IL offset instead of a machine address.
7794
7795 2003-04-23  Martin Baulig  <martin@ximian.com>
7796
7797         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
7798         `line' field; this is now computed by the debugger.
7799
7800 2003-04-23  Martin Baulig  <martin@ximian.com>
7801
7802         * mono-debug.[ch]: New files.  This is the new debugging interface.
7803
7804         * mono-debug-debugger.[ch]: New files.  Moved all code which
7805         interacts with the Mono Debugger here.
7806
7807 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
7808
7809         * domain.c (mono_init): initialize mono_defaults.monitor_class
7810
7811 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
7812
7813         * reflection.c (method_encode_code): Add a spicy exception to help
7814         future compiler authors.
7815
7816 2003-04-21  Martin Baulig  <martin@ximian.com>
7817
7818         * icall.c
7819         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7820         Make this work with relative pathnames; g_filename_to_uri() needs
7821         an absolute filename.
7822
7823 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
7824
7825         * icall.c: Track name changes in Object and ValueType.
7826
7827 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
7828
7829         * metadata.c (mono_type_stack_size): size should be a multiple of
7830         sizeof (gpointer)
7831
7832 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7833
7834         * gc.c:
7835         (internal_domain_finalize): moved into mono_domain_finalize. No need
7836         to create another thread because the finalizers will be run in the
7837         finalizer thread.
7838         
7839         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
7840         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
7841         to be run (MS does this too).
7842
7843 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
7844
7845         * object.c (mono_class_compute_gc_descriptor): Update comment.
7846
7847         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
7848
7849         * image.h: Add synchronized wrapper cache.
7850
7851         * image.c (do_mono_image_open): Initialize cache.
7852
7853         * reflection.c (create_dynamic_mono_image): Initialize cache.
7854
7855 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7856
7857         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
7858         ves_icall_System_Buffer_ByteLengthInternal.
7859
7860 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7861
7862         * reflection.c: setup klass->nested_in earlier. Allow
7863         a dash in the assembly name.
7864
7865 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
7866
7867         * metadata.c (mono_type_to_unmanaged): dont access
7868         type->data.klass for MONO_TYPE_OBJECT
7869         (mono_type_to_unmanaged): consider System.Delegate class
7870
7871 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
7872
7873         * class.c: just setup supertypes in the proper place instead of
7874         initializing the full element class for arrays.
7875
7876 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7877
7878         * class.c: ensure the element class of arrays is initialized.
7879         Setup the supertype info for array classes, too.
7880
7881 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
7882
7883         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
7884
7885 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7886
7887         * Makefile.am: re-added -m option when running cygpath. This way,
7888         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
7889         separator.
7890         * mono-config.c: same codepath for locating mono config file for WIN32
7891         and the rest.
7892         * assembly.c: if mono_assembly_setrootdir is called, don't override
7893         the value set.
7894
7895 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7896
7897         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
7898         MONO_ASSEMBLIES variable.
7899
7900 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
7901
7902         * icall.c: added Assembly::GetNamespaces() icall.
7903
7904 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7905
7906         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
7907
7908 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
7909
7910         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
7911         * object.c: fixed bug in the construction of vtable for proxies
7912
7913 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
7914
7915         * object.c (mono_array_new): Mark mono_array_new as an icall.
7916
7917 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7918
7919         * class.c: fixed test for public method when overriding interfaces.
7920         Closes bug #40970.
7921
7922 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7923
7924         * appdomain.h, domain.c: added mono_domain_foreach() to
7925         be able to access the currently loaded appdomains.
7926         * object.c: make string interning work across sppdomains.
7927         Mark some functions for use as icalls.
7928
7929 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
7930
7931         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
7932
7933         * reflection.h reflection.c: Allocate long living data using 
7934         GC_MALLOC_ATOMIC so the collector does not need to scan it.
7935
7936         * reflection.c: Double the allocation size in streams instead of
7937         increasing it, to prevent unneccesary copying on large assemblies.
7938         
7939         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
7940         creation if the assembly does not have the Run flag set.
7941
7942 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
7943
7944         * class.h: avoid the C++ keywords in header files (Jerome Laban
7945         spotted and fixed this).
7946
7947 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7948
7949         * object.c:
7950         (mono_unhandled_exception): fill in the arguments for the
7951         UnhandledException event. Only trigger that event for the default
7952         domain (as MS does).
7953
7954 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
7955
7956         * object.c: Improve typed allocation stuff based on suggestions from
7957         Paolo. Also turn it on if the GC library supports it.
7958
7959 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
7960
7961         * object.c object.h class.h: Added experimental typed allocation
7962         facility using the interfaces in gc_gcj.h.
7963
7964         * os/gc_wrapper.h: Added new include files.
7965         
7966 2003-04-03  Martin Baulig  <martin@ximian.com>
7967
7968         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
7969         which is not yet enabled by default.
7970
7971         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
7972         functions.
7973         (mono_gc_lock, mono_gc_unlock): New static functions.
7974
7975         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
7976         functions; stop/start the world for the garbage collector.  This
7977         is using the windows API; we need to complete the SuspendThread()/
7978         ResumeThread() implementation in the io-layer to make this work on Unix.
7979         (mono_gc_push_all_stacks): New public function; tells the garbage
7980         collector about the stack pointers from all managed threads.
7981
7982 2003-04-03  Martin Baulig  <martin@ximian.com>
7983
7984         * object.h (MonoThread): Added `gpointer stack_ptr'.
7985
7986         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
7987
7988 2003-04-03  Martin Baulig  <martin@ximian.com>
7989
7990         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
7991
7992 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
7993
7994         * reflection.c (typebuilder_setup_fields): Initialize field.first and
7995         field.last.
7996
7997 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
7998
7999         * loader.c (mono_lookup_internal_call): Report the corlib that is
8000         out of sync.
8001
8002 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8003
8004         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8005         System.DBNull (it's class not valuetype).
8006
8007 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8008
8009         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8010         if the array method was already assigned a token (fixes bug#40646).
8011
8012 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8013
8014         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8015         if no assembly is given.
8016
8017 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8018
8019         * metadata.h: Added the new tables.
8020
8021         * row-indexes.h: Added definitions for new tables.
8022
8023         * metadata.c: Add schemas for new tables, and add support for
8024         computing the sizes of them.
8025
8026         * class.c: Update for handling the new type cases.
8027
8028 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8029
8030         * metadata.h (MONO_TYPE_IS_VOID): new macro
8031
8032 2003-03-31  Martin Baulig  <martin@ximian.com>
8033
8034         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8035
8036         * threads.c (mono_thread_new_init): Call `thread_created' in the
8037         mono_thread_callbacks.
8038
8039 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8040
8041         * loader.h: added marshalbyrefobject_class to mono_defaults
8042         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8043         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8044           generation of output parameters.
8045           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8046         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8047           contextbound and the target object belongs to the context of the caller.
8048         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8049         * object.c: Implemented support for interfaces and abstract classes
8050           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8051           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8052
8053 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8054
8055         * class.h class.c (mono_class_is_subclass_of): New function.
8056         
8057         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8058         routines for most common case (calls from ArrayList::ToArray).
8059
8060         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8061         routine so programs which call Environment::Exit() can be profiled.
8062
8063         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8064         Added MONO_ARCH_SAVE_REGS.
8065
8066         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8067
8068 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8069
8070         * blob.h: Add a couple of new MonoType types definitions.
8071
8072         * tabledefs.h: Add a couple of new call convs.
8073
8074 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8075
8076         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8077         the layout of the class.
8078
8079         * reflection.c (alloc_table): double the size on overflow to avoid
8080         unnecessary copying.
8081
8082         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8083         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8084         null so it can be garbage collected.
8085         
8086 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8087
8088         * reflection.c (mono_reflection_get_type): Return the resolved type
8089         only if it is in the assembly we searched.
8090
8091         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8092
8093         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8094         method.
8095
8096 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8097
8098         * appdomain.c:
8099         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8100         the right one is 'file:///blah', but MS allows it.
8101         * assembly.c:
8102         (mono_assembly_open): allow 'file://blah'
8103
8104         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8105
8106 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8107
8108         * socket-io.c: fixes bug #40310.
8109
8110 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8111
8112         * reflection.c (mono_reflection_parse_type): handle deeply nested
8113         types correctly.
8114
8115         * reflection.c (mono_image_create_token): Use unique token values
8116         since they will be put into a hash table.
8117
8118         * class.c (mono_class_setup_vtable): If a method occurs in more than
8119         one place in the vtable, and it gets overriden, then change the
8120         other occurances too.
8121
8122         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8123         object as return type.
8124
8125 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8126
8127         * icall.c: Deleted "ToString" implementation for double and float
8128         because they are full implemented in managed code.
8129
8130 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8131
8132         * reflection.c, reflection.h: implemented and exported functions
8133         to retrieve info about custom attributes.
8134
8135 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8136
8137         * appdomain.c: moved Uri handling to assembly.c
8138         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8139         work when using a file Uri in *nix and windows.
8140
8141         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8142         GetReferencedAssemblies.
8143
8144 2003-03-18  Dick Porter  <dick@ximian.com>
8145
8146         * icall.c: Rename a couple of internal calls
8147
8148         * threads.c: Set the thread state to Stopped when a thread exits.
8149         Fixes bug 39377.
8150
8151 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8152
8153         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8154         New icall.
8155
8156         * object.c (mono_class_vtable): fix warning.
8157
8158 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8159
8160         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8161
8162         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8163         memory.
8164         (method_encode_clauses): Create exception info structures in the right
8165         order.
8166         (mono_reflection_setup_internal_class): Initialize supertypes field.
8167
8168         * class.c object.c: Handle interfaces which implement other interfaces 
8169         correctly.
8170
8171         * class.h class.c: Move the supertypes array initialization code into 
8172         a separate function so it can be used for dynamic types too. Also call
8173         it earlier, in mono_class_init(), since it can be used before the
8174         type is initialized.
8175
8176 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8177
8178         * Makefile.am:
8179         * assembly.c:
8180         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8181
8182         * appdomain.c:
8183         * appdomain.h:
8184         * marshal.c:
8185         * object.c: remove warnings.
8186
8187 2003-03-13  Martin Baulig  <martin@ximian.com>
8188
8189         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8190         (MonoDebugLexicalBlockEntry): New types.
8191
8192         * debug-mono-symfile.c
8193         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8194
8195 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8196
8197         * process.c: ret can be any non-zero value accroding to MS doc.
8198
8199 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8200
8201         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8202         fixing a warning for a miss-used prototype, would have cause
8203         random memory corruption.
8204
8205 2003-03-07  Martin Baulig  <martin@ximian.com>
8206
8207         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8208         getting really annoying ....
8209
8210 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8211
8212         * reflection.c (fixup_method): added support for array methods.
8213
8214 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8215
8216         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8217         (pointed out by Michael Adams).
8218
8219 2003-03-04  Dick Porter  <dick@ximian.com>
8220
8221         * icall.c: Temporarily reverted the Double and Single ToString()
8222         change, because it broke nunit.
8223
8224 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8225
8226         * object.h, threads.h: make include files compatible with C++
8227         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8228
8229 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8230
8231         * icall.c: Erased ToString helper functions for Double and Single.
8232         Now, that implementations ar all in managed code (Double and Single
8233         Formatters).
8234
8235 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8236
8237         * appdomain.c: Added method for initializing the default context of
8238         a domain. Added internal call for getting the default context.
8239         * appdomain.h: Added context variable in MonoDomain struct.
8240         * domain.c: mono_domain_set also sets the default context of the domain
8241         * icall.c: Mapped internal method InternalGetDefaultContext.
8242         * object.c: mono_object_get_virtual_method returns always a remoting
8243         wrapper if the object is a transparent proxy.
8244         mono_runtime_invoke_array: when creating an object by calling the
8245         constructor, if the created object is a proxy, then the constructor should
8246         be called using the a remoting wrapper.
8247
8248 2003-03-03  Dick Porter  <dick@ximian.com>
8249
8250         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8251         variable so it compiles on solaris.  Problem spotted by
8252         Christopher Taylor <ct@cs.clemson.edu>
8253
8254 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8255
8256         * appdomain.c:
8257         (get_info_from_assembly_name): don't leak value.
8258
8259         * icall.c:
8260         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8261         result.
8262
8263 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8264
8265         * assembly.c: export mono_image_load_references ().
8266         * class.c: handle function pointers. mono_class_from_name() now
8267         supports nested type names directly.
8268
8269 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8270
8271         * reflection.h reflection.c: Encode already created dynamic methods 
8272         and fields correctly as a DEF instead of a REF.
8273
8274         * reflection.c: Get rid of the force_ref argument to 
8275         mono_image_typedef_or_ref since it was wrong in the first place.
8276
8277         * string-icalls.c: add error checking to string constructors according
8278         to the MSDN docs.
8279
8280         * reflection.c: Emit types in the order their TypeBuilders were 
8281         created. Previously, a new table index was assigned to each type before
8282         the tables were emitted. This was wrong because the signature blob
8283         might already refer to a type by its original table index.
8284
8285 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8286
8287         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8288         change.
8289         
8290 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8291
8292         * Makefile.am: make assemblies dir have \ instead of / on windows.
8293
8294 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8295
8296         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8297         iterate over the NESTEDCLASS table using a linear search since the
8298         table is not guaranteed to be sorted by the secondary key.
8299
8300         * class.c (mono_class_create_from_typedef): fixed up call to
8301         mono_metadata_nesting_typedef.
8302         
8303 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8304
8305         * marshal.c (mono_string_to_byvalstr): clear the memory as
8306         suggested by Jerome Laban <jlaban@wanadoo.fr>
8307
8308 2003-02-26  Dick Porter  <dick@ximian.com>
8309
8310         * process.c: Cope with padding in .rsrc blocks
8311
8312 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8313
8314         * metadata.h: reverted the filter_len change, it breaks reflection
8315         
8316 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8317
8318         * metadata.h: added a new field to store the filter_len
8319         
8320
8321 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8322
8323         * reflection.c: handle custom attributes for types and members
8324         created with Reflection.Emit (bug#38422).
8325
8326 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8327
8328         * reflection.c: define RTSpecialName automatically for constructors for
8329         compatibility with MS.NET.
8330
8331         * reflection.c (mono_reflection_create_runtime_class): initialize
8332         nested_in field of dynamically created classes.
8333
8334 2003-02-22  Martin Baulig  <martin@ximian.com>
8335
8336         * debug-mono-symfile.h: Incremented version number.
8337
8338 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8339
8340         * object.h icall.c process.c: fix warnings.
8341
8342 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8343
8344         * appdomain.h appdomain.c:
8345         (mono_domain_try_type_resolve): split the 
8346         name_or_tb argument into a name and a tb argument.
8347         (mono_domain_has_type_resolve): new function to check whenever the
8348         application has registered a TypeResolve event handler.
8349         
8350         * icall.c reflection.h reflection.c: move the type resolve logic into
8351         mono_reflection_get_type () so it will be invoked when 
8352         Assembly::GetType () is called.
8353
8354         * reflection.c:
8355         (mono_reflection_get_type): renamed to get_type_internal.
8356         (mono_reflection_get_type): fixed type name generation so it works 
8357         for nested types too.
8358         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8359         costly type name generation if there is no resolve event handler.
8360
8361 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8362
8363         * class.c, image.c: load exported types from file references.
8364
8365 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8366
8367         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8368           used to cache the managed methods used to create proxies and make 
8369           remote invocation of methods.
8370         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8371           to be remotely created.
8372         * object.c: Modified the method mono_class_vtable(). It now initializes 
8373           the remote flag of the vtable. Modified mono_object_new_specific(), 
8374           so now it checks the remote flag.
8375         * icall.c: Added a couple of internal methods, one for enabling instance 
8376           creation interception for a type, and one for creating objects bypassing
8377           the remote check.
8378
8379 2003-02-18  Martin Baulig  <martin@ximian.com>
8380
8381         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8382         New interncall to get a method's metadata token.
8383
8384         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8385         New interncall for the debugger.
8386
8387 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8388
8389         * class.c (mono_class_setup_vtable): allocate supertype array
8390
8391 2003-02-18  Martin Baulig  <martin@ximian.com>
8392
8393         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8394
8395 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8396
8397         * reflection.c:
8398         (assembly_name_to_aname): jump over unknown properties (i've found
8399         something like: 'type, assembly, version=xxx, custom=null, public...',
8400         so now will ignore custom=null and still get the rest of the values).
8401
8402 2003-02-17  Dick Porter  <dick@ximian.com>
8403
8404         * threads.c: Have Thread.Start() wait for a semaphore to signal
8405         that the thread has set up all its local data.  This fixes bug
8406         34323, where Abort() raced the new thread's TLS data.
8407
8408         Also removes the handle_store() call from start_wrapper, because
8409         threads are now always created suspended and there is no longer a
8410         race between the parent and child threads to store the info.
8411
8412 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8413
8414         * image.c: explain the #- heap issue in a message, hopefully
8415         avoiding FAQs on mono-list.
8416
8417 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8418
8419         * icall.c:
8420         (GetEntryAssembly): if the domain has not invoked
8421         AppDomain.ExecuteAssembly yet, return the assembly of the default
8422         AppDomain.
8423
8424 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8425
8426         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8427
8428 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8429
8430         * metadata.c, reflection.c: simple speedup to type hash
8431         and equals code.
8432
8433 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8434
8435         * image.c, image.h, class.c, assembly.c: move module loading
8436         to MonoImage. When loading metadata, consider alignemnet from
8437         the start of metadata, not from the metadata address in memory.
8438
8439 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8440
8441         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8442         AssemblyBuilder objects. Factored out custom attribute creation into
8443         a separate function.
8444         (create_custom_attr): new function to create custom attributes.
8445
8446 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8447
8448         * Makefile.am: Got tired of typing the full pathname to pedump.
8449         Until there is another option, am installing this.
8450
8451 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8452
8453         * class.c (class_compute_field_layout): always set field->parent 
8454         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8455
8456 2003-02-11  Dick Porter  <dick@ximian.com>
8457
8458         * threads-types.h:
8459         * monitor.c: Rewrote Monitor, making lock much faster and
8460         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8461         creates them as needed.
8462
8463         * exception.c: Added SynchronizationLockException
8464
8465         * threads.c: Deleted old Monitor implementation.  The new one is
8466         in a new file.
8467
8468 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8469
8470         * class.c: handled TypedReference type code. Set the correct size for
8471         class data. Setup interface_offsets for interface classes, too.
8472
8473 2003-02-09  Martin Baulig  <martin@ximian.com>
8474
8475         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8476
8477 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8478
8479         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8480         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8481         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8482         * verify.c: check for code that runs after the end of the method.
8483
8484 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8485
8486         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8487         "System.Math::Round2".
8488         * sysmath.h: Added Floor, Round and Round2 definitions.
8489         * sysmath.c: Modified certain functions that were not 100% compliant
8490         with MS.NET (math precision) and added the implementation of Floor,
8491         Round and Round2.
8492
8493 2003-02-07  Martin Baulig  <martin@ximian.com>
8494
8495         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8496
8497 2003-02-07  Martin Baulig  <martin@ximian.com>
8498
8499         * debug-mono-symfile.c: Reflected latest symwriter changes.
8500         (mono_debug_create_mono_symbol_file): Removed.
8501         (mono_debug_open_mono_symbol_file): Take an argument which
8502         specifies whether to create a dynamic symbol file.
8503
8504 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8505
8506         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8507
8508 2003-02-05  Martin Baulig  <martin@ximian.com>
8509
8510         * reflection.c (mono_image_build_metadata): Make this public,
8511         protect it against being called multiple times, don't create
8512         resources and don't build the compressed metadata here.
8513         (mono_image_create_pefile): Do this here.
8514
8515         * icall.c
8516         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8517
8518 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8519
8520         * socket-io.c: fixed bug #36322.
8521
8522 2003-02-06  Piers Haken <piersh@friskit.com>
8523
8524         * appdomain.[ch]:
8525         * class.h:
8526         * debug-mono-symfile.c:
8527         * icall.c:
8528         * loader.c:
8529         * mono-config.c:
8530         * monosn.c:
8531         * reflection.c:
8532         * socket-io.c: warning cleanups
8533
8534 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8535
8536         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8537         function. works like remoting invoke, but does a check for the Proxy first.
8538
8539 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8540
8541         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8542
8543 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8544
8545         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8546         array of pointers.
8547         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8548         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8549
8550         * object.c (mono_store_remote_field_new): used by the new jit
8551         instead of mono_store_remote_field
8552         (mono_load_remote_field_new): used by the new jit
8553         instead of mono_load_remote_field
8554
8555 2003-02-05  Patrik Torstensson
8556
8557         * appdomain.c: changed unload to take the domain id instead
8558         of domain
8559         
8560         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8561
8562
8563 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8564
8565         * appdomain.c: don't look for assemblies in ApplicationBase if
8566         PrivateBinPathProbe is set.
8567
8568 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8569
8570         * object.c: make the first argument in main_args contain the absolute
8571         path to the assembly. Fixes bug #37511.
8572
8573 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8574
8575         * icall.c: get correct UTC offset for countries not using daylight
8576         time saving. Fixes bug #30030.
8577
8578 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8579
8580         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8581         and 1 are the family).
8582
8583 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8584
8585         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8586
8587         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8588
8589 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8590
8591         * reflection.c: added support for SignatureHelper tokens, which is
8592         needed by the Calli opcode.
8593
8594         * reflection.h: track changes to SignatureHelper class.
8595
8596         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8597
8598 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8599
8600         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8601
8602 2003-02-03  Patrik Torstensson
8603         * appdomain.[c|h], domain.c : 
8604          - Added support for getting a domain via domain id
8605          - Support for setting and getting domain from System.AppDomain 
8606            (used in cross appdomain channel)
8607          - Added support for get/set for a MonoAppContext on a thread 
8608            (Context class in System.Runtime.Remoting.Contexts),
8609          - Removed hack in Get/SetData and ExecuteAssembly.
8610         
8611         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8612         the managed world to get control when a proxy is created.
8613
8614         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8615         
8616 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8617
8618         * icall.c
8619         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8620         Populate the codebase field as well.
8621
8622 2003-02-02  Martin Baulig  <martin@ximian.com>
8623
8624         * debug-mono-symfile.c
8625         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8626         (mono_debug_symfile_add_method): Allow interncalls.
8627
8628 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8629
8630         * icall.c: throw parse exception if strtod fails or the string is empty.
8631
8632 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8633
8634         * marshal.c: handle object type separately from defined
8635         class types.
8636
8637 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8638
8639         * marshal.c: handle NATIVE_LPSTR for strings when it's
8640         explicitly specified.
8641
8642 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8643
8644         * reflection.c, reflection.h, icall.c: setup the reflection
8645         handle cache for ModuleBuilders and AssemblyBuilders.
8646
8647 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8648
8649         * reflection.c (reflection_methodbuilder_to_mono_method): set
8650         pinvoke flag
8651
8652 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8653
8654         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8655
8656 2003-01-29  Dick Porter  <dick@ximian.com>
8657
8658         * threads.c: No need for the fake_thread kludge now that Thread
8659         doesn't run a class constructor
8660         
8661 2003-01-29  Dick Porter  <dick@ximian.com>
8662
8663         * threads.c: Use g_direct_hash instead of the rather bogus
8664         g_int_hash
8665
8666 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8667
8668         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8669         (fix pinvoke12.exe)
8670         (mono_marshal_get_struct_to_ptr): generate valid IL code
8671         (mono_marshal_get_ptr_to_struct): generate valid IL code
8672         (*): correctly set sig->pinvoke, we need to memdup the signature
8673         to do that
8674
8675 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8676
8677         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8678         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8679
8680 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8681
8682         * profiler.c: provide more callers information.
8683
8684 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8685
8686         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8687
8688         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8689
8690         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8691
8692 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8693
8694         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8695         exception instead of going into an infinite loop on dates which it 
8696         can't yet handle.
8697
8698         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
8699         out-of-range exception if needed.
8700
8701         * class.c (mono_class_setup_vtable): allow a virtual method to provide
8702         an implementation for an interface method and to override an inherited
8703         method at the same time. 
8704         Imagine a scenario when a virtual method is used to override a
8705         virtual abstract method in a parent class, and this same method 
8706         provides an implementation for an method inherited from an interface. 
8707         In this case, the interface resolution code will set im->slot, which 
8708         means that the virtual method override pass will skip this method 
8709         which means a pointer to the abstract method inherited from the parent
8710         will remain in the vtable of this non-abstract class.
8711
8712         * class.c: (mono_class_setup_vtable): continue search for a real 
8713         method if only an abstract method is found.     
8714
8715 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8716
8717         * reflection.c: add size to encoding for ByValStr and ByValArray
8718         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
8719
8720 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8721
8722         * class.c (mono_class_setup_vtable): pass the override info as an
8723         argument.
8724
8725         * class.c (mono_class_setup_vtable): set the slot of overriding methods
8726         correctly.
8727         
8728         * reflection.c (ensure_runtime_vtable); add support for method 
8729         overrides.
8730         
8731 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8732
8733         * reflection.c (resolution_scope_from_image): Hack to work to work with
8734         dynamic assemblies.
8735
8736         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
8737         added a 'force_ref' argument to force this function to allways return 
8738         a TypeRef. This is needed by mono_image_get_memberref_token ().
8739         
8740 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8741
8742         * reflection.c (mono_image_get_type_info): interfaces really don't have
8743         a parent.
8744
8745         * reflection.c (mono_image_basic_init): fill out missing fields of
8746         image structure.
8747
8748         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
8749         dynamic assemblies. This is required so dynamic assemblies show up in
8750         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
8751         Type::GetType() etc. This is consistent with MS behaviour.
8752
8753         * image.c image.h reflection.c: add newly created classes to the name 
8754         cache so mono_class_get () will find them.      
8755
8756 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8757
8758         First part of changes to get IKVM.NET running under mono.
8759         
8760         * appdomain.h, appdomain.c: added new function 
8761         mono_domain_try_type_resolve() which will emit TypeResolve events. 
8762         This function will call AppDomain::DoTypeResolve to do the actual work.
8763
8764         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
8765         moved existing code dealing with dynamic tokens to a new function 
8766         called mono_reflection_lookup_dynamic_token (). This function will 
8767         raise TypeResolve events when appropriate. Since reflection.c is not 
8768         part of libmetadata, a new hook function called 
8769         mono_lookup_dynamic_token() is added to class.c which will call this.
8770
8771         * assembly.h assembly.c: make the invoke_load_hook function public,
8772         so it can be called for dynamic assemblies.
8773
8774         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
8775
8776         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
8777         type isn't found.
8778
8779         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
8780         MonoGHashTable, since it contains pointers to objects which the GC 
8781         needs to track.
8782
8783         * assembly.c (search_loaded): remove unused variable.
8784         
8785 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
8786
8787         * object.c: fixed issue exposed by gcc-generated IL programs
8788         that use RVA data for pointers.
8789
8790 2003-01-25  Martin Baulig  <martin@ximian.com>
8791
8792         * threads.c (start_wrapper): Moved the initialization of
8793         `start_func' above the mono_new_thread_init() call to which we
8794         pass it as argument.
8795
8796 2003-01-24  Martin Baulig  <martin@ximian.com>
8797
8798         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
8799         the MonoThread pointer.
8800
8801 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
8802
8803         * icall.c: Rename `PowImpl' to Pow.
8804
8805 2003-01-23  Dick Porter  <dick@ximian.com>
8806
8807         * threads.c (start_wrapper): Create a Thread object if needed, so
8808         the Main() thread can do the class initialisation in a subthread
8809         that has been set up to allow managed code execution.
8810
8811         Pass the thread ID instead of the MonoThread pointer to the thread
8812         start and attach callbacks.  This change is required, because the
8813         jit thread start callback must be called _before_ the Thread
8814         object can be created.
8815         
8816         (mono_thread_init): Removed much object creation code that is no
8817         longer needed.  No managed code is called from here now.
8818
8819         * object.c (mono_runtime_exec_managed_code): Create a subthread
8820         for Main, and call back to the runtime to use it.
8821         Set the exit code when Main exits.
8822
8823         * gc.c: Make sure domain finalisation happens in a subthread.
8824         Re-enable threaded GC, fixing bug 31333 (again).
8825
8826         * environment.c: System.Environment internall calls (so far just
8827         ExitCode is here, the others are still in icall.c)
8828
8829         * appdomain.c (mono_runtime_cleanup): All threads running managed
8830         code should have finished before mono_runtime_cleanup() is
8831         reached, so no need to clean up threads.
8832
8833 2003-01-22  Martin Baulig  <martin@ximian.com>
8834
8835         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
8836         `gpointer func' arguments.      
8837         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
8838         but added `MonoThread *thread' argument.
8839         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
8840
8841         * threads.c (mono_new_thread_init): Added `gpointer func' argument
8842         and pass it to the mono_thread_start_cb callback.
8843         (mono_install_thread_callbacks): New public function to install a
8844         set of callbacks which are set by the debugger.
8845         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
8846
8847 2003-01-22  Martin Baulig  <martin@ximian.com>
8848
8849         * Makefile.am: Install debug-mono-symfile.h.
8850
8851 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
8852
8853         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
8854
8855 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
8856
8857         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
8858         * class.c (mono_ptr_class_get): correctly set access levels of pointers
8859         (mono_array_class_get): correctly set access levels of arrays
8860
8861 2003-01-20      Patrik Torstensson
8862         * image.h (MonoAssemblyName): changed major, minor, build, revision
8863         from signed to unsigned.
8864
8865 2003-01-20  sean kasun <skasun@azstarnet.com>
8866
8867         * reflection.c (load_cattr_value): Now this handles
8868         MONO_TYPE_SZARRAY.  Fixes bug #35629
8869
8870 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
8871
8872         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
8873         integer value
8874
8875 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8876
8877         * decimal.c: fixed bug #26056.
8878
8879 2003-01-17  Martin Baulig  <martin@ximian.com>
8880
8881         * gc.c: Raise an ExecutionEngineException instead of using g_error().
8882
8883 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8884
8885         * exception.[ch]:
8886         (mono_get_exception_type_initialization): new function.
8887
8888         * object.c: throw a TypeInitializationException when an exception is
8889         thrown invoking the class constructor.
8890
8891 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8892
8893         * reflection.c: fixed attribute reading.
8894
8895 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8896
8897         * icall.c:
8898         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
8899         provided, look for the type in the calling assembly and then in
8900         mscorlib; if the assembly name is provided, only try that one.
8901
8902 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
8903
8904         * object.c: register the vtable before there is a chance it's
8905         queried again recursively.
8906
8907 2003-01-13  Duncan Mak  <duncan@ximian.com>
8908
8909         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
8910         gc-internal.h. 
8911         
8912 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
8913
8914         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
8915
8916 2003-01-11  Martin Baulig  <martin@ximian.com>
8917
8918         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
8919         this to 20 for the release.
8920
8921 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
8922
8923         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
8924
8925         * loader.c (mono_method_get_marshal_info): bug fix
8926
8927         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
8928         structures with explicit layout
8929
8930 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
8931
8932         * profiler.c: made the output more readable (and sorted). 
8933         Added caller information for the allocation profiler.
8934
8935 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
8936
8937         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
8938
8939 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8940
8941         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
8942         to get value types.
8943         
8944 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
8945
8946         * object.c, profiler.h, profiler.c, profiler-private.h:
8947         Added object allocation profiler.
8948
8949 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
8950
8951         * reflection.h, reflection.c: handle global methods.
8952         Compress blob entries.
8953
8954 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
8955
8956         * marshal.c: fix compilation.
8957
8958 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
8959
8960         * loader.c (mono_method_get_marshal_info): impl.
8961
8962         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
8963
8964 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8965
8966         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
8967         for reference types.
8968
8969 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
8970
8971         * loader.c: fixed off by one error in loaded parameter names.
8972
8973 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
8974
8975         * marshal.c (mono_marshal_get_icall_wrapper): like
8976         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
8977         instead of a MonoMethod.
8978
8979 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8980
8981         * decimal.c: fixed bug #36537.
8982
8983 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
8984
8985         * marshal.c: throw a missing method exception if a
8986         P/Invoke method is not found.
8987
8988 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
8989
8990         * icall.c: allow a null this for constructors.
8991
8992 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
8993
8994         * icall.c: raise the proper exceptions if the arguments to the
8995         internal Invoke are incorrect.
8996
8997 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
8998
8999         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9000
9001 2003-01-03  Martin Baulig  <martin@ximian.com>
9002
9003         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9004
9005 2002-12-31  Martin Baulig  <martin@ximian.com>
9006
9007         * debug-mono-symfile.c: Completely rewrote the type section.
9008         Instead of using individual malloc()ed fields, we use one big
9009         continuous memory area and offsets into this area.
9010         See the comments in the source code for details.
9011
9012 2002-12-30  Martin Baulig  <martin@ximian.com>
9013
9014         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9015
9016 2002-12-30  Martin Baulig  <martin@ximian.com>
9017
9018         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9019         line number table in this data blob instead of using an external
9020         pointer.
9021
9022 2002-12-28  Martin Baulig  <martin@ximian.com>
9023
9024         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9025
9026 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9027
9028         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9029         as a boxed return type.
9030
9031 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9032
9033         * appdomain.c
9034         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9035         g_build_filename to properly get separators on the filename created.
9036
9037         * object.h: Small change, introduce MonoMarshalByRefObject to
9038         track the layout of that structure in the C# universe as we make
9039         changes there.
9040
9041 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9042
9043         * object.c: removed assert to allow static fields on interfaces.
9044         * loader.c: a TypeSpec may be used for any type, not just arrays.
9045
9046 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9047
9048         * class.c, class.h: added mono_class_array_element_size ().
9049         Ignore static methods in interfaces.
9050
9051 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9052
9053         * threads.c: fixed the build under cygwin.
9054
9055 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9056
9057         * reflection.c: handle nullref constants. Allocate keys for
9058         reflection handles with the GC.
9059
9060 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9061
9062         * threads.c, threads.h: added mono_thread_get_abort_signal()
9063         to get a suitable signal for thread abort.
9064
9065 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9066
9067         * metadata.c: fix handling of ExportedType table.
9068
9069 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9070
9071         * icall.c: added WriteWindowsDebugString internal call.
9072
9073 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9074
9075         * reflection.h: added fields to match C# implementation.
9076
9077 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9078
9079         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9080
9081 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9082
9083         * gc.h, gc-internal.h: Rename header for GC internal calls to
9084         gc-internal.h from gc.h as to not clash with Boehm GC having its
9085         header installed as <gc.h> in outside include paths.
9086         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9087         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9088
9089 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9090
9091         * icall.c: assign minor, build and revision in FillName.
9092
9093 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9094
9095         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9096         Added support for running code generated by Reflection.Emit.
9097
9098 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9099
9100         * appdomain.c: check for NULL argument in LoadFrom.
9101
9102 2002-12-10  Dick Porter  <dick@ximian.com>
9103
9104         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9105
9106 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9107
9108         * appdomain.c: fix buglet when building exe file name.  Handle full
9109         assembly name (needed after latest changes to AssemblyName).
9110         * image.c:
9111         (mono_image_close): free some hashtables.
9112
9113 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9114
9115         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9116         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9117         on some systems (redhat 7.3) 
9118
9119 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9120
9121         * threads.c: delete the critical section of a sync block,
9122         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9123
9124 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9125
9126         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9127
9128 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9129
9130         * appdomain.[ch]: handle the assembly preload event to try loading the
9131         assemblies using the paths we have in the current domain.
9132
9133         * assembly.[ch]: created an assembly preload hook that is called to try
9134         loading the assembly by other means that the ones provided here.
9135
9136         * domain.c: initialize the domain search path.
9137
9138         From now on, assemblies (TODO: except corlib and System) are loaded
9139         according to these rules when using mono_assembly_load ():
9140
9141                 1. It tries to load the assembly from the ApplicationBase
9142                 of the current domain appending .dll and .exe (TODO: have to
9143                 try loading from name/name.dll and name/name.exe).
9144
9145                 2. It tries the search path specified in PrivateBinPath for the
9146                 current domain (if any).
9147
9148                 3. Previous behavior.
9149
9150 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9151
9152         * icall.c: implemented GetInterfaceMap() related icall.
9153         * domain.c, loader.h: load MethodInfo in mono_defaults.
9154
9155 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9156
9157         * gc.c: disable the finalizer thread for now, untill all the issues
9158         with it are resolved.
9159
9160 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9161
9162         * string-icalls.c: handle embedded nulls in string ctor when the
9163         length is specified.
9164
9165 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9166
9167         * class.c: look for explicit interface implementation in parent
9168         classes, too.
9169
9170 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9171
9172         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9173
9174 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9175
9176         * gc.c: protect handles with a critical section.
9177
9178 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9179
9180         * icall.c:
9181         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9182         parameters. If no assembly specified, try getting the type from all
9183         the assemblies in the current domain, else, load the assembly and get
9184         the type from it.
9185
9186 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9187
9188         * marshal.c: applied patch from Aleksey Demakov that fixes
9189         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9190
9191 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9192
9193         * icall.c: fixed get_location.
9194
9195 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9196
9197         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9198         declarations to make it work with older gcc. 
9199
9200         * loader.c (mono_get_method): set signature->pinvoke for native calls
9201
9202 2002-11-20  Dick Porter  <dick@ximian.com>
9203
9204         * threads.c (mono_thread_init): Set the main thread's handle
9205
9206 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9207
9208         * gc.c: allow compilation without GC support. Changed to match the
9209         mono coding style.
9210
9211 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9212
9213         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9214
9215 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9216
9217         * reflection.c: set a public key token on the core assemblies.
9218
9219 2002-11-18  Dick Porter  <dick@ximian.com>
9220
9221         * threads.c: Split out some thread initialisation so that other
9222         files can set the start callback function.
9223
9224         * gc.c: Run finalisers in a separate thread, to avoid stack
9225         overflow.  Fixes bug 31333.
9226
9227         * appdomain.c: Set up GC finalisation thread.
9228
9229         * reflection.c: 
9230         * object.c: 
9231         * domain.c: Use gc.h macros for GC_malloc
9232         
9233 2002-11-15  Dick Porter  <dick@ximian.com>
9234
9235         * threadpool.c: 
9236         * threads.c:
9237         * appdomain.c: Removed mono_runtime_init_with_attach(),
9238         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9239         merging the extra parameter with the existing function.  Removed
9240         unneeded code in mono_thread_attach().
9241
9242 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9243
9244         * image.c (mono_image_loaded_by_guid): a method to get loaded
9245         images by guid. 
9246         (load_metadata_ptrs): we store the guid as string.
9247
9248 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9249
9250         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9251
9252         * metadata.c (mono_guid_to_string): imported method form Zoltan
9253         Varga (slightly modified)
9254
9255         * assembly.c (mono_assembly_open): load precompiled code
9256
9257         * loader.h (MonoMethod): we store the method token for use in the
9258         aot compiler. 
9259
9260 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9261
9262         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9263         the hook function called when an assembly is loaded.
9264         
9265         * domain.c: Modified file.
9266         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9267
9268         Fixes bug #33196.
9269
9270 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9271
9272         * reflection.c: Map PEFileKind to the value expected by the WinNT
9273         image loader. 
9274
9275 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9276
9277         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9278         Read until the buffer is filled completely.
9279
9280 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9281
9282         * icall.c: implemented MonoType.InternalGetEvent ().
9283
9284 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9285
9286         * appdomain.c: implemented InitAppDomainSetup. Delayed
9287         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9288         the entry_assembly.
9289
9290         * assembly.c: base_dir is now an absolute path ending with
9291         G_DIR_SEPARATOR.
9292
9293         * icall.c: modified get_location according to the above changes.
9294
9295         * object.c: init AppDomain.SetupInformation for the default domain after
9296         we have the entry assembly.
9297
9298         * domain.c: when unloading a domain, setup = NULL.
9299
9300 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9301
9302         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9303
9304 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9305
9306         * object.h, object.c: introduced mono_object_get_virtual_method ()
9307         to lookup the method invoked on an object when a callvirt is done on
9308         a method.
9309         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9310
9311 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9312
9313         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9314         current domain when loaded an assembly and failed to load it.
9315
9316         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9317
9318 2002-10-31  Dick Porter  <dick@ximian.com>
9319
9320         * icall.c: 
9321         * file-io.h: 
9322         * file-io.c: Return the error status in a parameter, as the
9323         GetLastError() value has long since been blown away if we try and
9324         look it up in a subsequent internal call invocation.  Delete the
9325         GetLastError() internal call, because it's useless.
9326
9327 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9328
9329         * class.[ch]: added cast_class to fix bug 29517
9330
9331 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9332
9333         * marshal.c: create valid IL code in the filter clause:
9334         the new JIT is less forgiving:-)
9335
9336 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9337
9338         * icall.c: removed get_property internal call.
9339
9340 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9341
9342         * appdomain.h domain.c: Added an ID to appdomains.
9343         
9344         * threads.c threads.h icall.c: Implement icall
9345         Thread:GetDomainID(), and remove unused icall 
9346         CurrentThreadDomain_internal.
9347
9348 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9349
9350         * icall.c: Don't recurse through the base types in GetConstructor.
9351         Fixes bug #32063. 
9352
9353 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9354
9355         * mempool.h, mempool.c: added mono_mempool_empty() and
9356         mono_mempool_stats().
9357
9358 2002-10-23  Dick Porter  <dick@ximian.com>
9359
9360         * file-io.c: 
9361         * file-io.h: 
9362         * icall.c: Added MonoIO.GetFileType internal call
9363
9364 2002-10-17  Dick Porter  <dick@ximian.com>
9365
9366         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9367         delegate semaphore before waiting for all threads to finish,
9368         because new threads can also call async delegates.  Fixes bug
9369         32004.
9370
9371         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9372         of 3 seconds, in case another async job is queued.  (This part is
9373         needed because the bug fix reintroduced the 3s exit lag.)  This
9374         makes the mono_runtime_shutdown flag superfluous.
9375
9376 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9377
9378         * reflection.c: include ehader size in method section headers.
9379         Really check for suplicated modules entries.
9380
9381 2002-10-17  Martin Baulig  <martin@gnome.org>
9382
9383         * debug-mono-symfile.c: Added back support for locals.
9384
9385 2002-10-14  Martin Baulig  <martin@gnome.org>
9386
9387         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9388         MONO_TYPE_VOID.
9389
9390 2002-10-14  Martin Baulig  <martin@gnome.org>
9391
9392         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9393         mono_class_get() instead of looking in the class cache. 
9394
9395 2002-10-13  Martin Baulig  <martin@gnome.org>
9396
9397         * debug-mono-symfile.c: Set version number to 28, include the
9398         signature in method names.
9399
9400 2002-10-13  Martin Baulig  <martin@gnome.org>
9401
9402         * debug-mono-symfile.h: Set version number to 27.
9403
9404 2002-10-11  Martin Baulig  <martin@gnome.org>
9405
9406         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9407
9408 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9409
9410         * metadata.c, metadata.h: added helper function to allocate signatures.
9411
9412 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9413
9414         * icall.c: added internal call to get the location of machine.config.
9415
9416 2002-10-08  Martin Baulig  <martin@gnome.org>
9417
9418         * debug-mono-symfile.c: Ignore classes with a pending init for the
9419         moment.
9420
9421 2002-10-03  Dick Porter  <dick@ximian.com>
9422
9423         * threads.c: Freebsd pthread_t is a pointer
9424
9425 2002-10-03  Dick Porter  <dick@ximian.com>
9426
9427         * socket-io.c: Implemented GetHostName_internal
9428
9429 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9430
9431         * mono-config.c:
9432         (mono_config_parse_file): don't leak the text.
9433
9434 2002-10-02  Martin Baulig  <martin@gnome.org>
9435
9436         * debug-mono-symfile.c: Added support for methods.
9437
9438 2002-10-01  Martin Baulig  <martin@gnome.org>
9439
9440         * debug-mono-symfile.c: Don't emit methods and line numbers for
9441         the dynamic symbol file, just write the type table.  We can easily
9442         have an external helper program which creates a symbol file for an
9443         IL file.        
9444
9445 2002-10-01  Dick Porter  <dick@ximian.com>
9446
9447         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9448         Only add the handle to the cleanup array when we're about to
9449         launch the thread.  Bug 31425 deadlocked when the test was run on
9450         mono under w32.
9451
9452 2002-10-01  Martin Baulig  <martin@gnome.org>
9453
9454         * debug-mono-symfile.c: Added support for properties.
9455
9456 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9457
9458         * reflection.c: unaligned store fix from Mark Crichton
9459         <crichton@gimp.org>.
9460
9461 2002-09-27  Martin Baulig  <martin@gnome.org>
9462
9463         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9464         New interncall.
9465
9466 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9467
9468         * assembly.h, assembly.c: use a sane API to hook into the assembly
9469         loading process instead of a useless special-purpouse hack
9470         (ngen needs a hook, too, for example).
9471
9472 2002-09-27  Dick Porter  <dick@ximian.com>
9473
9474         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9475         io-layer can set up some process handle info.  Not needed on w32,
9476         but doesn't hurt either.
9477
9478         * process.c: Pass the program name in the second parameter to
9479         CreateProcess, so the path is searched.  Include the working
9480         directory. Implemented process name, process enumeration, and some
9481         process detail internal calls.
9482         
9483         * icall.c: Added internal calls for process lookup, and some
9484         process details
9485
9486 2002-09-26  Martin Baulig  <martin@gnome.org>
9487
9488         * assembly.c (mono_install_open_assembly_hook): New global
9489         function to install a function to be invoked each time a new
9490         assembly is loaded.
9491         (mono_assembly_open): Run this callback function if set.
9492
9493         * debug-mono-symfile.c: Put back line numbers for the dynamic
9494         symbol file and also record the .il file as source file.  This
9495         allows us to install the temporary symbol file as `file.dbg' just
9496         like a compiler-generated one.
9497
9498 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9499
9500         * Corrected typo in gc.c (BOHEM vs BOEHM).
9501
9502 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9503
9504         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9505         GetProperties. Also avoid calling g_slist_length in GetProperties and
9506         GetMethods.
9507
9508 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9509
9510         * reflection.c: avoid unaligned stores (bug spotted by
9511         Mark Crichton  <crichton@gimp.org>).
9512
9513 2002-09-25  Martin Baulig  <martin@gnome.org>
9514
9515         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9516         instead of guint64 for addresses and added prologue/epilogue info.
9517
9518 2002-09-25  Martin Baulig  <martin@gnome.org>
9519
9520         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9521         store line number info.  For the dynamic symbol file, we only need
9522         to provide the JIT generated dynamic line number info for the dynamic
9523         symbol file.
9524
9525 2002-09-25  Martin Baulig  <martin@gnome.org>
9526
9527         * debug-mono-symfile.h: Incremented version number.
9528
9529 2002-09-24  Martin Baulig  <martin@gnome.org>
9530
9531         * class.c (mono_debugger_class_init_func): New global function
9532         pointer variable.
9533         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9534         call it.
9535
9536         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9537         function.  This is called via the mono_debugger_class_init_func
9538         hook to add all types to the dynamic type table.
9539         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9540         from its metadata token.
9541
9542         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9543         New interncall for the debugger.
9544
9545 2002-09-24  Nick Drochak <ndrochak@gol.com>
9546
9547         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9548         before using it in case it is null.
9549         
9550 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9551
9552         * metadata.c: allow custom modifiers in local var signatures
9553         (bug spotted by Zoltan Varga).
9554
9555 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9556
9557         * class.c: deal with the <Module> class that may have a NULL vtable.
9558         Eliminate warnings.
9559
9560 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9561
9562         * image.c, image.h: more strong name helpers.
9563         * monosn.c: more work: convert pem keys to cryptoapi format.
9564
9565 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9566
9567         * string-icalls.c: speedup IndexOf.
9568
9569 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9570
9571         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9572
9573 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9574
9575         * icall.c: cleanup: use mono_object_domain ().
9576
9577 2002-09-23  Martin Baulig  <martin@gnome.org>
9578
9579         * debug-mono-symfile.c: Improved type support.
9580
9581 2002-09-22  Martin Baulig  <martin@gnome.org>
9582
9583         * debug-mono-symfile.c: Added support for reference types and strings.
9584
9585 2002-09-22  Martin Baulig  <martin@gnome.org>
9586
9587         * debug-mono-symfile.c: Started to work on the type table.
9588
9589 2002-09-21  Martin Baulig  <martin@gnome.org>
9590
9591         * debug-mono-symfile.c: Largely reworked the symbol table format.
9592         The symbol table is now incrementally updated each time a new
9593         method is added.  We're now also using our own magic and version
9594         so that you don't need to recompile all your classes if the
9595         dynamic table changes.
9596         (mono_debug_update_mono_symbol_file): Removed.
9597         (mono_debug_symfile_add_method): New function to add a method.
9598
9599 2002-09-21  Martin Baulig  <martin@gnome.org>
9600
9601         * icall.c
9602         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9603         New interncall.
9604
9605         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9606         New interncall to get a method from its metadata token.
9607
9608 2002-09-21  Martin Baulig  <martin@gnome.org>
9609
9610         * debug-mono-symfile.c: Create type table.
9611
9612 2002-09-20  Martin Baulig  <martin@gnome.org>
9613
9614         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9615
9616 2002-09-20  Martin Baulig  <martin@gnome.org>
9617
9618         * debug-mono-symfile.c: Provide information about params and locals.
9619
9620 2002-09-20  Martin Baulig  <martin@gnome.org>
9621
9622         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9623         New interncall.
9624
9625         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9626         interncall to get a method from its metadata token.
9627
9628 2002-09-20  Martin Baulig  <martin@gnome.org>
9629
9630         * debug-mono-symfile.c: Added a few checks for method->header
9631         being non-NULL.  This should never happen, but for the moment
9632         let's use a g_warning() rather than a g_assert().
9633
9634 2002-09-19  Mark Crichton  <crichton@gimp.org>
9635
9636         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9637         even if support for it isn't present.  Added an #ifdef to fix this.
9638
9639         * socket-io.c: Added checks back for Solaris support.
9640
9641 2002-09-19  Martin Baulig  <martin@gnome.org>
9642
9643         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9644         changes in the symbol file format.
9645
9646 2002-09-18  Martin Baulig  <martin@gnome.org>
9647
9648         * debug-mono-symfile.c: Set version number to 21.
9649
9650 2002-09-18  Dick Porter  <dick@ximian.com>
9651
9652         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9653         on netbsd.  Fixes bug 30051.
9654
9655 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9656
9657         * reflection.c:
9658         (set_version_from_string): little fix.
9659
9660 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9661
9662         * monosn.c, Makefile.am: added strong name utility.
9663         * reflection.h, reflection.c: implemented delayed signing,
9664         locale, version and hash id assembly attributes.
9665
9666 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9667
9668         * loader.c, metadata.c: load param attributes in signatures.
9669
9670 2002-09-16  Martin Baulig  <martin@gnome.org>
9671
9672         * debug-mono-symfile.c: Added string table with all method names.
9673
9674 2002-09-14  Martin Baulig  <martin@gnome.org>
9675
9676         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9677         fast method lookup.
9678
9679 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9680
9681         * reflection.c: record the public key token of referenced assemblies.
9682
9683 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9684
9685         * image.c, image.h: added functions to get the strong name and the
9686         public key of an assembly.
9687         * pedump.c: use them.
9688
9689 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9690
9691         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9692
9693 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9694
9695         * marshal.c (mono_marshal_get_managed_wrapper): Added
9696         MONO_TYPE_BOOLEAN 
9697
9698 2002-09-11  Martin Baulig  <martin@gnome.org>
9699
9700         * gc.c: Call GC_unregister_disappearing_link() on all links when
9701         finalizing them, this is necessary to aviod a crash in boehm's
9702         finalize handler.
9703
9704 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9705
9706         * gc.c: handle GetTarget for finalized objects spotted and fixed by
9707         nick@chemlab.org.
9708
9709 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9710
9711         * icall.c: implemented MonoType::Module.
9712         * reflection.c, reflection.h: mono_module_get_object () from
9713         Tomi Pakarinen <tomi.pakarinen@welho.com>.
9714
9715 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9716
9717         * icall.c: ignore overridden methods in GetMethods ().
9718         Fix for FieldInfo::SetValue().
9719         * object.c: handle float/double in runtime invoke.
9720
9721 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9722
9723         * object.c: allow a constructor to be called again on an object.
9724
9725 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9726
9727         * class.h, class.c: move field layout code to it's own function and
9728         export it. Get an interface id earlier. Move fields in MonoClass
9729         so they are more cache friendly and align the bitfields.
9730         * loader.c: temporary handle get_param_names() for a runtime method.
9731         * reflection.c, reflection.h: more code to handle runtime creation of
9732         types.
9733
9734 2002-09-09  Martin Baulig  <martin@gnome.org>
9735
9736         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
9737         signature with the pinvoke field being set for the actual call.
9738
9739 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9740
9741         * icall.c: removed some unused icalls. Start of map of glib charsets
9742         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
9743
9744 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9745
9746         * debug-helpers.c: break infinite loop (found and fixed by
9747         Holger Arnold <harnold@gmx.de>).
9748
9749 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9750
9751         * icall.c: target may be null in create_delegate.
9752
9753 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9754
9755         * marshal.c: handle a boolean return type.
9756
9757 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9758
9759         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
9760
9761 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9762
9763         * gc.c: fix weakreferences.
9764
9765 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9766
9767         * icall.c: added icall to get default codepage.
9768
9769 2002-09-03  Dick Porter  <dick@ximian.com>
9770
9771         * threads.h: 
9772         * threads.c: Use MonoThread instead of MonoObject where
9773         apropriate.
9774
9775         Store running thread objects in a hash table, so that we have all
9776         the info to hand when waiting for them to finish
9777         (means we don't need OpenThread() any more, so mingw builds should
9778         be fully functional again.)
9779
9780         * verify.c:
9781         * object.h: Added thread ID to MonoThread
9782
9783 2002-09-03  Martin Baulig  <martin@gnome.org>
9784
9785         * icall.c (System.Reflection.Assembly::get_location): New interncall.
9786
9787 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9788
9789         * icall.c: fixed leak in get_temp_path. Thanks lupus.
9790
9791 2002-09-03  Martin Baulig  <martin@gnome.org>
9792
9793         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
9794         argument to store the end address of the disassembled instruction.
9795
9796         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
9797         here from debug-symfile.h.
9798         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
9799         JIT into this struct.
9800         (MonoSymbolFile): Added `char *image_file' field.
9801         (MonoDebugGetMethodFunc): Removed.
9802         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
9803         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
9804         (mono_debug_find_method): New method.
9805
9806         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
9807         create a full symbol file.
9808         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
9809         and static symbol files.
9810         (mono_debug_find_method): The symbol file keeps an internal method hash,
9811         call this to get a MonoDebugMethodInfo from a MonoMethod.
9812
9813         * debug-symfile.[ch]: Removed.
9814
9815 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
9816
9817         * image.c (do_mono_image_open): Remove linker version check.
9818
9819 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
9820
9821         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
9822         wrappers for instance methods.
9823         
9824 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9825
9826         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
9827
9828 2002-08-28  Dick Porter  <dick@ximian.com>
9829
9830         * Makefile.am: Export HOST_CC for w32 builds
9831
9832 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9833
9834         * file-io.c process.c: MonoString are null terminated, no
9835         need for mono_string_to_utf16() anymore.
9836
9837 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9838
9839         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
9840
9841 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
9842
9843         * icall.c, reflection.h: speedup System.MonoType.
9844
9845 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9846
9847         * reflection.c: allow null as the value of a string argument in
9848         custom attributes constructors.
9849
9850 2002-08-27  Martin Baulig  <martin@gnome.org>
9851
9852         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
9853         `trampoline_address' field.
9854
9855 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
9856
9857         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
9858         check (fixes bug #29486) 
9859
9860 2002-08-27  Martin Baulig  <martin@gnome.org>
9861
9862         * debug-mono-symfile.c: Changed the file format in a way that allows us
9863         open it read-only and to use a specially malloced area for all the
9864         dynamic data.  We can now also generate a symbol file on-the-fly if we're
9865         debugging IL code and there is no MCS generated symbol file for it.
9866
9867 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9868
9869         * object.c: added a define for a good string and array
9870         creation speedup (not enabled by default because we need to deal with
9871         the synch stuff).
9872
9873 2002-08-26  Martin Baulig  <martin@gnome.org>
9874
9875         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
9876         function to create a dynamic symbol file.  This is used by the
9877         debugger to create a symbol file for IL code on-the-fly.
9878
9879 2002-08-26  Martin Baulig  <martin@gnome.org>
9880
9881         * loader.c (mono_lookup_pinvoke_call): Include the error message
9882         from g_module_error() in the error message.
9883
9884 2002-08-24  Martin Baulig  <martin@gnome.org>
9885
9886         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
9887         function to update the symbol file.  The symbol file is mmap()ed
9888         writable, but private.  This allows us to install the symbol file
9889         together with the assembly.
9890
9891 2002-08-24  Martin Baulig  <martin@gnome.org>
9892
9893         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
9894         but they can read the new symbol file format which mcs is now creating.
9895
9896         * debug-symfile.c (mono_debug_find_source_location): Moved to
9897         debug-mono-symfile.c; this is now operating on the new symbol file.
9898
9899 2002-08-23  Martin Baulig  <martin@gnome.org>
9900
9901         * debug-helpers.c (mono_method_desc_from_method): New function to get
9902         a MonoMethodDesc from a MonoMethod.
9903
9904 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9905
9906         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
9907         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
9908
9909 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
9910
9911         * string-icalls.[ch]: make helper methods static.
9912
9913 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9914
9915         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
9916         types to it and to SetValueInternal.
9917
9918         * object.c: Moved handle_enum label to its proper place. This was the
9919         f... bug! ;-)
9920
9921         This time i compiled mcs and gtk-sharp and they both work.
9922
9923 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9924
9925         * icall.c: reverted partially my previous patch until 
9926         object.c:set_value handles enums correcly.
9927
9928 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9929
9930         * icall.c:
9931         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
9932         (ves_icall_System_Environment_get_MachineName): removed warning when
9933         compiling under cygwin.
9934
9935 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9936
9937         * object.c: fixed field_get_value() for reference types.
9938
9939 2002-08-22  Dick Porter  <dick@ximian.com>
9940
9941         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
9942         Don't free a buffer while it's still needed.  Patch from Jonathan
9943         Liger <Jonathan.liger@wanadoo.fr>
9944
9945 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
9946
9947         * icall.c (ves_icall_System_Environment_get_Platform): Add new
9948         internal call.
9949
9950 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
9951
9952         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
9953         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
9954
9955         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
9956         we call unmanaged code which throws exceptions.
9957
9958 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9959
9960         * appdomain.h: added per-domain entry_assembly.
9961         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
9962         arguments.
9963         * icall.c: Assembly::GetEntryAssembly icall.
9964         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
9965         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
9966
9967 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
9968
9969         * appdomain.h, gc.c: added mono_domain_finalize ().
9970
9971 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9972
9973         * object.c:
9974         (mono_print_unhandled_exception): changed g_warning by g_printerr
9975         because g_log has a 1024 characters limit (yeah, i got a big stack
9976         trace). Don't print exception name, that should be in ToString 
9977         returned string.
9978
9979 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9980
9981         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
9982         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
9983
9984 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9985
9986         * object.c:
9987         (mono_print_unhandled_exception): after previous commit, i realized
9988         that MS calls ToString on the exception. I changed this function to
9989         do that. This way we get stack_trace for free.
9990
9991 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9992
9993         * object.c:
9994         (mono_print_unhandled_exception): invoke Message property instead of
9995         getting 'message' field from Exception. Don't allocate memory for
9996         'trace' and 'message' if not needed.
9997
9998 2002-08-18  Dick Porter  <dick@ximian.com>
9999
10000         * unicode.c: Fix asserts to match Encoder.cs checks
10001
10002 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10003
10004         * marshal.c: fix unaligned store issue and a few wrong
10005         opcode argument types.
10006
10007 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10008
10009         * icall.c: added GetUninitializedObjectInternal internal call.
10010
10011 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10012
10013         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10014         to the right domain.
10015
10016 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10017
10018         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10019
10020         * class.c (class_compute_field_layout): set blittable to false for Strings
10021
10022         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10023
10024 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10025
10026         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10027         first chunk of code to create types at runtime. Code to
10028         handle ReflectedType/DeclaringType. Make reflection handles
10029         domain specific.
10030
10031 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10032
10033         * class.c: set correct name in arrays.
10034
10035 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10036
10037         * appdomain.c (mono_domain_transfer_object): make it work with
10038         valuetypes. bug fixes.
10039
10040 2002-08-12  Dick Porter  <dick@ximian.com>
10041
10042         * object.h: Rename some parameters to avoid c++ keywords (Patch
10043         from Joseph Wenninger <kde@jowenn.at>)
10044
10045 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10046
10047         * icall.c: added icall to implement Assembly.GetFile*.
10048
10049 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10050
10051         * reflection.h, reflection.c: code to embed managed resources.
10052
10053 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10054
10055         * class.c: move all the type size stuff into
10056         class_compute_field_layout().
10057
10058 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10059
10060         * class.c: ensure enums have always the correct instance size.
10061         * unicode.c: remove wrong assert.
10062
10063 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10064
10065         * assembly.c: fix mem corruption issue.
10066         * image.h, image.c: added mono_image_get_resource () to access
10067         managed resources.
10068         * icall.c: implemented Assembly.EntryPoint property and some
10069         Managed Resources related internalcalls.
10070
10071
10072 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10073
10074         * image.c, image.h: impemented mono_image_get_entry_point ().
10075         * appdomain.c: use mono_image_get_entry_point.
10076
10077 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10078
10079         * reflection.c: support the object type argument when loading
10080         custom attributes.
10081
10082 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10083
10084         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10085         String as return type.
10086
10087 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10088
10089         * reflection.c: fix encoding of named args for custom attrs to match
10090         the ms implementation. Read them back when instantiating custom
10091         attributes.
10092
10093 2002-08-02  Radek Doulik  <rodo@ximian.com>
10094
10095         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10096         by Dietmar as quick fix
10097         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10098         16 as stack size, used on more places as quick fix before Dietmar
10099         will fix it properly
10100
10101 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10102
10103         * object.h, object.c: added accessors for fields and properties.
10104
10105 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10106
10107         * class.c, class.h: made mono_class_get_field_from_name ()
10108         loop on parent types.
10109         Added mono_class_get_property_from_name ().
10110
10111 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10112
10113         * class.c, class.h: move the code to setup the type vtable in its own
10114         function so that it can be reused also for types created at runtime.
10115         Eliminate the "class" identifier from the header file.
10116         * reflection.c: setup the vtable for enums so that we can create
10117         objects for use in SetConstant ().
10118
10119 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10120
10121         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10122         instead of the delegate itself as this pointer (bug #28383)
10123
10124 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10125
10126         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10127         conversions.
10128
10129 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10130
10131         * loader.c: don't set the pinvoke bit on icalls.
10132
10133 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10134
10135         * debug-helpers.c (mono_method_full_name): only print a number to
10136         indicate wrapper type (so that the output is more readable in traces).
10137
10138 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10139
10140         * class.c (mono_class_init): include method override patch from Paolo
10141
10142 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10143
10144         * icall.c: fixed GetTypeCode().
10145
10146 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10147
10148         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10149         use real delegate invoke function to make it work with multicast
10150         delegates (fix bug# 28291).
10151
10152 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10153
10154         * object.c: load constant strings.
10155
10156 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10157
10158         * reflection.c: no magic numbers.
10159         * tabledefs.h: security action enum.
10160
10161 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10162
10163         * assembly.c: fix possible memory corruption.
10164
10165 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10166
10167         * reflection.h, reflection.c: added support for linking resources.
10168         * verify.c: check we have an updated corlib.
10169
10170 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10171
10172         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10173         string arrays.
10174         (mono_marshal_string_array): null terminate unmanaged string arrays.
10175         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10176
10177 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10178
10179         * icall.c: Type.GetType () can now return also types from the
10180         calling assembly.
10181
10182 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10183
10184         * loader.h, loader.c: stack walking support.
10185         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10186         GetCallingAssembly.
10187
10188 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10189
10190         * marshal.c: added optimisations for blittable types 
10191
10192         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10193         (mono_class_setup_mono_type): set blittable attribute for single
10194         and double.
10195
10196         * marshal.c (mono_string_utf8_to_builder): impl.
10197         (mono_string_builder_to_utf8): impl.
10198         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10199
10200 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10201
10202         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10203         (mono_marshal_get_managed_wrapper): impl. byref types
10204
10205 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10206
10207         * icall.c:
10208         (search_method): don't display debug message. 
10209
10210 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10211
10212         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10213
10214 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10215
10216         * appdomain.c: set the missing filename when throwing exception.
10217
10218 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10219
10220         * metadata.c (mono_type_size): code cleanup
10221         (mono_type_stack_size): removed some test code
10222
10223 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10224
10225         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10226         mono_get_exception_file_not_found now.
10227
10228         * exception.c (mono_exception_from_name_two_strings): New version
10229         that will call a constructor with two string arguments. 
10230         (mono_get_exception_file_not_found): New helper routine, used to
10231         report file-not-found errors.
10232
10233 2002-07-20  Dick Porter  <dick@ximian.com>
10234
10235         * process.h:
10236         * process.c: Pass file handles to CreateProcess
10237         
10238         * icall.c:
10239         * file-io.h:
10240         * file-io.c: Implemented CreatePipe
10241
10242 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10243
10244         * metadata.c (mono_get_param_info): set alignment for value types
10245
10246 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10247
10248         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10249         Constify mono_domain_assembly_open().
10250         * loader.c: handle null namespace in icalls.
10251
10252 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10253
10254         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10255         (emit_str_to_ptr_conv): marshal object as structs
10256
10257         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10258
10259         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10260
10261 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10262
10263         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10264         (mono_marshal_get_native_wrapper): we an now return value types
10265
10266 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10267
10268         * verify.c: more checks implemented.
10269
10270 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10271
10272         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10273         (fix bug #27695)
10274         (mono_marshal_get_native_wrapper): allow byref arguments
10275         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10276         impl. PtrToStringXXX methods
10277         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10278         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10279         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10280         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10281         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10282
10283 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10284
10285         * reflection.c: fix buglet in parsing an assembly name.
10286
10287 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10288
10289         * marshal.c (emit_ptr_to_str_conv): first impl.
10290
10291 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10292
10293         * object.c, class.h: cache the vtable in the class as suggested by
10294         vargaz@freemail.hu (Zoltan Varga).
10295
10296 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10297
10298         * class.h, loader.c: added mono_field_from_token().
10299         * verify.c: first cut of type checking code.
10300
10301 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10302
10303         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10304
10305 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10306
10307         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10308         (fix bug #27782)
10309         (mono_marshal_get_remoting_invoke): impl.
10310         (mono_delegate_begin_invoke): impl.
10311         (mono_mb_emit_save_args): impl.
10312         (mono_delegate_end_invoke): impl.
10313         (mono_marshal_get_delegate_begin_invoke):
10314         (mono_marshal_get_delegate_end_invoke):
10315         (mono_marshal_get_delegate_invoke): generate a special name for
10316         those methods (including the signature) and associate them whith
10317         the delegate class. 
10318
10319 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10320
10321         * reflection.[ch]: 
10322         (mono_reflection_type_from_name): now it has a MonoImage parameter
10323         which is used as the default image to search the type in. If the image
10324         is NULL or getting the type from it fails, it defaults to corlib.
10325
10326         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10327         new parameter.
10328
10329 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10330
10331         * reflection.c: update the parameter table index.
10332
10333 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10334
10335         * domain.c: don't include the mark byte in the string hash.
10336
10337 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10338
10339         * icall.cs: icall for Type.GetTypeCode ().
10340         * verify: a couple of fixes and disabled local initialization checks.
10341
10342 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10343
10344         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10345
10346         * debug-helpers.c (mono_method_full_name): print the type of the
10347         runtime wrapper
10348
10349         * metadata.c (mono_signature_hash): a hash function for signatures
10350         (mono_signature_hash): better hash algorithm
10351
10352         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10353
10354         * debug-helpers.c (mono_method_full_name): this can now generate
10355         method names with signatures
10356
10357         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10358         method dont have this pointers.
10359
10360 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10361
10362         * reflection.c: fixup typebuilder tokens.
10363         * image.c: fix buglet.
10364         * marshal.h: remove whitespace.
10365         * metadata.h, metadata.c: reinstate code that was removed.
10366         * verify.c: handle catch directives and fix another couple of bugs.
10367
10368 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10369
10370         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10371         (mono_marshal_get_native_wrapper): make it comp. with the old code
10372         (mono_marshal_get_native_wrapper): support boolean
10373         (mono_marshal_get_managed_wrapper): support more types
10374
10375 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10376
10377         * class.c (class_compute_field_layout): compute class->blittable attribute.
10378
10379 2002-07-09  Dick Porter  <dick@ximian.com>
10380
10381         * threads.c: Make the thread cleaning up cope with threads that
10382         call ExitThread()
10383
10384 2002-07-08  Radek Doulik  <rodo@ximian.com>
10385
10386         * reflection.c (method_encode_code): use non-translated values to
10387         compute finally_start, this fixes exception handling on ppc, yay!
10388
10389         * decimal.h (struct signscale): fix endianess
10390
10391 2002-07-07  Radek Doulik  <rodo@ximian.com>
10392
10393         * reflection.c: swap box_val and not val
10394
10395 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10396
10397         * reflection.c, reflection.h: handle full assembly info in type name.
10398         Handle Type arguments when loading custom attributes.
10399         * icall.c: updated to use new mono_reflection_type_from_name () method.
10400
10401 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10402
10403         * loader.c:
10404         (method_from_memberref): also print assembly name when method not found.
10405
10406 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10407
10408         * icall.c:
10409         (ves_icall_TypeGetProperties): fixed bug #27473. 
10410
10411 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10412
10413         * reflection.c: display image name and token when cannot find the
10414         .ctor for an attribute.
10415
10416 2002-07-05  Martin Baulig  <martin@gnome.org>
10417
10418         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10419
10420 2002-07-04  Dick Porter  <dick@ximian.com>
10421
10422         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10423         compile on mingw.  This will cause mingw builds to not wait for
10424         subthreads to terminate after the main thread does.  I've lodged a
10425         bug with the mingw developers for them to wrap OpenThread().
10426
10427 2002-07-03  Dick Porter  <dick@ximian.com>
10428
10429         * threads.c: Store thread IDs instead of handles, because
10430         GetCurrentThread() returns a pseudohandle and therefore stores
10431         useless values.  mono_thread_cleanup() continues checking the
10432         array of threads until it is empty, to cope with subthreads
10433         spawning new threads after the main thread has finished.
10434
10435         * profiler.h:
10436         * profiler.c:
10437         * profiler-private.h: Pass the thread ID to thread profiler
10438         functions, instead of a handle
10439
10440 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10441
10442         * verify.c: fixes to make it more usable.
10443         * pedump.c: added --verify code to verify IL code in an assembly.
10444
10445 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10446
10447         * reflection.c: turn errors into warnings to allow compiling corlib.
10448
10449 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10450
10451         * reflection.c: add special cases to compile corlib.
10452
10453 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10454
10455         * reflection.c: handle properties with only a set method.
10456
10457 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10458
10459         * opcodes.h: add enum with opcodes in opval order.
10460
10461 2002-07-01  Dick Porter  <dick@ximian.com>
10462         
10463         * object.h:
10464         * object.c (mono_runtime_run_main): Removed unneeded argument
10465
10466 2002-06-28  Martin Baulig  <martin@gnome.org>
10467
10468         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10469
10470 2002-06-27  Dick Porter  <dick@ximian.com>
10471
10472         * threads.c: Store the handle in both the parent thread and in the
10473         subthread, to minimise the time between starting a new thread and
10474         storing its ID.
10475
10476 2002-06-26  Dick Porter  <dick@ximian.com>
10477
10478         * appdomain.c (mono_runtime_cleanup): Close the socket library
10479         after all the threads have finished, not before
10480
10481 2002-06-26  Martin Baulig  <martin@gnome.org>
10482
10483         * debug-symfile.c (mono_debug_find_source_location): Added
10484         `guint32 *line_number' argument.  If it's not NULL, store the line number
10485         there and return the file name without the line number.
10486
10487 2002-06-25  Dick Porter  <dick@ximian.com>
10488
10489         * icall.c:
10490         * process.h:
10491         * process.c: Process forking and other support functions
10492
10493 2002-06-25  Dick Porter  <dick@ximian.com>
10494
10495         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10496         things dont happen when the image is closed.
10497         (mono_image_lookup_resource): Walk the resource section looking
10498         for a particular entry
10499
10500         * cil-coff.h: PE resource section decoding
10501
10502 2002-06-25  Dick Porter  <dick@ximian.com>
10503         
10504         * assembly.h:
10505         * assembly.c: 
10506         (mono_assembly_foreach): Accessor functions to walk the list of
10507         loaded assemblies
10508         (mono_assembly_set_main):
10509         (mono_assembly_get_main): Process methods need to know which
10510         assembly is the "main" one
10511
10512         * object.c (mono_runtime_run_main): Record the main assembly
10513
10514         * debug-helpers.c: Fix typo
10515
10516 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10517
10518         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10519         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10520
10521 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10522
10523         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10524
10525 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10526
10527         * image.c (do_mono_image_open): Initialize reference count,
10528         otherwise we leak the MonoImage.
10529
10530 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10531
10532         * reflection.c: small tweak to handle self-hosting.
10533
10534 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10535
10536         * reflection.c: fix type name parse code.
10537
10538 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10539
10540         * reflection.c: break out of the loop.
10541         * image.c: special case corlib.
10542
10543 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10544
10545         * reflection.c: add all the custom attrs at the end to ensure the
10546         ctors have been properly initialized when the attributes are defined
10547         in the current assembly.
10548
10549 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10550
10551         * reflection.c: handle correctly multiple-nested types.
10552
10553 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10554
10555         * row-indexes.h: fix typos.
10556         * reflection.c: adjust for typos and fix method_def_or_ref
10557         encoding in MethodImpl table.
10558
10559 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10560
10561         * reflection.c: fix entry point patching (thanks Serge!).
10562
10563 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10564
10565         * verify.c: add check for System.Exception
10566
10567 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10568
10569         * image.c, class.c: minifix for code just c&p'ed.
10570         * reflection.c: warning fix.
10571         * object.h, loader.h, domain.c: load also StringBuilder.
10572
10573 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10574
10575         * marshal.h, marshal.c: some support code to handle complex marshaling.
10576
10577 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10578
10579         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10580         Better signatures with vtable error dump.
10581
10582 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10583
10584         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10585
10586 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10587
10588         * icall.c (ves_icall_Type_GetField): impl.
10589
10590 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10591
10592         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10593         to retrieve a marshal description blob for a field or param.
10594
10595 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10596
10597         * reflection.h, reflection.c: change order of nested type emission
10598         to avoid table corruption. The NestedTypes table is sorted.
10599         * icall.c: change order of GetConstructor results to workaround mcs bug.
10600
10601 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10602
10603         * reflection.h, reflection.c: handle field and param marshal
10604         information.
10605
10606 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10607
10608         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10609
10610 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10611
10612         * reflection.c: fix call convention.
10613
10614 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10615
10616         * reflection.h, reflection.c: mono_image_get_memberref_token()
10617         takes a type instead of a class, now. Added
10618         mono_image_get_array_token() to create tokens for the special
10619         multi-dim array methods.
10620
10621 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10622
10623         * assembly.c: handle modules (no assembly table). Split
10624         loading references in its own function.
10625         * class.c: handle moduleref resolution scope.
10626         * image.c, image.h: cache module name in image.
10627
10628 2002-06-07  Martin Baulig  <martin@gnome.org>
10629
10630         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10631         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10632
10633 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10634
10635         * icall.c: more signature fixes that used uint instead of int.
10636
10637 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10638
10639         * reflection.c: fixed signature of field refs.
10640
10641 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10642
10643         * class.c, reflection.c: handle typerefs of nested types
10644         (both on read and when writing files).
10645
10646 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10647
10648         * icall.c: fix method signatures that tried to workaround the previous
10649         typo, d'oh!
10650
10651 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10652
10653         * debug-helpers.c: fix typo.
10654
10655 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10656
10657         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10658         rewrote the PE/COFF writing code (our programs are understood by the
10659         ms runtime, now).
10660
10661 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10662
10663         * gc.c, gc.h, icall.c: weakreference support.
10664
10665 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10666
10667         * Makefile.am, mono-config.c: use $(sysconfdir).
10668
10669 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10670
10671         * icall.c: changed default precision of Double.ToString() to 15.
10672         Fixed memory leak. Unified with Single.ToString.
10673
10674 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10675
10676         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10677
10678 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10679
10680         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10681         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10682         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10683         and myself.
10684
10685 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10686
10687         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10688
10689 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10690
10691         * reflection.c, socket-io.c: more compilation fixes.
10692
10693 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10694
10695         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10696         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10697         unicode.c: warning and compiler compatibility fixes.
10698
10699 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10700
10701         * class.h, metadata.c: fixed warnings/compilation errors.
10702
10703 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10704
10705         * Makefile.am, mono-config.c, mono-config.h: configuration file
10706         support routines.
10707         * loader.c, loader.h: make Dll mapping configurable at runtime in the
10708         config file. Export methods to insert and lookup mappings.
10709
10710 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10711
10712         * reflection.c: handle types and boxed objects in custom attr
10713         constructors.
10714
10715 2002-05-30  Martin Baulig  <martin@gnome.org>
10716
10717         * debug-symfile.c
10718         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
10719
10720 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
10721
10722         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
10723         to lookup the implmap row for a P/Invoke method.
10724         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
10725         P/Invoke method from the runtime on an as needed basis.
10726
10727 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
10728
10729         * metadata.c (mono_metadata_parse_signature): impl.
10730
10731 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10732
10733         * class.c: handle .pack directive.
10734
10735 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10736
10737         * object.c: initialize static fields with RVA data.
10738
10739 2002-05-25  Martin Baulig  <martin@gnome.org>
10740
10741         * debug-symfile.c
10742         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
10743
10744 2002-05-24  Martin Baulig  <martin@gnome.org>
10745
10746         * debug-symfile.c
10747         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
10748         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
10749         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
10750
10751 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10752
10753         * object.c: special case string ctros in invoke.
10754         * gc.c: silly whitespace changes.
10755
10756 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
10757
10758         * threadpool.[ch]: impl. a threadpool that can
10759         be used by mint and mono.
10760
10761 2002-05-22  Martin Baulig  <martin@gnome.org>
10762
10763         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
10764         The first argument is now a `MonoReflectionModuleBuilder *', the return
10765         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
10766         `methods' field to get the method builder.  The `token' argument is the
10767         unfixed token.
10768
10769         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
10770         invalid characters instead of g_assert_not_reached()ing.  This seems
10771         to be the behaviour of mscorlib.
10772
10773 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
10774
10775         * object.c (mono_runtime_invoke_array): applied patch from Rachel
10776         Hestilow to fix bug #25104
10777
10778 2002-05-21  Martin Baulig  <martin@gnome.org>
10779
10780         * debug-symfile.c (mono_debug_find_source_location): New function.
10781         Looks up an IL offset in the line number table and returns the source
10782         location as a string.
10783
10784 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10785
10786         * icall.c:
10787         (mono_double_ToStringImpl): changed %f by %g until we have something
10788         better.
10789
10790 2002-05-21  Nick Drochak  <ndrochak@gol.com>
10791
10792         * icall.c : Use different name for Math.Pow's icall.  Needed to check
10793         parameters first in C#.
10794
10795 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10796
10797         * icall.c, reflection.h: added icall to get info about an event.
10798
10799 2002-05-20  Radek Doulik  <rodo@ximian.com>
10800
10801         * object.c (mono_value_box): don't use memcpy for boxing on BIG
10802         endian
10803         (mono_value_box): don't use memcpy for small sizes on
10804         architectures with unaligned access
10805
10806 2002-05-20  Martin Baulig  <martin@gnome.org>
10807
10808         * reflection.c (mono_reflection_setup_internal_class): Don't crash
10809         if `tb->parent == NULL'.
10810         (mono_reflection_create_internal_class): New function.  This is
10811         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
10812         for enum types.
10813
10814         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
10815         New interncall.
10816
10817 2002-05-19  Martin Baulig  <martin@gnome.org>
10818
10819         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
10820         argument to get the length, don't default to the array length.
10821
10822 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
10823
10824         * assembly.c (mono_assembly_setrootdir): New function used to
10825         override the MONO_ASSEMBLIES directory.
10826
10827 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10828
10829         * icall.c: ValueType_GetHashCode() initialize local var.
10830
10831 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10832
10833         * reflection.c: sort custom attributes table.
10834
10835 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10836
10837         * reflection.c: support named args in custom attributes (write support).
10838
10839 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10840
10841         * reflection.c: fix finally position calculation.
10842
10843 2002-05-15  Radek Doulik  <rodo@ximian.com>
10844
10845         * reflection.c: fixed endianess at many places
10846
10847         * icall.c (ves_icall_InitializeArray): comment out debug msg
10848
10849 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
10850
10851         * object.c (mono_unhandled_exception): new function to handle
10852         unhandled exceptions.
10853         (mono_unhandled_exception): call the UnhandledException event.
10854         (mono_runtime_delegate_invoke): impl.
10855
10856 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
10857
10858         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
10859         returns the RVA, not the direct pointer to the data. Handle the case
10860         when the class size is fixed.
10861
10862 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10863
10864         * reflection.c: fix some endianess issues.
10865
10866 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
10867
10868         * object.c (mono_runtime_invoke): is now able to catch exceptions.
10869
10870         * threads.c (mono_thread_init): added a callback which is invoked
10871         at thread start.
10872
10873 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10874         
10875         * icall.c: make GetHashCode return non-negative values.
10876
10877 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10878
10879         * object.c, icall.c, gc.c: revert to address-based hashcode.
10880
10881 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
10882
10883         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
10884
10885 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10886
10887         * icall.c, class.c: special case <Module>.
10888
10889 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
10890
10891         * icall.c: fix bug in GetNow().
10892
10893 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
10894
10895         * object.c (mono_runtime_class_init): make sure that we call all
10896         static class constructors.
10897
10898 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10899
10900         * reflection.c: sort methodsemantics table.
10901
10902 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10903
10904         * reflection.h, reflection.c: honour init locals setting.
10905
10906 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
10907
10908         * icall.c: copied Double ToStringImpl for Single ToStringImpl
10909
10910 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10911
10912         * reflection.c: support ContructorBuilders in attribute blob creation.
10913
10914 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10915
10916         * reflection.c: some changes to build a binary that can be run
10917         directly in windows.
10918
10919 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
10920
10921         * loader.c: print a big message when an icall can't be found.
10922
10923 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10924
10925         * string-icalls.c: fix bug 24248.
10926
10927 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10928
10929         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
10930         icall.c, reflection.h: separate assembly loading by pathname and by
10931         assembly name. Use the MONO_PATH env var to search for assemblies.
10932
10933 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10934
10935         * assembly.c, image.h: add some support for assemblies
10936         with multiple modules.
10937         * class.c, class.h: export mono_class_from_typeref().
10938         * loader.c: remove duplicated code and use mono_class_from_typeref(),
10939         instead.
10940
10941 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10942
10943         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
10944         documentation says (the ECMA one is correct).
10945
10946 2002-05-02  Dick Porter  <dick@ximian.com>
10947
10948         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
10949         Don't name the synchronisation mutex.
10950
10951 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
10952
10953         * rand.c
10954         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
10955         Make the prototypes match.
10956         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
10957         Same.
10958
10959         * icall.c
10960         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
10961         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
10962         all systems have tm.tm_zone, so use strftime() with %Z to print
10963         the timezone abreviation into a temp string.
10964
10965         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
10966         rather than mono_array_addr() on a MonoString on Big Endian
10967         machines.
10968
10969 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
10970
10971         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
10972         fix bug 24041
10973
10974 2002-04-30  Dick Porter  <dick@ximian.com>
10975
10976         * socket-io.c: Cope with SOCKET being an integer rather than a
10977         pointer now.
10978
10979         * threads.c: Added Thread_free_internal, to deal with thread
10980         handle cleanup.  Moved calls to handle_store() and handle_remove()
10981         to start_wrapper(), so each can only be called once.  Allocate
10982         synchronisation blocks with GC_malloc(), and use GC finalisation
10983         to close the handles.
10984
10985         * icall.c: added System.Threading.Thread::Thread_free_internal
10986
10987 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10988
10989         * icall.c: support Environment.Exit, CommandLineArgs().
10990
10991 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10992
10993         * object.c, object.h: added mono_runtime_run_main () and
10994         mono_runtime_get_main_args () for use in System.Environment.
10995
10996 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10997
10998         * gc.c: fix thinko, enable actual finalization since the jit is now
10999         fixed.
11000
11001 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11002
11003         * gc.c, object.c: take into account that an object may be offset wrt the address
11004         returned by GC_malloc().
11005
11006 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11007
11008         * image.c: handle files without entries in the assembly table (modules).
11009
11010 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11011
11012         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11013         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11014         allowed to be null when it's System.Object class setup.
11015
11016 2002-04-27  Martin Baulig  <martin@gnome.org>
11017
11018         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11019         if `tb->parent == NULL' rather than crashing.
11020
11021 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11022
11023         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11024         calling acos() where asin() should have been called.
11025
11026 2002-04-26  Martin Baulig  <martin@gnome.org>
11027
11028         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11029         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11030         there's a subdirectory called `System', but we don't want to read that
11031         subdirectory as an assembly.
11032
11033 2002-04-25  Martin Baulig  <martin@gnome.org>
11034
11035         * debug-symfile.c: Reflect latest MonoString changes.
11036
11037 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11038
11039         * rand.c, rand.h: instance method icalls need to have an explicit
11040         this pointer as first argument in the C implementation.
11041
11042 2002-04-25  Nick Drochak <ndrochak@gol.com>
11043
11044         * icall.c: Fix typo in map for GetNonZeroBytes
11045
11046 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11047
11048         * string-icalls.c : String does now passes unit tests without any 
11049         errors, the following changes has been made:
11050         
11051         Implemented replace methods.
11052         Renaming of methods to (try) follow the standard.
11053         Fixed compare ordinal
11054         Made all memory allocated directly to function instead of via icall function.
11055         Small performance fix in is_in_array function
11056                         
11057  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11058
11059         c (mono_string_Internal_ctor_charp_int_int):
11060         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11061         sindex < 0, throw ArgumentOutOfRangeException instead of
11062         ArgumentNullException.
11063
11064         Added new check for length == 0, however
11065         I need to make it return String.Empty from the C code.
11066         
11067         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11068         that calculate the length for us here.
11069         
11070         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11071         mono_string_new_utf16 with mono_string_new, since value is utf8.
11072
11073 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11074
11075         * object.c: register the object for finalization if needed.
11076         Allocate one more char in the string for the terminating 0 char.
11077
11078 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11079
11080         * class.c, class.h, image.c: check if a type implemenst a destructor.
11081         Use the proper key for array class lookups.
11082         * icall.c: register the icalls in the System.GC class.
11083         * gc.c, gc.h: GC-related functions and icalls.
11084
11085 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11086
11087         * icall.c:
11088         * socket-io.c:
11089         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11090         changed a couple of free () by g_free ().
11091
11092         * decimal.c: one-liner in the comments for decimal2string ().
11093
11094 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11095
11096         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11097
11098 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11099
11100         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11101         * object.c (mono_runtime_invoke_array) : handle null in params
11102
11103 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11104
11105         * string-icalls.c: fixed bug in split (one off bug)
11106
11107 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11108
11109         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11110         * icalls.c: added String::Equals as internal method
11111
11112 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11113
11114         * threads.c: fixed bug in the double interlocked functions
11115
11116 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11117
11118         * threads.c: implemented all of the new interlocked icalls.
11119         * string-icalls.c: fix a bug in insert.
11120         * icalls.c: added the icalls for interlocked, removed old string functions.
11121         
11122 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11123
11124         * loader.c: fix off-by-one error when reading argument names.
11125
11126 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11127
11128         * profiler.c: win32 counter implementation (untested).
11129         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11130         (the latter needs testing and more complete impl. from win32 folks).
11131
11132 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11133
11134         * object.c: mono_array_new_full workaround mono_array_class_get
11135         problem.
11136
11137 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11138
11139         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11140         * object.h (mono_string_chars): Changed casting type.
11141
11142 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11143
11144         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11145                            method signatures to use gunichar2 instead of gint16.
11146
11147 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11148
11149         * object.h, object.c: domain-specific versions of mono_object_new and
11150         mono_array_new.
11151
11152 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11153
11154         * object.c: changed String layout
11155
11156         * string-icalls.c (mono_string_Internal_ctor_chara): added
11157         internal string constructors.
11158
11159 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11160
11161         * threads.c: pass 'this' to the thread start routine.
11162
11163 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11164
11165         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11166         InternalCompareStr don't call twice mono_string_cmp_char for the last
11167         character. Improved performance in mono_string_cmp_char.
11168
11169 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11170
11171         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11172         code into its own library: libmonoruntime.
11173
11174 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11175
11176         * object.h, object.c: changed array format so that szarrays do not
11177         require a bounds structure.
11178         * icall.c, appdomain.c: support for new szarray format.
11179
11180 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11181
11182         * metadata.c: compare also the retuns type when comparing signatures:
11183         we didn't do this as an optimization since really overloaded methods
11184         must differ also in the arguments, but this doesn't work with
11185         low-level IL code (or when using explicit conversion operators: see
11186         bug#23498 for an example).
11187
11188 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11189
11190         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11191
11192 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11193
11194         * icall.c: make MonoType::GetElementType its own icall.
11195
11196 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11197
11198         * icall.c: remove MonoMethod_get_Name().
11199         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11200         object.
11201
11202 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11203
11204         * string-icalls.c: optimized a few methods.
11205
11206 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11207
11208         * icall.c: added all new string internal calls
11209         * string-icalls.c: added, new string internal call implementation.
11210         * object.c: added mono_string_new_size for allocating a string a size
11211
11212 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11213
11214         * object.c (mono_object_isinst): use the same code as in the
11215         optimized x86 version.
11216
11217 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11218
11219         * profiler.c: TSC-based timer code (faster and more accurate).
11220         Not hooked up in configure, yet (set USE_X86TSC to 1).
11221
11222 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11223
11224         * profiler.c, profiler.h: track time spent compiling methods.
11225         * threads.c: track thread creation/destruction.
11226
11227 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11228
11229         * profiler.c, profiler.h, profiler-private.h: profiling interface
11230         and sample implementation. Moved here so that it can be used also by
11231         the jit.
11232
11233 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11234
11235         * reflection.c, reflection.h: keep types and other handles separate in
11236         the hash tables for referred tokens. Add guid for modules.
11237
11238 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11239
11240         * assembly.c: fix bugs found with valgrind.
11241         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11242
11243 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11244
11245         * threads: added icall support for getting current domain for
11246                    the thread.
11247  
11248 2002-04-13  Martin Baulig  <martin@gnome.org>
11249
11250         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11251         (MonoDebugVarInfo): Added `index' field for register based addresses.
11252         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11253         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11254         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11255         `MonoDebugVarInfo *this_var'.
11256
11257         * debug-symfile.c (relocate_variable): New static function to write
11258         a location description for a local variable or method parameter.
11259
11260 2002-04-12  Martin Baulig  <martin@gnome.org>
11261
11262         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11263         stack offset and begin/end scope address of a local variable.
11264         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11265         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11266         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11267
11268         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11269         Added new relocation types for start/end scope of a local variable.
11270
11271 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11272
11273         * object.h: add mono_object_domain() macro.
11274         * reflection.c: handle typespecs.
11275         * icall.c: MonoMethod::get_Name() implementation.
11276
11277 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11278
11279         * icall.c: String::GetHashCode() icall implementation.
11280
11281 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11282
11283         * icall.c: String::IndexOfAny icall.
11284         * object.c, object.h: make array->max_length more useful.
11285         Intrduced mono_object_class() and mono_string_length() macros.
11286
11287 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11288
11289         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11290         instead of g_unichar_isdigit.
11291
11292 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11293
11294         * icall.c: Implement a simple Double.ToString().
11295
11296 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11297
11298         * appdomain.h: only io-layer.h is supposed to be included.
11299         * icall.c: explicitly import environ. Fix warning.
11300
11301 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11302
11303         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11304                 return true even if it's not Daylight Savings time.
11305                 Only return false for the case where the function isn't
11306                 implemented for a plaform (read Windows).
11307
11308 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11309
11310         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11311         data with a mutex.
11312
11313 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11314
11315         * mempool.c (mono_mempool_alloc): only use g_malloc when
11316         absolutely necessary.
11317
11318 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11319
11320         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11321
11322         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11323         (mono_class_proxy_vtable): use domain mempool
11324
11325 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11326
11327         * appdomain.h, appdomain.c: split initialization that requires the
11328         execution engine support into mono_runtime_init().
11329
11330 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11331
11332         * class.c (mono_class_init): don't include vtable inside MonoClass
11333         to save some memory, gather some statistics.
11334         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11335
11336 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11337
11338         * icall.c: internalcall implementation for ValueType.Equals().
11339
11340 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11341
11342         * object.c (mono_message_init): moved 
11343         (mono_runtime_exec_main): new arch. independent impl.
11344         (mono_runtime_invoke_array): new method - like
11345         mono_runtime_invoke, but you can pass an array of objects.
11346         (mono_remoting_invoke): new arch. independent impl.
11347         (mono_message_invoke): new arch. independent impl.
11348         (mono_runtime_class_init): new arch. independent impl.
11349         (mono_runtime_object_init): new arch. independent impl.
11350
11351 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11352
11353         * metadata.c, object.c, reflection.c: documented the exported
11354         functions.
11355
11356 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11357
11358         * icall.c: simpler code to pass the assembly builder data to corlib.
11359         Implement GetNestedTypes() internalcall.
11360
11361 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11362
11363         * class.c: warn if a type can't be loaded.
11364
11365 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11366
11367         * image.h: typedef MonoImageOpenStatus
11368         * types.h: removed unused file
11369         
11370 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11371
11372         * icall.c: Enum_ToObject accepts enum value arguments.
11373
11374 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11375
11376         * class.c: move initialization of properties, events and nested
11377         classes, so that they happen for interfaces, too.
11378
11379 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11380
11381         * icall.c: cleanup some ugly casts in Array_SetValue*.
11382
11383 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11384
11385         * icall.c: the values array fro enums is of the correct type, now.
11386         Implement (correctly) getFullName instead of assQualifiedName for
11387         MonoType.
11388         * reflection.h, reflection.c: added mono_type_get_name ().
11389
11390 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11391
11392         * assembly.c, image.h: for each MonoImage, record from wich assembly
11393         it was loaded.
11394         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11395         Make Type.Assembly work.
11396
11397 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11398
11399         * debug-symfile.h: use char* instead of gpointer to avoid
11400         unnecessary casts.
11401
11402         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11403
11404         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11405         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11406
11407 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11408
11409         * icall.c (mono_message_init): impl. (code cleanup)
11410         (ves_icall_InternalExecute): impl. FieldGetter
11411
11412         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11413         defined we call all (non-static)methods through the vtable. 
11414
11415 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11416
11417         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11418         finalizer even though the memory is still referenced (and the chunk of
11419         memory is not freed).
11420
11421 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11422
11423         * assembly.c: fix brokeness.
11424
11425 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11426
11427         * class.c: kill some warnings. Check explicit interface method
11428         implementation also without considering the namespace.
11429         Load also literal strings in static class data.
11430
11431 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11432
11433         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11434         (default_assembly_name_resolver): Make the resolver take the
11435         "base" directory where the assembly was originally defined, so we
11436         can load DLLs that are in the same directory as the assembly that
11437         is being referenced.
11438
11439 2002-03-28  Dick Porter  <dick@ximian.com>
11440
11441         * file-io.h: 
11442         * file-io.c:
11443         * socket-io.c: 
11444         * unicode.h: 
11445         * unicode.c: Warning cleanups
11446
11447 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11448
11449         * object.h, reflection.h: use the correct type instead of MonoObject.
11450
11451 2002-03-28  Martin Baulig  <martin@gnome.org>
11452
11453         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11454         (mono_debug_update_symbol_file): Initialize classes if necessary.
11455
11456 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11457
11458         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11459         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11460
11461 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11462
11463         * assembly.h: fix function prototype.
11464         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11465         * mono-endian.h: use const cast.
11466
11467 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11468
11469         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11470
11471 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11472
11473         * loader.c: don't assert when a typeref can't be loaded, give
11474         a chance to the runtime to trow an exception instead.
11475         * loader.h: fix warning.
11476
11477 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11478
11479         * class.c (mono_class_proxy_vtable): added proxy support
11480
11481 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11482
11483         * icall.c: removed last of PAL calls, added System.Environment
11484         * file-io.h, file-io.c: MonoIO implementation
11485         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11486
11487 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11488
11489         * appdomain.c: do not use the byte marker in ldstr table lookup.
11490         * debug-helpers.c: allow two ':' to separate class and method name.
11491         * object.c: allocate arrays bounds with the GC, too.
11492         * verify: add a few more checks.
11493
11494 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11495
11496         * reflection.c: output also literal strings. Allocate parameter data
11497         with GC_malloc() (thanks, Martin, for catching this!).
11498
11499 2002-03-26  Martin Baulig  <martin@gnome.org>
11500
11501         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11502         include the `this' offset in the `param_offsets'.
11503
11504 2002-03-25  Martin Baulig  <martin@gnome.org>
11505
11506         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11507         mono_debug_get_class() function to get the classes. Added new
11508         relocation types for arrays and strings.
11509         (mono_debug_get_class): New static function to search in all
11510         referenced assemblies for a metadata token.
11511
11512         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11513
11514 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11515
11516         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11517         hold gc-allocated objects. Make the string heap a stream like the
11518         others. Removed duplicated code when writing stream info.
11519         Added asserts to catch possible buffer overflows. Set the sorted map
11520         for tables that need sorting. Added some documentation.
11521
11522 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11523
11524         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11525         for interned strings and vtables.
11526
11527 2002-03-24  Martin Baulig  <martin@gnome.org>
11528
11529         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11530         it in the array since it was created with g_slist_prepend().
11531
11532 2002-03-24  Martin Baulig  <martin@gnome.org>
11533
11534         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11535         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11536         (mono_debug_method_from_token): Renamed to
11537         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11538         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11539
11540         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11541         relocation types.
11542
11543         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11544
11545 2002-03-24  Martin Baulig  <martin@gnome.org>
11546
11547         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11548         (mono_debug_method_from_token): New func.
11549
11550         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11551         New interncall, calls mono_debug_local_type_from_signature().
11552         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11553         calls mono_debug_method_from_token().
11554
11555 2002-03-23  Martin Baulig  <martin@gnome.org>
11556
11557         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11558         specifies the number of bytes to be converted, not the array size.
11559         Return the number of chars, not the number of bytes.
11560         (ves_icall_iconv_get_chars): The `byteCount' argument
11561         specifies the number of bytes to be converted, not the array size.
11562
11563 2002-03-23  Martin Baulig  <martin@gnome.org>
11564
11565         * reflection.h (MonoReflectionSigHelper): New type.
11566
11567         * reflection.c (mono_reflection_sighelper_get_signature_local),
11568         (mono_reflection_sighelper_get_signature_local): New functions.
11569
11570         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11571         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11572         interncalls.
11573
11574 2002-03-23  Martin Baulig  <martin@gnome.org>
11575
11576         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11577         is_writeable is set.
11578         (mono_raw_buffer_update): New function to write the modified map
11579         back to disk.
11580
11581         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11582
11583         * debug-symfile.c (mono_debug_update_symbol_file): Call
11584         mono_raw_buffer_update() when done writing.
11585
11586 2002-03-23  Martin Baulig  <martin@gnome.org>
11587
11588         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11589
11590         * debug-symfile.c: Added support for arguments and local variables.
11591
11592 2002-03-23  Dick Porter  <dick@ximian.com>
11593
11594         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11595         protected by ifdefs, hence breaking the w32 build.
11596
11597 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11598
11599         * object.c: implement is_interned() the right way.
11600
11601 2002-03-21  Martin Baulig  <martin@gnome.org>
11602
11603         * debug-symfile.[ch]: New files to handle debugging information
11604         files. There's also support to dynamically update these symbol
11605         files to include machine dependent information.
11606
11607 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11608
11609         * threads.c (mono_thread_create): new function to create thread
11610         from C
11611
11612 2002-03-20  Martin Baulig  <martin@gnome.org>
11613
11614         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11615         method is a constructor.
11616         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11617         points to ves_icall_InternalInvoke().
11618
11619 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11620
11621         * file-io.c: Flush shouldn't throw exceptions.
11622
11623 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11624
11625         * file-io.c: FileStream flush support; FileSetLength now
11626         restores file pointer.
11627
11628 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11629
11630         * class.c: set image for pointer classes.
11631
11632 2002/03/19  Nick Drochak <ndrochak@gol.com>
11633
11634         * sysmath.c: Forgot one.
11635
11636 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11637
11638         * sysmath.c: Avoid redefining existing names.
11639
11640 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11641
11642         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11643         handled by runtime as icall rather than dllimport from libm.so
11644         * file-io.c, file-io.h: fixed handle argument type.
11645
11646 2002-03-18  Dick Porter  <dick@ximian.com>
11647
11648         * reflection.c (mono_image_get_type_info): rename interface to
11649         iface, because of "#define interface struct" on windows.
11650
11651 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11652
11653         * class.c, class.h: rename and export mono_ptr_class_get().
11654         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11655         * reflection.c, reflection.h, icall.c: better/saner type name
11656         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11657         method signatures.
11658
11659 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11660
11661         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11662
11663         * icall.c (ves_icall_InternalInvoke): impl.
11664
11665 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11666
11667         * reflection.c: output the interface map table, too.
11668
11669 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11670
11671         * class.c (class_compute_field_layout): separate computation of 
11672         static field layout
11673
11674 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11675
11676         * icall.c: added System.Buffer support.
11677         * file-io.c: moved file icalls from PAL to FileStream.
11678
11679 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11680
11681         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11682
11683 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11684
11685         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11686
11687 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11688
11689         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11690
11691 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11692
11693         * debug-helpers.{c,h}: moved here from monograph some useful functions
11694         to locate a method by name/signature in a class or image. Included
11695         also a small and flexible IL disassembler.
11696
11697 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11698
11699         * reflection.c: fixup tokens in methods with small header size, too.
11700
11701 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
11702
11703         * object.c (mono_string_to_utf8): remove assert(!error), instead
11704         print a warning. 
11705
11706 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
11707
11708         * icall.c: update to the new mono_Array_class_get interface.
11709
11710 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11711
11712         * appdomain.c, object.c: Boehm-GC enable.
11713         * icall.c: make get_data_chunk() support split data requests.
11714         Ensure a class is initialized in more cases. Return only the first
11715         property found in GetProperties() or the compiler gets confused. 
11716         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
11717         * reflection.h, reflection.c: add fixup mechanism for field and method
11718         tokens. Initialize assembly->typeref in a single place. Output
11719         properties after events. Support custom attributes for events, too.
11720         Typo fix for paramter custom attrs.
11721
11722 2002-03-07  Martin Baulig  <martin@gnome.org>
11723
11724         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
11725
11726 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
11727
11728         * class.c (mono_array_class_get): fix. for multi. dim. arrays
11729
11730 2002-03-06  Martin Baulig  <martin@gnome.org>
11731
11732         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
11733         non-zero lower bounds. See testcases #F10-#F13.
11734
11735 2002-03-05  Martin Baulig  <martin@gnome.org>
11736
11737         * exception.c (mono_get_exception_argument_out_of_range): New exception.
11738
11739         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
11740         ves_icall_System_Array_GetValue(), only calculate the absolute array position
11741         here.
11742         (ves_icall_System_Array_SetValue): Likewise.
11743         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
11744         as argument and does the actual work. This function is used when copying a
11745         multi-dimensional array.
11746         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
11747         now do all the widening conversions of value types.
11748         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
11749
11750 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11751
11752         * class.c: remove some magic numbers and use the smbolic names,
11753         instead. Added init_events() to load event info at class init time.
11754         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
11755         and mono_metadata_methods_from_event().
11756         * reflection.h, reflection.c: added support for writing out the evnets
11757         related information.
11758
11759 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11760
11761         * reflection.h, icall.c: use a different method (GetInterfaces)
11762         to gather interface info and add isbyref, isprimitive and
11763         ispointer to the ves_icall_get_type_info() return value.
11764
11765 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11766
11767         * class.h: stared adding support for events.
11768         * icall.c: split find_members implementation. Added debug icall to get
11769         the address of an object.
11770         * reflection.c: handle TypeBuilders in mono_type_get_object().
11771
11772 2002-03-01  Martin Baulig  <martin@gnome.org>
11773
11774         * icall.c (ves_icall_System_Array_GetLength): This must throw an
11775         ArgumentOutOfRangeException(), not an ArgumentException().
11776         (ves_icall_System_Array_GetLowerBound): Likewise.
11777         (ves_icall_System_Array_GetValue): Improved argument checking.
11778         (ves_icall_System_Array_SetValue): Improved argument checking.
11779
11780 2002-03-01  Martin Baulig  <martin@gnome.org>
11781
11782         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
11783         called with invalid arguments rather than just dying with g_assert().
11784         (ves_icall_System_Array_SetValue): Likewise.
11785         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
11786         raise a NotImplementedException instead.
11787         (ves_icall_System_Array_GetLength): Added argument checking.
11788         (ves_icall_System_Array_GetLowerBound): Added argument checking.
11789
11790 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
11791
11792         * object.h (mono_assert): new macros mono_assert and
11793         mono_assert_not_reached
11794
11795 2002-02-28  Martin Baulig  <martin@gnome.org>
11796
11797         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
11798         and "System::String::IsInterned" to "System::String::_IsInterned".
11799
11800 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
11801
11802         * icall.c: remove hacks for typebuilder. Added icall to create a
11803         modified type from a tybebuilder.
11804         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
11805         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
11806         to create a backing MonoClass for a TypeBuilder.
11807
11808 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11809
11810         * class.c, class.h: more refactoring of class init.
11811         Export mono_class_setup_mono_type() and mono_class_setup_parent().
11812
11813 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
11814
11815         * marshal.c, marshal.h: start of marshaling interface.
11816
11817 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
11818
11819         * icall.c: fix order in assembly qualified name icall.
11820
11821 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
11822
11823         * class.c: do not free str, since we store it in the hash table.
11824         * reflection.h: add label field to MonoILExceptionInfo.
11825         * reflection.c: handle references to more than one assembly. Handle
11826         case when there isn't a module created in the assembly.
11827
11828 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11829
11830         * class.c: Fix typo. Start refactoring of class init code.
11831
11832 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11833
11834         * appdomain.c: exit with 1 on error.
11835         * class.c: we already have the name in MonoClassField.
11836         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
11837         MonoStreamHeader instead of an offset of image->raw_metadata.
11838
11839 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
11840
11841         * appdomain.c (mono_init): Be even more descriptive about the error.
11842
11843 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
11844
11845         * appdomain.c: give the user an informative message when corlib can't
11846         be loaded.
11847
11848 2002-02-26  Martin Baulig  <martin@gnome.org>
11849
11850         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
11851         New icall to get the time zone data.
11852
11853 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11854
11855         * reflection.c: set virtual and raw size of section correctly.
11856         * threads.c: transfer domain information to newly created threads.
11857
11858 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
11859
11860         * class.c: when instancing a class in a domain, load the default
11861         vaules for static fields from the constant table. Fix System.Enum to
11862         not be an enum.
11863         * icall.c: implement Object::GetType() internalcall. Implemented
11864         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
11865         Fixed checking of binding flags in find_members().
11866         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
11867         * reflection.c: handle enumerations when writing to the constant
11868         table. Use a different object cache for types.
11869
11870
11871 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
11872
11873         * object.c (mono_object_isinst): fix for arrays
11874
11875         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
11876
11877 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
11878
11879         * object.c: don't use mprotect ()  and fix intern pool hash table
11880         lookup for big endian systems.
11881
11882 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11883
11884         * icall.c: change type_is_subtype_of () signature.
11885
11886 2002-02-21  Mark Crichton  <crichton@gimp.org>
11887
11888         * rand.c, rand.h: Added random number generator for
11889         System.Security.Cryptography classes.
11890
11891         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
11892
11893         * icall.c: Added System.Security.Cryptography calls.
11894
11895 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
11896
11897         * class.c, icall.c, metadata.c: better support for pointer types.
11898         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
11899         * reflection.c: Add support for getting custom attrs for properties
11900         and simplify some code.
11901
11902 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11903
11904         * icall.c: change getToken () and add custom attribute GetBlob()helper
11905         method.
11906         * reflection.h: add custom attrs array to the reflection builder structures.
11907         * reflection.c: encode and emit custom attributes for all the relevant
11908         reflection objects. Cache fieldref and methodref tokens. Change
11909         mono_image_create_token() interface to take a MonoDynamicAssembly.
11910         More complete custom attributes decoder. Load custom attributes for
11911         Assembly, Field, Method and Constructor objects, too. Make the
11912         returned array an Attribute[] one, not object[]. Added
11913         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
11914         custom attribute constructor.
11915
11916 2002-02-20  Dick Porter  <dick@ximian.com>
11917
11918         * icall.c:
11919         * rawbuffer.c:
11920         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
11921         problem code out for now).
11922
11923 2002-02-19  Radek Doulik  <rodo@ximian.com>
11924
11925         * object.c (mono_ldstr): use hash table to avoid multiple swapping
11926
11927 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
11928
11929         * icall.c: register the GetCustomAttributes method.
11930         * object.c, object.h: add mono_string_new_len ().
11931         * reflection.h, reflection.c: added mono_runtime_invoke(),
11932         mono_install_runtime_invoke(). Added
11933         mono_reflection_get_custom_attrs () to load custom attributes and
11934         create the attribute objects.
11935
11936 2002-02-19  Dick Porter  <dick@ximian.com>
11937         * threads-dummy-types.c:
11938         * threads-dummy-types.h:
11939         * threads-dummy.c:
11940         * threads-dummy.h:
11941         * threads-pthread-types.c:
11942         * threads-pthread-types.h:
11943         * threads-pthread.c:
11944         * threads-pthread.h:  Deleted obsolete files
11945
11946 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
11947
11948         * class.c (mono_class_vtable): runtime init the class when we
11949         allocate static class data.
11950
11951         * icall.c (ves_icall_System_Array_SetValue): check for null values.
11952
11953         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
11954         and String - but we will need generic marshalling support in the
11955         future. 
11956         (mono_init): set the domain name in a ms compatible way
11957
11958         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
11959         String[].
11960
11961 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
11962
11963         * object.c (mono_array_clone): use alloca() instead of g_malloc  
11964         for sizes
11965
11966         * appdomain.c (mono_domain_unload): impl.
11967
11968 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
11969
11970         * appdomain.c, object.c: fix intern pool implementation.
11971         * class.c: fix alignment code.
11972
11973 2002-02-16  Radek Doulik  <rodo@ximian.com>
11974
11975         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
11976         and s2 > s1, just copy lower bytes to be compatible with little
11977         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
11978         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
11979
11980         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
11981         force big_endian to be 1 for big endian machines 
11982         (ves_icall_iconv_new_decoder): ditto
11983
11984 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
11985
11986         * socket-io.c (convert_sockopt_level_and_name): If the system
11987         doesn't define SOL_IP or SOL_TCP, get them by hand using
11988         getprotobyname() and caching the values (because this could be a
11989         slow operation).
11990         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
11991         Use the appropriate struct when the system does support it. Ie,
11992         not all systems have struct ip_mreqn so use struct ip_mreq when
11993         appropriate.
11994
11995 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
11996
11997         * reflection.c: handle finally clauses.
11998
11999 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12000
12001         * socket-io.c: use g_snprintf() instead of snprintf.
12002
12003 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12004
12005         * reflection.c (mono_param_get_objects): Cast second argument to
12006         mono_method_get_param_names to a const char** to silence the
12007         compiler warning.
12008
12009         * appdomain.c (mono_domain_assembly_open): Put parens around the
12010         truth statement in the for-loop.
12011
12012         * unicode.c (iconv_convert): Got rid of a compiler warning about
12013         int i being unused when the system has a new iconv.
12014         (iconv_get_length): Same.
12015
12016         * image.c (load_class_names): Cast the second argument to
12017         g_hash_table_insert() to char* to hush compiler warnings about the
12018         arg being a const.
12019         (mono_image_open): Same here.
12020
12021         * socket-io.c: Don't conditionally include sys/filio.h or
12022         sys/sockio.h here anymore since we now get them from
12023         io-layer/io-layer.h
12024         (inet_pton): If the system doesn't support inet_aton, implement
12025         using inet_addr and also #define INADDR_NONE if it isn't defined
12026         by the system.
12027
12028 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12029
12030         * metadata.c, metadata.h: added function to get packing and size info
12031         of a typedef.
12032         * reflection.h, reflection.c: handle field RVA data. Save info about
12033         the table layout if needed. Assign typedef indexes to all the types
12034         before dumping the info about them to avoid forward reference problems.
12035
12036 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12037
12038         * socket-io.c (convert_sockopt_level_and_name): ifdef
12039         SO_ACCEPTCONN because it is not defined on my system (old debian)
12040
12041 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12042
12043         * opcode.c: use stddef.h to get NULL.
12044
12045 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12046
12047         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12048         for FIONBIO, FIONREAD and SIOCATMARK.
12049         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12050         define INADDR_NONE and besides, inet_addr() is deprecated and
12051         should not be used. Use inet_pton() instead - it also has the
12052         added bonus that it can easily handle IPv6 addresses as well.
12053         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12054
12055 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12056
12057         * decimal.c: remove _MSC_VER conditional.
12058
12059 2002-02-13  Dick Porter  <dick@ximian.com>
12060
12061         * socket-io.c: 
12062         * icall.c: Internal calls for Blocking, Select, Shutdown,
12063         GetSocketOption and SetSocketOption
12064
12065 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12066
12067         * assembly.cs: better resolver: use it instead of some kludgy
12068         code.
12069
12070 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12071
12072         * reflection.c: the best way to speed-up the compiler is to avoid
12073         infinite loops.
12074
12075 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12076
12077         * class.c (mono_class_vtable): changed the object layout
12078         (obj->vtable->class). 
12079         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12080
12081 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12082
12083         * assembly.c: look for assemblies in the assembly dir, too.
12084
12085 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12086
12087         * class.c: fix thinko in mono_class_from_type().
12088
12089 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12090
12091         * exception.h, exception.c: added TypeLoadException.
12092         * object.h, object.c: added mono_array_clone ().
12093         * icall.c: handle throwOnError in AssemblyGetType().
12094         Added Array.Clone().
12095         * opcode.h, opcode.c: use a single value for the opcode val.
12096         Compile fix for non-gcc compilers.
12097
12098 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12099
12100         * opcodes.c, opcodes.h: export interesting info about opcodes.
12101
12102 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12103
12104         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12105         icalls. 
12106
12107         * class.c (class_compute_field_layout): set element_class for enums
12108         (mono_class_create_from_typedef): set element_class for normal classes
12109
12110         * icall.c (ves_icall_System_Enum_get_value): impl.
12111
12112         * class.c (mono_class_create_from_typedef): do not set valuetype
12113         flag for System.ValueType and System.Enum
12114
12115 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12116
12117         * unicode.c (iconv_convert): fix big endian problem.
12118
12119 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12120
12121         * class.c: add asserts if we are ever going to scribble over memory.
12122         * socket-io.c: not all systems have AF_IRDA defined.
12123
12124 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12125
12126         * class.c (class_compute_field_layout): do not consider static
12127         fields to compute alignment
12128
12129 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12130
12131         * appdomain.c (mono_appdomain_get): impl.
12132         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12133
12134 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12135
12136         * icall.c: ignore "file://" prefix when loading an assembly.
12137
12138 2002-01-23  Dick Porter  <dick@ximian.com>
12139
12140         * socket-io.c:
12141         * icall.c:
12142         * Makefile.am: Added socket support
12143
12144 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12145
12146         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12147         code back.  This should return the assemblies that are loaded by
12148         the runtime on behalf of an application domain. 
12149
12150         The current implementation is still broken, it just returns every
12151         assembly loaded, but until we get real applications domain this
12152         will do.
12153
12154 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12155
12156         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12157         AppDomain object.
12158
12159 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12160
12161         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12162         the mono_class_from_name lookup.
12163         (ves_icall_get_parameter_info): ditto.
12164         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12165         method.
12166         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12167
12168 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12169
12170         * class.c: load also nested classes on class init.
12171         System.ValueType instance methods gets passed boxed
12172         values, unless methods in derived classed that get a pointer to the
12173         data.
12174         * icall.c: use better name parsing code in GetType().
12175         * image.c, image.h: add mono_image_loaded ().
12176         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12177         * reflection.c, reflection.h: added mono_reflection_parse_type().
12178
12179 2002-01-22  Veronica De Santis <veron78@interfree.it>
12180
12181         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12182         * threads.c : Added the implementation of internal calls for events
12183         * threads.h : Added prototypes of internal calls for events
12184         
12185 2002-01-21  Radek Doulik  <rodo@ximian.com>
12186
12187         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12188
12189 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12190
12191         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12192         (mono_class_value_size): use min_align
12193
12194 2002-01-20  Dick Porter  <dick@ximian.com>
12195
12196         * threads.h:
12197         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12198         so it compiles on w32.
12199
12200 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12201
12202         * metadata.c (mono_type_stack_size): impl.
12203
12204         * class.c (mono_class_get_field): impl. memberref token
12205
12206 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12207
12208         * icall.h : Added the internal calls mapping for CreateMutex_internal
12209                     and ReleaseMutex_internal.
12210         * threads.h : Added the prototype of mutexes internal calls.
12211         * threads.c : Added the implementations of mutexes internal calls.
12212
12213 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12214
12215         * metaparse.h: removed unused file.
12216         * reflection.c, reflection.h: added stream_data_align () function 
12217         to align data in streams and keep stream aligned. Add support for
12218         exception support in method headers.
12219
12220 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12221
12222         * unicode.c: make iconv_convert () return the number of bytess written
12223         in the output buffer.
12224
12225 2002-01-15  Dick Porter  <dick@ximian.com>
12226         * threads.c: Make the runtime's idea of infinite timeouts coincide
12227         with the class library's
12228
12229         Fix a particularly egregious bug in mono_thread_cleanup(). That
12230         code was so utterly bogus it must have been written on a Monday.
12231
12232 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12233
12234         * reflection.h: add subtypes field to TypeBuilder.
12235         * reflection.c: encode constants for literal fields.
12236         Handle subtypes. Fix user string token (and add a zero byte)
12237         at the end.
12238         
12239 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12240
12241         * class.c (mono_class_init): bug fix: assign slot numbers for
12242         abstract methods.
12243
12244 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12245
12246         * reflection.c: don't try to output a code RVA for abstract methods.
12247         Small fixes for method header format. Output parameter info to the
12248         ParamDef table. Save method overriding info to MethodImpl table.
12249         Fix property support. Allow typedef.extends to be a type in the
12250         building assembly.
12251         * verify.c: fix off-by-one error.
12252
12253 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12254
12255         * class.c: fix mono_class_from_mono_type () for szarray types.
12256         Remove unused cache check in mono_class_from_type_spec().
12257         * icall.c: *type_from_name () functions handle simple arrays and byref.
12258         * reflection.c: handle byref and szarray types. Handle methods without
12259         body (gets P/Invoke compilation working). Handle types and fields in
12260         get_token ().
12261         * reflection.h: add rank to MonoTypeInfo.
12262
12263 2002-01-10  Dick Porter  <dick@ximian.com>
12264
12265         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12266         internal calls
12267
12268 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12269
12270         * icall.c: initialize class in type_from_handle ().
12271         Loop also in parent classes for get_method ().
12272         * reflection.c: properly encode class and valuetype types.
12273         Start on encoding TypeBuilder types. Handle fieldrefs.
12274         Use correct length when registering a user string.
12275         Handle ConstructorBuilder and MonoMethod in get_token ().
12276         Make mono_type_get_object () aware of cached types.
12277         * object.c: back out change to mono_string_new ().
12278
12279 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12280         * object.c: mono_string_new should return a NULL when the string 
12281         passed in is NULL -- not try to deference it.
12282         
12283 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12284
12285         * icall.c: hack to make IsSubType work for TypeBuilders.
12286         * reflection.c: emit constructors before methods.
12287         Retrieve param names in mono_param_get_objects().
12288
12289 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12290
12291         * Makefile.am: fix list of headers and sources so automake 1.5
12292         doesn't complain. Removed \# at end of list.
12293
12294 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12295
12296         * reflection.c: get token for a method ref. Set return type of
12297         constructor to void.
12298         * loader.c: debug message.
12299         * class.c: typo fix.
12300
12301 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12302
12303         * icall.c: fix array init with rank > 1. FindMembers
12304         loops in parent class as well.
12305         * image.c: do not insert nested types in name cache.
12306         * reflection.c: warning fix.
12307         * reflection.h: add override method (for interface impl).
12308
12309 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12310
12311         * metadata.c: fix customattr decoding.
12312
12313 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12314
12315         * rawbuffer.cs: Added native Win32 implementation, avoids using
12316         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12317
12318 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12319
12320         * class.c: make the low-level routines handle the cache.
12321
12322 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12323
12324         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12325
12326 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12327
12328         * class.c: fix mono_array_element_size() for objects.
12329         * class.h, class.c: add properties to MonoClass and load them
12330         at init time.
12331         * icall.c: check with isinst() when assigning a value to an array
12332         instead of requiring the classes to match exactly.
12333         Implemented icall for System.Type::GetType().
12334         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12335         enums. Handle bindingflags when looking for methods and fields.
12336         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12337         and mono_metadata_methods_from_property().
12338         * reflection.h, reflection.c: added structures for propreties,
12339         parameters and enums. Implemented mono_property_get_object() and
12340         mono_param_get_objects().
12341
12342 2001-12-18  Dick Porter  <dick@ximian.com>
12343
12344         * file-io.c: Use mono_string_to_utf16() instead of
12345         mono_string_chars()
12346
12347         * object.c: Added mono_string_to_utf16(), which copies the non
12348         NULL-terminated MonoString into a new double-null-terminated
12349         buffer.
12350
12351 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12352
12353         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12354
12355 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12356
12357         * file-io.c: raise exceptions if handle is invalid.
12358
12359 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12360
12361         * assembly.c: yet another check for mscorlib.
12362         * class.c, class.h: load nesting info for classes.
12363         * icall.c: many new functions to support the Reflection classes.
12364         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12365         * reflection.h, reflection.c: mono_image_create_token(),
12366         mono_assembly_get_object(), mono_type_get_object(),
12367         mono_method_get_object(), mono_field_get_object(): methods to return
12368         objects that parallel the C representation of assemblies, types,
12369         methods, fields.
12370
12371 2001-12-11  Dick Porter  <dick@ximian.com>
12372
12373         * icall.c:
12374         * file-io.c: Internal calls for file IO.
12375
12376 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12377
12378         * tabledefs.h: missing FileAttributes.
12379         * verify.h, verify.c: use is_valid_string () to simplify and check for
12380         valid strings more correctly. Fix warnings and speeling.
12381         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12382         Check code: branches, maxstack, method calls.
12383
12384 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12385
12386         * object.c (mono_object_allocate): removed static, so that the jit
12387         can allocate value types.
12388
12389         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12390
12391 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12392
12393         * class.c: init enum types right away and register the
12394         token->MonoClass map in mono_class_create_from_typedef ().
12395         * verify.h, verify.c: first cut of the verifier.
12396         * pedump.c: add --verify switch to verify metadata tables.
12397         * tabledefs.h: add some missing enums.
12398
12399 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12400
12401         * class.c (mono_install_runtime_class_init): impl.
12402         (mono_class_init): renamed mono_class_metadata_init to
12403         mono_class_init, also removed the metadata_inited flag
12404
12405         * object.c (mono_object_isinst): use faster algorithm
12406
12407 2001-11-30  Radek Doulik  <rodo@ximian.com>
12408
12409         * mono-endian.h: reverted last change
12410         added function prototypes
12411
12412         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12413         add mono-endian.c back
12414
12415         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12416         for unaligned access, I've mistaked it with endianess. I am
12417         sorry.
12418         (mono_read16): fix reverted endianess
12419         (mono_read64): ditto
12420         (mono_read32): ditto
12421
12422 2001-11-30  Dick Porter  <dick@ximian.com>
12423
12424         * exception.c: Implement mono_exception_from_name()
12425
12426 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12427
12428         * metadata.h, metadata.c: remove params_size and locals_size and their
12429         calculation from the metadata code: they are only usefult to the
12430         interp.
12431
12432 2001-11-29  Radek Doulik  <rodo@ximian.com>
12433
12434         * object.c (mono_ldstr): swap bytes here, it's probably not the
12435         best place, but works for me now, I'll redo it once I know mono
12436         better, also note that I add PROT_WRITE and don't reset back, also
12437         note that it's only affects big endians, so x86 should be OK
12438
12439         * mono-endian.h (read16): use just glib macros for both endians
12440
12441         * mono-endian.c: removed as glib macros are used in in
12442         mono-endian.h so we don't need to care about endianess for read
12443         macros as glib does that for us already
12444
12445 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12446
12447         * class.h, class.h: take minimum alignment into consideration so
12448         that the fields of a class remain aligned also when in an array.
12449
12450 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12451
12452         * loader.h, loader.c: add mono_method_get_param_names().
12453         * class.c: 0-init class fields.
12454
12455 2001-11-26  Dick Porter  <dick@ximian.com>
12456
12457         * icall.c:
12458         * threads-types.h:
12459         * threads.c: New file that handles System.Threading on all platforms
12460
12461         * object.c: 
12462         * object.h: Remove the synchronisation struct from MonoObject,
12463         replace it with a pointer that gets initialised on demand
12464
12465         * Makefile.am: Replace all the system-specific threading code with
12466         a single file that uses the new wrapper library
12467
12468 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12469
12470         * class.c, class.h: add mono_install_trampoline() so that the runtime
12471         can register a function to create a trampoline: removes the ugly
12472         requirement that a runtime needed to export arch_create_jit_trampoline.
12473         * object.h, object.c: added mono_install_handler() so that the runtime
12474         can install an handler for exceptions generated in C code (with
12475         mono_raise_exception()). Added C struct for System.Delegate.
12476         * pedump.c: removed arch_create_jit_trampoline.
12477         * reflection.c: some cleanups to allow registering user strings and
12478         later getting a token for methodrefs and fieldrefs before the assembly
12479         is built.
12480         * row-indexes.h: updates and fixes from the new ECMA specs.
12481
12482 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12483
12484         * class.h, class.c: add enum_basetype field to MonoClass.
12485         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12486         to get index in the constant table reated to a field, param or
12487         property.
12488         * reflection.h, reflection.c: handle constructors. Set public-key and
12489         version number of the built assembly to 0.
12490         * row-indexes.h: update from new ECMA spec.
12491
12492 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12493
12494         * class.h, class.c: add a max_interface_id to MonoClass.
12495         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12496         since it's used to do that. Added mono_type_type_from_obj().
12497         Make GetType() return NULL instead of segfaulting if the type was not
12498         found. Handle simple arrays in assQualifiedName.
12499         * object.h: add a struct to represent an Exception.
12500         * reflection.c: output call convention in method signature.
12501         Add code to support P/Invoke methods and fixed offsets for fields.
12502
12503 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12504
12505         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12506         the value.
12507         * icall.c: use mono_array_addr instead of array->vector: fixes the
12508         reflection image writing.
12509         * reflection.c: init call convention byte to 0 in method signature.
12510         Encode the property signature. Don't output property-related methods
12511         twice. Really process the properties for a type (don't cast a field to
12512         a property, my mom always told me that).
12513         Fix 64 bit issues in pointer alignment in a different and more
12514         readable way.
12515
12516 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12517
12518         * loader.h: Removed type class from MonoDefaults, added monotype
12519
12520         * loader.c: Loaded MonoType, removed loading of Type
12521
12522         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12523         and fills in System.Type._impl with a RuntimeTypeHandle rather
12524         than the actual MonoClass *
12525
12526         (ves_icall_type_from_handle): change from type_class to
12527         monotype_class
12528
12529         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12530         implemented
12531
12532         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12533         implemented
12534
12535         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12536
12537         (ves_icall_System_Reflection_Assembly_GetType): implemented
12538
12539         (ves_icall_System_MonoType_assQualifiedName): implemented
12540
12541         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12542
12543 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12544
12545         * assembly.c (mono_assembly_open): Implement a cache for the
12546         assemblies. 
12547
12548         (mono_assembly_close): only destroy the assembly when the last
12549         reference is gone.
12550         
12551 2001-11-09  Dick Porter  <dick@ximian.com>
12552
12553         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12554
12555 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12556
12557         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12558
12559 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12560
12561         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12562         from Martin Weindel.
12563         * object.h: add mono_string_chars ().
12564
12565 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12566
12567         * reflection.c (build_compressed_metadata): Eliminates warnings
12568         and uses 64-bit clean code.
12569
12570         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12571         (mono_type_equal): Change signature to eliminate warnings.
12572
12573 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12574
12575         * icall.c, loader.c: remove the internalcall array constructors.
12576         Changes to match the new MonoArray structure.
12577         * object.h, object.c: an array object doesn't allocate an extra
12578         vector. Add mono_array_new_full () to create jagged arrays easily.
12579
12580 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12581
12582         * metadata.h, metadata.c: add mono_metadata_field_info () to
12583         retreive all the info about a field from vairous tables.
12584         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12585         * class.h, class.c: augment MonoClassField with more info.
12586         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12587         policy and load a field's RVA if needed.
12588
12589 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12590
12591         * class.c (mono_class_metadata_init): create a trampoline for all
12592         virtual functions instead of actually compiling them.
12593
12594 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12595
12596         * class.h, class.c: include name in MonoClassField.
12597         * class.c: fix fundamental type of System.Object and System.String.
12598         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12599         tokens in ldtoken.
12600         * icall.c: remove internalcalls for the Reflection stuff that is now
12601         done in C# code.
12602         * loader.c: mono_field_from_memberref () implementation.
12603         * mono-endian.c: thinko (s/struct/union/g).
12604         * object.c, object.h: make the mono_string_* prototypes actually use
12605         MonoString instead of MonoObject.
12606         * reflection.c, reflection.h: updates for changes in the reflection
12607         code in corlib: we use C structures that map to the actual C# classes.
12608         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12609         fat method header if needed and use the info from the ILGenerator for
12610         methods. Handle fields in types. Misc fixes.
12611
12612 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12613
12614         * class.c (mono_class_metadata_init): bug fix: always allocate
12615         space for static class data
12616
12617 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12618
12619         * class.c (mono_compute_relative_numbering): use relative
12620         numbering to support fast runtime type checks.
12621
12622 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12623
12624         * class.c (mono_class_create_from_typeref): added debugging output
12625         to print class name when MonoDummy is returned instead of real class
12626
12627 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12628
12629         * class.c (mono_class_metadata_init): interface offset table now
12630         contains pointers into the vtable - this is more efficient for the jit
12631
12632 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12633
12634         * class.c (mono_class_metadata_init): use a temporary vtable (the
12635         old algorithm only worked for the interpreter, but not for the jit)
12636
12637 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12638
12639         * loader.c (method_from_memberref): use mono_class_get to get the
12640         class of an array instead of using System.Array directly.
12641         (mono_get_method): also add MEMBERREF methods to the method cache
12642         which usefull for arrays.
12643
12644 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12645
12646         * pedump.c (arch_compile_method): added to compute vtable entry
12647
12648         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12649         number of interfaces.
12650         
12651         * class.h: merged MonoArrayClass into MonoClass
12652
12653         * class.c (mono_class_create_from_typedef): compute the vtable size and
12654         allocate space to include the vtable inside MonoClass
12655         (mono_class_metadata_init): initialize the vtable
12656
12657 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12658
12659         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12660         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12661         * image.c: endian fixes by Laurent Rioux.
12662         * object.h, object.c: rename MonoStringObject to MonoString and
12663         MonoArrayObject to MonoArray. Change some function names to conform to
12664         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12665         guint16* as first argument, so don't use char*.
12666         Provide macros to do the interesting things on arrays in a portable way.
12667         * threads-pthread.c: updates for the API changes and #include <sched.h>
12668         (required for sched_yield()).
12669         * icall.c: updates for the API changes above.
12670         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12671         platforms that need them.
12672
12673 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12674
12675         * class.c: set the correct type for all the fundamental
12676         type when loading the class.
12677
12678 2001-10-05  Dick Porter  <dick@ximian.com>
12679
12680         * threads-pthread.c (pthread_mutex_timedlock): Simple
12681         compatibility version for C libraries that lack this call.
12682
12683 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12684
12685         * class.c: MonoTypes stored in MonoClass are stored as
12686         fundamental MonoTypes when the class represents a
12687         fundamental type (System.Int32, ...).
12688         The TypeHandle return by ldtoken is a MonoType*.
12689         * icall.c: ves_icall_get_data_chunk () write out all the
12690         PE/COFF stuff. Implement ves_icall_define_method (),
12691         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12692         * image.c: properly skip unknown streams.
12693         * loader.h, loader.c: add type_class to mono_defaults.
12694         * metadata.c, metadata.h: export compute_size () as
12695         mono_metadata_compute_size () with a better interface.
12696         Typo and C&P fixes.
12697         * pedump.c: don't try to print the entry point RVA if there is no entry point.
12698         * reflection.c, reflection.h: many cleanups, fixes, output method
12699         signatures and headers, typedef and typeref info, compress the metadata
12700         tables, output all the heap streams, cli header etc.
12701         * row-indexes.h: typo fixes.
12702
12703 2001-10-04  Dick Porter  <dick@ximian.com>
12704
12705         * object.h: Add a synchronisation mutex struct to MonoObject
12706
12707         * object.c (mono_new_object): Initialise the object
12708         synchronisation mutexes
12709
12710         * icall.c: System.Threading.Monitor internal calls
12711         
12712         * threads-pthread.h:
12713         * threads-pthread.c: System.Threading.Monitor internal calls
12714
12715         * threads-types.h: New file, includes the system-specific thread
12716         structures
12717         
12718         * threads-pthread-types.h:
12719         * threads-pthread-types.c: New files, handle pthread-specific
12720         synchronisation types
12721
12722         * threads-dummy-types.h: 
12723         * threads-dummy-types.c: New files of dummy support for
12724         thread-specific types
12725
12726         * metadata.c:
12727         * image.c:
12728         * pedump.c: include mono-endian.h not endian.h
12729         
12730         * Makefile.am: More threads files.
12731         Name mono-endian.h not endian.h
12732
12733 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
12734
12735         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
12736         stuff and implement a few more bits.
12737         * icall.c: a field needs to be dereferenced twice. Do not use the same
12738         name for two variables in the same scope.
12739         * image.c, image.h: cleanups.
12740
12741 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
12742
12743         * class.c (mono_class_metadata_init): bug fix: compute the right size
12744
12745 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
12746
12747         * icall.c: implemented some of the Reflection internalcalls.
12748         * image.c, image.h: start writing out the PE/COFF image.
12749         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
12750         that does the reverse than decode_blob_size ().
12751         * object.c: use mono_metadata_encode_value (). Move here
12752         temporary implementation of mono_string_to_utf8 ().
12753         * rawbuffer.c: make malloc_map static.
12754
12755 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12756
12757         * metadata.c: fix type comparison for arrays.
12758         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
12759         Added a couple of new classes to monodefaults.
12760         * icall.c: added a couple of Reflection-related internalcalls.
12761         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
12762         Added a byval_arg MonoType to MonoClass.
12763
12764 2001-09-28  Dick Porter  <dick@ximian.com>
12765
12766         * icall.c:
12767         * threads-pthread.h: 
12768         * threads-pthread.c: Implemented internal calls for
12769         LocalDataStoreSlot operations.  Applied mutexes around all shared
12770         data.  Reworked the thread creation and Start() operations to
12771         avoid a race condition.
12772         
12773         * threads-dummy.h:
12774         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
12775
12776 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
12777
12778         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
12779
12780 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
12781
12782         * class.c, loader.c: warn and return NULL instead of erroring out.
12783         * icall.c: added System.AppDomain::getCurDomain().
12784         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
12785
12786 2001-09-25  Dick Porter  <dick@ximian.com>
12787
12788         * threads-pthread.h:
12789         * threads-pthread.c: Implemented timed thread joining and added
12790         System.Threading.Thread::Join_internal internal call
12791
12792         * icall.c: Added System.Threading.Thread::Join_internal internal call
12793
12794         * threads-dummy.h:
12795         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
12796
12797 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
12798
12799         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
12800         mono_string_intern () to implement the semantics of the ldstr opcode
12801         and the interning of System.Strings.
12802         * icall.c: provide hooks to make String::IsIntern and String::Intern
12803         internalcalls.
12804
12805 2001-09-23  Dick Porter  <dick@ximian.com>
12806
12807         * threads-dummy.c: 
12808         * threads-dummy.h: New files of dummy threading routines
12809
12810         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
12811         support code based on system specifics
12812
12813         Rename PTHREAD_LIBS to THREAD_LIBS
12814         
12815 2001-09-23  Dick Porter  <dick@ximian.com>
12816
12817         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
12818         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
12819         internal calls.
12820         (mono_thread_init): Set up a Thread object instance to return when
12821         the main thread calls Thread.CurrentThread
12822         (mono_thread_cleanup): Wait for all subthreads to exit
12823
12824         * icall.c: New internal calls for System.Threading.Thread::Sleep
12825         (including Schedule) and CurrentThread
12826
12827         * threads.h: New file, to insulate thread-specific stuff from the
12828         rest of the code
12829
12830 2001-09-21  Dick Porter  <dick@ximian.com>
12831
12832         * threads-pthread.h: 
12833         * threads-pthread.c: New file, for handling pthreads-style
12834         threading support.  Start() now starts a new thread and executes
12835         the ThreadStart delegate instance.
12836
12837         * icall.c: Added the internalcall for
12838         System.Threading.Thread::Start_internal
12839
12840         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
12841
12842 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
12843
12844         * loader.c: work around the different signatures for delegates
12845         constructors csc generates in compiled code vs the ones compiled in mscorlib.
12846
12847 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
12848
12849         * class.h, class.c: add mono_class_get_field_from_name ().
12850         * *: Fix C comments and other ANSI C issues.
12851
12852 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
12853
12854         * endian.h, assembly.c: fix some endianness issues.
12855
12856 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
12857
12858         * loader.h, load.c: add delegate_class to mono_defaults.
12859         Handle runtime provided methods in mono_get_method ().
12860
12861 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
12862
12863         * loader.c (mono_get_method): use pinvoke for internal call
12864
12865         * icall.c: use pinvoke for internal call
12866
12867         * loader.c (method_from_memberref): set the method name
12868
12869 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
12870
12871         * metadata.c: help the compiler generate better code for
12872         mono_class_from_mono_type ().
12873
12874 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
12875
12876         * class.c (mono_class_metadata_init): delayed computing of the
12877         class size to mono_class_metadata_init ()
12878
12879 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
12880
12881         * class.c, class.h: add an interfaces member to MonoClass.
12882         * image.c, image.h: add assembly_name field to MonoImage
12883         from the assembly table.
12884         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
12885
12886 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
12887
12888         * class.c: Handle Array in mono_class_from_mono_type ().
12889         * metadata.c, pedump.c: some endian fixes.
12890
12891 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12892
12893         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
12894         * metadata.c: fix small problem introduced with the latest commit.
12895
12896 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
12897
12898         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
12899         We don't need a MonoMetadata pointer anymore to compare signatures in
12900         mono_metadata_signature_equal (), update callers.
12901         Reduced memory usage an number of allocations for MonoMethodHeader and
12902         MonoMethodSignature.
12903
12904 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
12905
12906         * metadata.c: added compare for szarray.
12907
12908 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
12909
12910         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
12911         and add a couple more types to it and mono_defaults. Give an hint on
12912         classes that need implementing in our corlib and are referenced
12913         in mscorlib.
12914
12915 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
12916
12917         * class.h, class.c: keep track if a class is also an Enum.
12918         * loader.c: Implement a couple more types for use in libffi
12919         marshalling. Gives better diagnostics when failing to dlopen
12920         a library. Set method->klass for P/Invoke methods, too.
12921
12922 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
12923
12924         * class.c, class.h: add a MonoType this_arg to MonoClass that
12925         represents a pointer to an object of the class' type that
12926         can be used by the interpreter and later the type cache.
12927         Add best guess alignment info for valuetype objects.
12928
12929 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
12930
12931         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
12932         into MonoType: one less level of indirection and allocation and
12933         simplifies quite a bit of code. Added cache for MonoTypes that are
12934         used frequently, so that we don't need to allocate them all the time.
12935
12936 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
12937
12938         * class.c (mono_class_create_from_typedef): System.Enum is also a
12939         value type, although it does not derive from System.ValueType
12940         (maybe a bug in the ms compiler?)
12941
12942         * metadata.c (mono_type_size): return the right size for value types
12943
12944         * loader.c (mono_get_method): only initialize method header if not abstract
12945
12946         * class.c (mono_class_from_mono_type): use mono_default values. 
12947
12948 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
12949
12950         * *: use MonoClass pointers instead of <type_tokens>
12951         
12952         * class.h: new flag: metadata_inited.
12953
12954         * class.c (mono_class_metadata_init): impl.
12955         (mono_class_instance_size): impl.
12956         (mono_class_data_size): impl.
12957
12958 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12959
12960         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
12961         MonoClass now has the name and name_space fields. 
12962         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
12963         mono_get_method () takes and optional MonoClass as argument.
12964         Removed mono_typedef_from_name() and added mono_class_token_from_name()
12965         instead that takes advantage of a map from class names to typedef
12966         tokens in MonoImage.
12967
12968 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
12969
12970         * metadata.c: zero is not a valid alignment boundary.
12971         Merge MONO_TYPE_VOID in default decoding code.
12972
12973 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
12974
12975         * image.h: merged MonoMetadata into MonoImage
12976
12977         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
12978         identify the type of elements.
12979
12980 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
12981
12982         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
12983         * cil-coff.h: split MonoMSDOSHeader and add size info.
12984         * image.c: add some consistency checks.
12985         * metadata.c: fix row size computation: one programmer
12986         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
12987         add explanation for the locator routine.
12988         Fix decoding of size in method header.
12989         
12990 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
12991
12992         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
12993         (g_concat_dir_and_file): Bring g_concat_dir_and_file
12994         function from gnome-libs.  This uses the right path separator
12995         based on the OS, and also works around a bug in some systems where
12996         a double slash is not allowed. 
12997         (default_assembly_name_resolver): Use g_concat_dir_and_file
12998         (mono_assembly_open): ditto.
12999
13000 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13001
13002         * metadata.c (mono_metadata_signature_equal): impl.
13003
13004         * *: void is now a realy MonoType (instead of using NULL)
13005         
13006         * metadata.c (do_mono_metadata_parse_type): use
13007         mono_metadata_parse_type to parse void value.
13008
13009 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13010
13011         * metadata.c, metadata.h: in the signature and method header store
13012         only the space required for holding the loca vars and incoming arguments.
13013
13014 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13015
13016         * metadata.c (do_mono_metadata_parse_type): treat void like any
13017         other type (instead of assigning NULL);
13018
13019 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13020
13021         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13022
13023 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13024
13025         * image.c (do_mono_image_open): added a cache for arrays.
13026
13027 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13028
13029         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13030         decode a single column from a row in a metadata table and changes
13031         to take advantage of it in the typedef locator (gives a nice speed up).
13032         Store offset info for function params.
13033
13034 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13035
13036         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13037
13038 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13039
13040         * assembly.c: how could mono_assembly_close () had ever worked?
13041         * metadata.c, metadata.h: provide offset info for local vars.
13042         Implement mono_type_size () to take care of alignment as well
13043         as size (it was mono_field_type_size in cli/class.c before).
13044
13045 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13046
13047         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13048
13049         * assembly.h (CORLIB_NAME): set to corlib.dll
13050
13051         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13052
13053 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13054
13055         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13056         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13057         tokentype.h: massive namespace cleanup.
13058
13059 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13060
13061         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13062
13063 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13064
13065         * metadata.c (mono_metadata_free_type): added check for type !=
13066         NULL (void) before calling mono_metadata_free_type()
13067
13068 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13069
13070         * metadata.h, row_indexes.h: added header with enumerations to use
13071         to index in the columns from tables in metadata and to decode coded
13072         tokens: we should start using this instead of embedding magic numbers
13073         all over the code.
13074
13075 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13076
13077         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13078         Move metadata_t info from cli_image_info_t to MonoImage, where
13079         it's easily accessible. Changed all the uses accordingly.
13080         Added the method and class caches to MonoImage.
13081         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13082         and mono_metadata_decode_value () signature to be more consistent
13083         with the other parse functions (and simplify code). Taken advantage
13084         of zero-length array allocation with GCC. Removed reduntant (and
13085         wrong) MonoFieldType struct and use MonoParam instead. Changed
13086         mono_metadata_parse_field_type () to use common code for parsing.
13087         Added mono_metadata_typedef_from_field () and
13088         mono_metadata_typedef_from_method () to lookup a typedef index from a
13089         field or method token.
13090         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13091
13092 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13093
13094         * metadata.c (mono_metadata_parse_field_type): Implement. 
13095         (do_mono_metadata_parse_type): Split engine from
13096         mono_metadata_parse_type, so that we can create smaller structures
13097         for things that just have one pointer to the MonoType (look at
13098         the MonoFieldType)
13099
13100 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13101
13102         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13103         as Jan Gray found out, it is incorrect. 
13104
13105 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13106
13107         * assembly.c: Implement asssembly loading.  This loads an image
13108         and loads all the referenced assemblies.  Come to think of it, we
13109         could always do lazy loading of the assemblies. 
13110
13111         * image.c (mono_image_open): Keep loaded images in a hashtable.
13112
13113         * image.h (MonoImage): Add reference count.
13114
13115 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13116
13117         * assembly.c (mono_assembly_open): Keep track of the file name in
13118         case the assembly has no ASSEMBLY table.
13119
13120         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13121         from get.c here.
13122
13123 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13124
13125         * metadata.c, metadata.h: decode local vars in method header
13126         parse function. Change callers accordingly.
13127
13128 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13129
13130         * metadata.h, cil-coff.h: protect against multiple inclusion.
13131         Added some new structures to hold information decoded from metadata:
13132         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13133         and relevant decoding/free functions.
13134         * metadata.c: implement decoding functions. Add warning for out of bounds
13135         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13136         all the info about a method signature and invocation. Remove check on
13137         uninitialized local var in parse_mh() and fix memory leak.
13138
13139 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13140
13141         * metadata.h: More macros.
13142
13143         * tokentype.h: New file.
13144
13145 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13146
13147         * assembly.c: added a consistency check and initialize
13148         some structures with g_new0().
13149         * metadata.c: fixed a couple more bugs in table size computation
13150         and add other checks for out-of bound access to metadata.
13151
13152 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13153
13154         * metatada.c: fix bugs computing table sizes. Spew a
13155         warning when index in string heap is out of bounds.
13156
13157 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13158
13159         * metadata.h: Add a couple of macros to manipulate tokens. 
13160
13161 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13162
13163         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13164         cli_section_tables).
13165
13166 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13167
13168         * metadata.c (mono_metadata_user_string): New function, provides
13169         access to the UserString heap. 
13170
13171 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13172
13173         * metadata.c: Add inline documentation.
13174
13175 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13176
13177         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13178         files. 
13179
13180 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13181
13182         * typeattr.h: New file, TypeAttribute flags. 
13183
13184 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13185
13186         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13187         mono_assembly_ensure_section): Section loading code.
13188         (load_section_tables): Load the sections.
13189
13190         * mono/metadata/metadata.c (mono_metadata_locate_token,
13191         mono_metadata_locate): Functions to locate the information
13192         definition given a token or a table and an index.
13193         (mono_metadata_compute_table_bases): New.
13194         (compute_size): New function to compute the sizes of the various
13195         tables.
13196
13197         * mono/metadata/metadata.h: Finish listing the different index
13198         types. 
13199
13200         * mono/metadata/pedump.c: Improve to dump new information.
13201
13202 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13203
13204         * mono/metadata/metadata.c: Entered all the tables matching
13205         Beta2. 
13206
13207         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13208