2004-12-20 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * appdomain.c: Bump corlib version.
4         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
5         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
6         * reflection.c|h: Add functions to get declarative security infos
7         (blob position and length) for assemblies, classes and methods.
8
9 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
10
11         * reflection.c: sort the constant table (bug #70693).
12
13 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
14
15         * object-internals.h, threads.c, domain.c: add accessors for
16         the MonoThread and MonoDomain tls keys.
17
18 2004-12-18  Martin Baulig  <martin@ximian.com>
19
20         * class.c (inflate_generic_type): If we're inflating a generic
21         instance, set `ngclass->context->container = context->container';
22         ie. the container we inflated into.
23
24         * metadata.c (mono_metadata_parse_generic_param): Reflect above
25         inflate_generic_type() changes.
26
27 2004-12-17  Martin Baulig  <martin@ximian.com>
28
29         * class-internals.h
30         (MonoGenericClass): Replaced `MonoType *generic_type' with
31         `MonoClass *generic_class'.  Removed `dynamic_info'; if
32         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
33         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
34
35 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
36
37         * exception.c (mono_exception_from_token): New helper function.
38
39 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
40
41         * assembly.c (mono_assembly_load_with_partial_name): Call 
42         mono_assembly_loaded before invoking the preload hooks. Fixes
43         #70564.
44
45         * object-internals.h (MonoThread): Change culture_info and 
46         ui_culture_info into an array.
47
48         * threads.c: Cache culture info objects from more than one appdomain.
49
50         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
51         current UI culture.
52
53 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
54
55         * threads.h threads.c appdomain.c: Clear the culture_info field of
56         all threads during unloading if they point to an object in the dying
57         appdomain.
58
59 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
60
61         * culture-info.h (TextInfoEntry): New struct
62         * object-internals.h: sync with managed
63         * locales.c: fill the `text_info_data' field
64         * culture-info-tables.h: update
65
66 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
67
68         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
69         collector.
70
71 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
72
73         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
74         (ves_icall_ModuleBuilder_getMethodToken): Ditto
75
76 2004-12-12  Martin Baulig  <martin@ximian.com>
77
78         * mono-debug-debugger.c (write_type): If we're an enum and the
79         builtin types have already been initialized, call mono_class_init().
80
81 2004-12-11  Martin Baulig  <martin@ximian.com>
82
83         * metadata.c (mono_metadata_load_generic_params): Added
84         `MonoGenericContainer *parent_container' argument; automatically
85         compute `container->is_method'; pass the correct owner to
86         get_constraints().      
87
88         * reflection.c (compare_genericparam): Sort the GenericParam table
89         according to increasing owners. 
90
91 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
92
93         * profiler.c: allow disabling the default profiler.
94
95 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
96
97         * decimal.c, icall.c: allow disabling System.Decimal support.
98
99 2004-12-09  Marek Safar <marek.safar@seznam.cz>
100
101         * reflection.c: Add support for null attribute arguments.
102
103 2004-12-09  Martin Baulig  <martin@ximian.com>
104
105         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
106         names to get rid of compiler warnings.
107
108 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
109
110         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
111         mono_marshal_load_type_info (). Fixes #69625.
112         (mono_marshal_get_ptr_to_struct): Likewise.
113
114 2004-12-08  Martin Baulig  <martin@ximian.com>
115
116         * mono-debug.h: Bumped version number to 47.
117
118         * mono-debug-debugger.c
119         (mono_debugger_event_handler, mono_debugger_event): Take two
120         guint64 arguments insteed of a gpointer and a guint32.  
121
122 2004-12-08  Martin Baulig  <martin@ximian.com>
123
124         * debug-mono-symfile.h
125         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
126         `address' to `native_offset'.
127
128 2004-12-08  Martin Baulig  <martin@ximian.com>
129
130         * class.c (mono_class_create_from_typespec): Only inflate if we
131         either have `context->gclass' or `context->gmethod'.
132
133 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
134
135         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
136
137         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
138
139         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
140
141         * reflection.c (mono_assembly_get_object): Remove the workaround put
142         in for the release.
143         
144         * appdomain.c: Use the corlib_internal field from MonoAssembly.
145
146         * appdomain.c: Bump corlib version.
147
148         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
149         be visible in other appdomains.
150
151 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
152
153         * threads.c: Interlocked inc and dec for longs were messed up,
154         use a KISS based impl for this. Fixes 70234
155
156 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
157
158         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
159
160 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
161
162         * icall.c: fix to follow policy not to allow struct
163         arguments in icalls.
164
165 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
166
167         * process.c: make the patch that handles spaces in file paths work
168         on mono/windows too.
169
170 2004-12-06  Martin Baulig  <martin@ximian.com>
171
172         * class.c (mono_class_create_generic): Call
173         mono_class_setup_supertypes() if we're dynamic.
174         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
175
176 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
177
178         * object-internals.h: Add new fields to MonoThread.
179
180         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
181
182         * icall.c threads-types.h threads.c: Add new icalls.
183
184         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
185
186         * object-internals.h (MonoReflectionAssembly): Sync object layout with
187         managed side.
188
189         * appdomain.c: Bump corlib version.
190
191         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
192         internal assemblies. Fixes #69181.
193
194 2004-12-05  Martin Baulig  <martin@ximian.com>
195
196         * class.c (mono_class_inflate_generic_signature): Make this a
197         no-op if `context' is NULL or we don't have any type parameters;
198         also copy `sentinelpos'.        
199
200 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
201
202         * image.c: Add unbox_wrapper_cache.
203
204         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
205
206         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
207         function generator.
208         
209         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
210         Fixes #70173.
211
212         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
213         
214 2004-12-04  Martin Baulig  <martin@ximian.com>
215
216         * loader.c (mono_method_get_signature_full): New public function;
217         like mono_method_get_signature(), but with an additional
218         `MonoGenericContext *' argument.
219
220         * class.c (mono_class_inflate_generic_signature): Formerly known
221         as inflate_generic_signature(); make this public.
222
223 2004-12-04  Martin Baulig  <martin@ximian.com>
224
225         * metadata.c
226         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
227         instead of a `MonoGenericContainer *'.  
228         (mono_metadata_parse_array_full): Likewise.
229         (mono_metadata_parse_signature_full): Likewise.
230         (mono_metadata_parse_method_signature_full): Likewise.
231         (mono_metadata_parse_generic_inst): Likewise.
232         (mono_metadata_parse_generic_param): Likewise.
233         (mono_metadata_parse_mh_full): Likewise.
234         (mono_type_create_from_typespec_full): Likewise.
235
236 2004-12-03  Martin Baulig  <martin@ximian.com>
237
238         * class-internals.h (MonoGenericContainer): Replaced the
239         `MonoGenericContext * pointer with a `MonoGenericContext'
240         structure and made it the first element.
241
242 2004-12-03  Martin Baulig  <martin@ximian.com>
243
244         * class.c
245         (inflate_generic_type): Set the `context->container' when creating
246         a new MonoGenericContext.
247         (mono_class_inflate_generic_method): Likewise.
248         (mono_class_create_from_typespec): Just use `context->container'
249         to get the container.
250
251         * loader.c (method_from_methodspec): Set `context->parent' from
252         `context->container' - and if that's a method container, use its
253         parent.  Also set the `context->container' when creating a new
254         MonoGenericContext.
255         (mono_get_method_from_token): Use just `context->container' to get
256         the container.
257
258         * metadata.c (do_mono_metadata_parse_generic_class): Also set
259         `gclass->context->container'.
260
261         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
262         the `context->container' when creating a new MonoGenericContext.
263
264 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
265
266         * reflection.c (compare_genericparam): Sort params with identical
267         owner by their number. Fixes gen-111 on sparc.
268
269 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
270
271         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
272         around the domain changes.
273
274         * appdomain.c (mono_domain_unload): Handle the case when the thread
275         calling Unload is itself being aborted during unloading. Fixes #70022.
276
277         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
278
279         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
280         checkpoint_func as an icall so it gets a wrapper.
281         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
282         in the cross-appdomain wrappers too.
283
284         * threads.c (mono_thread_has_appdomain_ref): Make this public.
285
286         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
287
288         * reflection.c: Fix some memory leaks.
289         
290 2004-12-02  Martin Baulig  <martin@ximian.com>
291
292         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
293
294         * metadata.c (generic_class_cache): New static hashtable.
295         (mono_metadata_lookup_generic_class): New public method.
296
297 2004-12-02  Martin Baulig  <martin@ximian.com>
298
299         * class.c (mono_class_create_from_typedef): Call
300         mono_class_setup_parent() and mono_class_create_mono_type() before
301         parsing the interfaces.
302
303 2004-12-02  Martin Baulig  <martin@ximian.com>
304
305         * metadata.c (generic_inst_cache): New static hashtable.
306         (mono_metadata_lookup_generic_inst): New public function.
307         (mono_metadata_inflate_generic_inst): New public function.
308         (mono_metadata_parse_generic_inst): New public function.
309         (do_mono_metadata_parse_generic_class): Use the new
310         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
311         since this'll also use the cache.
312
313         * reflection.c (mono_reflection_bind_generic_method_parameters):
314         Use mono_metadata_lookup_generic_inst() to use the new cache.
315
316         * class.c (inflate_mono_type): Use
317         mono_metadata_inflate_generic_inst() to inflate a generic
318         instance; this'll also use the new cache.
319
320         * loader.c (method_from_methodspec): Use
321         mono_metadata_parse_generic_inst() and
322         mono_metadata_inflate_generic_inst() rather than parsing it
323         manually, so we can use the new cache.
324
325 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
326
327         * threads.c (wait_for_tids): Do not incorrectly free threads when 
328         the wait times out.
329
330 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
331
332         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
333         iter->args based on whether parameters are passed in registers (i.e.
334         MONO_ARCH_REGPARMS is defined)
335
336 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
337
338         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
339         the exception message. Fixes #70070.
340         (method_from_methodspec): Fix warnings.
341
342 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
343
344         * process.c: (complete_path) return the path quoted
345
346 2004-12-01  Martin Baulig  <martin@ximian.com>
347
348         * class-internals.h (MonoGenericInst): New structure.
349         (MonoGenericClass): Replaced `type_argc', `type_argv' and
350         `is_open' with `MonoGenericInst *inst'.
351         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
352         `is_open' with `MonoGenericInst *inst'.
353
354 2004-11-30  Martin Baulig  <martin@ximian.com>
355
356         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
357
358         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
359         to `generic_class_cache'.
360
361         * metadata.c
362         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
363         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
364         (mono_generic_inst_is_valuetype): Renamed to
365         mono_generic_class_is_valuetype().
366
367         * class-internals.h
368         (MonoGenericInst): Renamed to MonoGenericClass.
369         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
370         (MonoClass): Renamed `generic_inst' to `generic_class'.
371         (MonoGenericContext): Renamed `ginst' to `gclass'.
372
373         * object-internals.h
374         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
375
376         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
377         mono_reflection_generic_class_initialize().
378
379         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
380         now known as "System.Reflection.MonoGenericClass".
381         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
382
383 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
384
385         * class-internals.h: Added a flag field to MonoClass to cache the
386         declarative security attributes actions associated with the class.
387         * domain-internals.h: Added booleans to MonoJitInfo to cache the
388         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
389         applicable to the JITted method.
390         * reflection.c|h: Added functions to extract (as flags) which security
391         actions are available (declaratively) for a method, class or assembly.
392         * metadata.c|h: Added functions to search the declarative security
393         table in the metadata.
394         
395 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
396
397         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
398         EXPORTEDTYPES are already in the class name cache, so there is no
399         need to add extra code here to look at them. Just removes a bit of
400         cruft.
401
402         (ves_icall_System_Environment_get_TickCount): No need for #if
403         WINDOWS. We already have the code in io-layer.
404
405 2004-11-28  Martin Baulig  <martin@ximian.com>
406
407         * loader.c
408         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
409         Fixes gen-112.cs.
410
411 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
412
413         * assembly.c (do_mono_assembly_open): Instead of having a
414         conditional WITH_BUNDLE, incorporate support for bundles here, by
415         having a global `bundles' variable holding a pointer to the actual
416         bundles. 
417
418         (mono_register_bundled_assemblies): New API call used by the
419         bundle code. 
420
421         See mkbundle.1 for details.
422         
423 2004-11-27  Martin Baulig  <martin@ximian.com>
424
425         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
426         the vtable for generic methods.
427
428 2004-11-26  Martin Baulig  <martin@ximian.com>
429
430         * metadata.c
431         (mono_metadata_generic_method_hash): New public function.
432         (mono_metadata_generic_method_equal): Likewise.
433
434         * class-internals.h
435         (MonoGenericContainer): Added `GHashTable *method_hash'.
436
437         * reflection.c (ReflectionMethodBuilder): Added
438         `MonoGenericContainer *generic_container'.
439         (reflection_methodbuilder_to_mono_method): Don't create a new
440         MonoGenericContainer each time we're called.
441         (mono_reflection_bind_generic_method_parameters): Use
442         `container->method_hash' to cache the results so we don't create a
443         different method if we're called several times with the same
444         arguments.
445
446         * loader.c (method_from_methodspec): Use the new
447         `container->method_hash' here, too.
448
449 2004-11-26  Martin Baulig  <martin@ximian.com>
450
451         * class.c (inflate_generic_signature): Correctly compute
452         `res->has_type_parameters'.
453         (mono_class_vtable): Use the `has_type_parameters' flag to
454         determine whether we're a generic method.
455
456         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
457
458 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
459
460         * object.c (mono_runtime_run_main): Fix a small memory leak.
461
462 2004-11-25  Martin Baulig  <martin@ximian.com>
463
464         * class.c (set_generic_param_owner): Fixed the loop.
465
466 2004-11-25  Martin Baulig  <martin@ximian.com>
467
468         * object.c (mono_class_vtable): Don't create any JIT wrappers for
469         generic methods.
470
471 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
472
473         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
474         names. Fixes #69787.
475
476 2004-11-24  Martin Baulig  <martin@ximian.com>
477
478         * class.c (mono_class_create_generic_2): If we don't have a
479         `ginst->parent', inflate `gklass->parent' to get our parent.
480
481 2004-11-24  Martin Baulig  <martin@ximian.com>
482
483         * reflection.c (compare_genericparam): Correctly sort the
484         GenericParam table; fixes #69779.
485
486 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
487
488         * reflection.c: When writing a PE file, don't create a huge
489         buffer in memory. Just write the arrays we have to the file.
490         This reduces memory usage.
491
492         * metadata-internals.h: MonoDynamicStream pefile is no longer used
493         globally.
494
495 2004-11-17  Martin Baulig  <martin@ximian.com>
496
497         * class.c (mono_class_init): Don't setup `class->parent' for
498         dynamic instances; moved this to mono_class_generic_2().
499         (mono_class_create_generic): Also set `klass->inited' for dynamic
500         generic instances.
501         (mono_class_create_generic_2): Don't do anything for dynamic
502         generic instances.  Set `klass->parent' here and also call
503         mono_class_setup_parent() here. 
504
505         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
506         `MonoType *parent' argument; set `ginst->parent' before calling
507         mono_class_create_generic_2(), so we set the correct parent.
508
509 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
510
511         * reflection.c: allow getting attributes from ModuleBuilder
512         (used by ikvm).
513
514 2004-11-17  Martin Baulig  <martin@ximian.com>
515
516         * class.c (mono_class_create_from_typedef): If a type parameter is
517         inherited from an outer class, set its owner to that class.
518
519 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
520
521         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
522           for (int*) written size. This fixes bug #69592.
523
524 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
525
526         * icall.c: Added IsAuthenticodePresnet internal call.
527         * image.c|h: New function that check a MonoImage for an Authenticode
528         signature in the certificate PE data directory.
529         * security.c|h: New internal call to ask the runtime if an 
530         Authenticode signature seems referenced in the PE header.
531
532 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
533
534         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
535
536         * reflection.c (mono_image_create_pefile): Free the assembly streams
537         after writing out the assembly file.
538
539         * object.c (mono_runtime_run_main): Fix small memory leak.
540
541         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
542         property access modifiers. Fixes #69389.
543
544 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
545
546         * domain.c, object.c, object-internals.h, domain-internals.h,
547         object.h, marshal.c: keep dynamic code info per domain.
548
549 2004-11-15  Martin Baulig  <martin@ximian.com>
550
551         * class.c (mono_type_get_name_recurse): Put type arguments in
552         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
553         see bug #68387.
554
555 2004-11-15  Martin Baulig  <martin@ximian.com>
556
557         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
558         (mono_class_setup_vtable): When computing `the_cname' for a
559         generic instance, don't include the namespace since we'd otherwise
560         add it twice.
561
562 2004-11-15  Martin Baulig  <martin@ximian.com>
563
564         * class.c (mono_class_create_generic): Changed return type to void.
565         (mono_class_create_generic_2): New public function; setup
566         `class->method', `class->field' and `class->interfaces' here
567         instead of in mono_class_init().
568
569         * class.h (mono_class_create_generic): Moved to class-internals.h.
570
571 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
572
573         * reflection.c (mono_image_create_pefile): take a file HANDLE.
574         rather than writing to memory, write to this file. Right now,
575         we are just writting into a buffer, and copying that. However
576         we can avoid the buffer later.
577
578         (mono_dynamic_stream_reset): new function
579
580         * icall.c, object-internals.h: update for the above.
581
582 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
583
584         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
585         have been using gc'd memory. First it is slower, unlikely
586         the comment in the source code said, secondly, it increases
587         our footprint to do it in the gc.
588
589         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
590         the method so that it does not have to copy to managed code.
591
592 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
593
594         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
595
596 2004-11-12  Martin Baulig  <martin@localhost>
597
598         * reflection.c (mono_image_create_token): Allow generic method
599         definitions here, since they may appear in an `.override'; see
600         gen-98/gen-99 for an example.
601
602 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
603
604         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
605         #69365.
606
607         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
608         descriptive.
609
610 2004-11-11  Martin Baulig  <martin@ximian.com>
611
612         * class.c (mono_class_setup_vtable): In an explicit interface
613         implementation, the method name now includes the arity.
614
615 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
616
617         * object.c (mono_array_full_copy): Fix warning.
618
619 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
620
621         * appdomain.c: Removed look_for_method_by_name(). Use the new method
622         mono_class_get_method_from_name() instead.
623         
624         * class-internals.h: Added two new types of wrappers. 
625         Added MonoRemotingTarget enum. Added new trampoline function type, which
626         takes an additional MonoRemotingTarget value as parameter, so it is
627         possible to request a trampoline for a specific target.
628         
629         * class.c: Added new mono_class_get_method_from_name() method.
630         
631         * class.h: In MonoRemoteClass, we can have now to vtables, one for
632         general remoting sinks and one specific for cross domain calls.
633         
634         * debug-helpers.c: Added new wrapper names.
635         
636         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
637         of a remote class.
638         
639         * image.c: Porperly delete value objects form the remoting invoke hashtable.
640         
641         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
642         with several other methods (mono_marshal_get_xappdomain_dispatch,
643         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
644         and others) can generate a fast remoting wrapper for cross domain calls.
645         More information can be found in docs/remoting.
646         Other changes: Removed mono_find_method_by_name, and used
647         mono_class_get_method_from_name instead.
648         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
649         is stored in the remoting invoke hashtable.
650         
651         * marshal.h: published the new method for getting the xdomain wrapper,
652         and also added a method for getting the adequate wrapper for a given
653         method and target.
654         
655         * object-internals.h, object.c: Added a couple of methods for capying and
656         cloning arrays.
657         Modified mono_install_remoting_trampoline, which takes the new remoting
658         trampoline that has a remoting target as parameter.
659         mono_class_proxy_vtable now also takes a remoting target as parameter, and
660         will return the most suitable vtable for the target.
661         Added mono_remote_class_vtable, which returns the vtable of a remote class
662         (which can be the normal remoting vtable or the xdomain vtable).
663         
664         * threads.c: the xdomain invoke and dispatch wrappers must also be
665         protected against interruptions.
666
667 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
668
669         * icall.c: use memmove in BlockCopyInternal when the source and
670         destination arrays are the same.
671
672 2004-11-09  Martin Baulig  <martin@ximian.com>
673
674         * class-internals.h (MonoGenericContainer): Removed `method' and
675         `signature', replaced them with `is_method' and `is_signature'
676         flags.  Added `context'.
677
678         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
679         instead of a `MonoGenericContainer *'.
680
681         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
682         for dynamic type parameters.
683         (mono_metadata_load_generic_params): Setup `container->context'.
684
685         * reflection.c (mono_reflection_setup_generic_class): Setup
686         `tb->generic_container->context'.
687         (do_mono_reflection_bind_generic_parameters): Use
688         mono_class_inflate_generic_type() to correctly inflate types,
689         rather than using our own hack just for MONO_TYPE_VAR.
690
691 2004-11-09  Martin Baulig  <martin@ximian.com>
692
693         * class.c (mono_class_inflate_generic_method): Small fix; don't
694         crash here.
695
696         * icall.c
697         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
698         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
699         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
700         (ves_icall_Type_BindGenericParameters): Likewise.
701         (ves_icall_Type_get_IsGenericInstance): Likewise.
702         (ves_icall_Type_GetGenericParameterPosition): Likewise.
703         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
704         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
705         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
706
707 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
708
709         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
710         assembly versions and public key tokens. Fixes #69113.
711
712 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
713
714         * metadata.c: fix bug introduced with the type cache changes
715         on 2004-11-06.
716
717 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
718
719         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
720         the MonoClass pointer instead of the token in exception clauses.
721         * reflection.c: updates for the above and make the code not depend
722         on the structure of MonoExceptionClause.
723
724 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
725
726         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
727         Add support for dynamic assemblies. Fixes #69114.
728
729         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
730
731 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
732
733         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
734         since most only those methods use it. the code member of
735         MonoMethodPInvoke was dead, so that can be removed too. Also,
736         remove inline_count (again, not used), and move slot so that it
737         can share bits with some other flags. This saves 8 bytes in the
738         structure and gives us about 50 kb back for mcs helloworld.cs
739
740         * *.[ch]: Do naming changes for the above.
741
742         * loader.c (mono_method_get_header): Lazily init the header
743         on first access.
744         (mono_get_method_from_token): don't init the header here
745         (mono_free_method): the header may never be allocated
746
747         Overall, this saves 150 kb of unmanaged allocations
748         for mcs helloworld.cs. That accounts for 10% of the unmanaged
749         memory at runtime.
750         
751         * loader.c, loader.h (mono_method_get_header): new accessor.
752
753         * *.[ch]: use the above method. Prepares us to lazily load
754         the header.
755
756         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
757         three warnings, which are actual bugs (see 69206).
758
759         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
760         unused. Saves a cool 4 bytes / method.
761
762 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
763
764         * metadata.c (builtin_types): Add types for System.Object here.
765         (mono_metadata_parse_type_full): Cache MonoType*'s that are
766         for a class or valuetype from klass->this_arg or klass->byval_arg.
767
768         On mcs for a hello world, this gets us down from 21836 MonoType's
769         to 14560.
770
771         (mono_metadata_free_type): Account for the above change.
772
773 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
774
775         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
776         exception instead of asserting if name is null.
777         (ves_icall_System_AppDomain_GetData): Ditto.
778
779 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
780
781         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
782         EnumBuilder.
783
784         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
785         Return NULL when the domain does not have entry_assembly set.
786
787         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
788         Add a 'resource_modules' argument.
789         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
790
791         * reflection.c (mono_reflection_create_runtime_class): Move setting
792         of wastypebuilder here, so mono_get_type_object () returns a MonoType
793         for enums too.
794
795         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
796         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
797         Throw an ArgumentNullException if 'ptr' is null.
798
799         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
800         assemblies here. Fixes #69020.
801
802 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
803
804         * reflection.c (build_compressed_metadata): Fix the previous patch for
805         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
806         the stack.
807
808 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
809
810         * assembly.c (mono_assembly_names_equal): Allow a match if one of
811         the cultures is false. Fixes #69090.
812
813         * reflection.c (build_compressed_metadata): Fix invalid memory read 
814         detected by valgrind.
815         
816         * reflection.c (mono_reflection_get_type): Avoid triggering a 
817         TypeResolve multiple times for the same type. Fixes #65577.
818
819 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
820
821         * marshal.c: Avoid using ldftn to call managed functions. It is
822         much slower than just a call.
823
824         * reflection.c (mono_module_get_object): free the basename we
825         allocate here from glib.
826         
827         * reflection.c (ensure_runtime_vtable): make sure to free
828         overrides.  Also, we were allocating an array of MonoMethod not an
829         array of MonoMethod*.
830
831         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
832
833         * image.c (mono_image_close): free image->guid here.
834
835 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
836
837         * reflection.c: Fix some spec conformance issues with the PE file
838         structures so mcs compiled apps run on the Net 2.0 beta.
839
840 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
841
842         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
843         Implement this. Fixes #67264.
844
845         * debug-helpers.h debug-helpers.c marshal.c: Move 
846         mono_find_method_by_name to debug-helpers.c.
847
848 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
849
850         * object.c (mono_release_type_locks): type_initialization_hash is
851         a GHashTable.
852
853         * reflection.c object.c object-internals.h: Fix warnings.
854
855         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
856         without accessors. Fixes #61561.
857
858         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
859         application base from the root domain if not set. Fixes #65641.
860         (mono_runtime_init): Fix warning.
861
862 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
863
864         * appdomain.c: call mono_thread_pool_init.
865         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
866         of worker threads based on the number of CPUs and the environment
867         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
868         for non-windows (windows) systems.
869
870 2004-10-27  Chris Toshok  <toshok@ximian.com>
871
872         * mono-debug-debugger.c (write_class): don't call mono_class_init
873         here, as even with the check for (!klass->init_pending), we get
874         into a situation where we're hitting cycles in class
875         initialization.  Fixes #68816.
876
877 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
878
879         * image.c: Avoid overwriting values in the loaded_images_hash when an
880         assembly is loaded multiple times. Fixes #61152.
881
882         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
883         so multiple satellite assemblies for the same name can be loaded.
884         Fixes #68259.
885
886         * mono_domain_assembly_preload: Actually return the loaded assembly, 
887         not NULL.
888
889         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
890         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
891
892         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
893         pending finalizers are not invoked after the appdomain has been 
894         unloaded. Fixes #67862.
895
896 2004-10-22  Martin Baulig  <martin@ximian.com>
897
898         * mono-debug-debugger.c
899         (mono_debugger_runtime_invoke): Don't box valuetypes.
900
901 2004-10-22  Chris Toshok  <toshok@ximian.com>
902
903         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
904         don't hide private methods.
905
906 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
907
908         * icall.c: Allows the runtime to "share" (when known) the public key
909         token of an assembly. This avoid the need to recalculate the token 
910         (from the public key) in managed code.
911
912 2004-10-21  Chris Toshok  <toshok@ximian.com>
913
914         * debug-helpers.c (append_class_name): argh, revert last patch.
915         
916 2004-10-21  Chris Toshok  <toshok@ximian.com>
917
918         * debug-helpers.c (append_class_name): use '+' as the delimiter,
919         not '/', so that it matches what the debugger uses to look up
920         methods.
921
922 2004-10-21  Martin Baulig  <martin@ximian.com>
923
924         * mono-debug-debugger.c (mono_debugger_throw_exception): New
925         public method; this is called each time an exception is thrown and
926         allows the debugger to use exception catch points.
927
928 2004-10-21  Martin Baulig  <martin@ximian.com>
929
930         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
931         the stack pointer and the exception object in some struct and pass
932         that to the debugger.
933
934 2004-10-21  Chris Toshok  <toshok@ximian.com>
935
936         * mono-debug-debugger.c (do_write_class): add instance/static
937         event support.  We don't expose "raise" or "other" yet.
938         (event_is_static): new method.
939
940 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
941
942         * mono-debug-debugger.c
943         (mono_debugger_handle_exception): Remove
944         bogus return value for fussy compilers.
945
946 2004-10-20  Martin Baulig  <martin@ximian.com>
947
948         * mono-debug-debugger.c
949         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
950         (mono_debugger_handled_exception): Likewise.
951
952 2004-10-20  Martin Baulig  <martin@ximian.com>
953
954         * mono-debug-debugger.h (MonoDebuggerEvent): Added
955         MONO_DEBUGGER_EVENT_EXCEPTION.
956
957         * mono-debug-debugger.c (mono_debugger_handle_exception): New
958         public function to send the debugger a notification for an
959         exception and inform it about a catch/finally clause.
960
961 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
962
963         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
964         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
965         fix 2.95 build. 
966
967         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
968
969 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
970
971         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
972         marshalled as [In,Out]. Fixes #58325.
973
974 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
975
976         * reflection.c (mono_method_body_get_object): Implement some fields.
977
978 2004-10-12  Martin Baulig  <martin@ximian.com>
979
980         * reflection.c (mono_reflection_bind_generic_parameters): Small
981         fix, correctly retrieve our parent from a generic instance.
982
983 2004-10-12  Martin Baulig  <martin@ximian.com>
984
985         * metadata.c (mono_metadata_generic_param_equal): We always have
986         an owner.
987
988         * class.c
989         (mono_class_from_generic_parameter): We need to have an owner.
990         (my_mono_class_from_generic_parameter): Likewise.
991
992         * reflection.c (mono_reflection_setup_generic_class): Renamed to
993         mono_reflection_create_generic_class() and added a new
994         mono_reflection_setup_generic_class().  
995         (mono_reflection_initialize_generic_param): If we're a nested
996         generic type and inherited from the containing class, set our
997         owner to the outer class.
998
999 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1000
1001         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1002
1003         * reflection.c (mono_method_body_get_object): New function to create
1004         a MethodBody object.
1005
1006         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1007
1008 2004-10-11  Martin Baulig  <martin@ximian.com>
1009
1010         * metadata.c (_mono_metadata_type_equal): Renamed to
1011         do_mono_metadata_type_equal() and made static.
1012
1013 2004-10-11  Martin Baulig  <martin@ximian.com>
1014
1015         * appdomain.c: Bump corlib version number to 28.
1016
1017 2004-10-10  Martin Baulig  <martin@ximian.com>
1018
1019         * class-internals.h
1020         (MonoGenericInst): Added `MonoGenericContainer *container'.
1021         (MonoGenericMethod): Likewise.
1022         (MonoGenericContext): Likewise.
1023         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1024
1025         * metadata.c
1026         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1027         (do_mono_metadata_parse_generic_inst): Likewise.
1028         (mono_metadata_parse_type_full): New public method.  This is the actual
1029         mono_metadata_parse_type() implementation - with an additional
1030         `MonoGenericContainer *' argument.
1031         (mono_metadata_parse_array_full): Likewise.
1032         (mono_metadata_parse_signature_full): Likewise.
1033         (mono_metadata_parse_method_signature_full): Likewise.
1034         (mono_metadata_parse_mh_full): Likewise.
1035         (mono_type_create_from_typespec): Likewise.
1036         (mono_metadata_interfaces_from_typedef_full): New public method;
1037         this is similar to the other _full() methods, but we take a
1038         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1039         (mono_metadata_parse_generic_param): Take an additional
1040         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1041         from that container.
1042         (mono_metadata_generic_param_equal): New static method to compare
1043         two type parameters.
1044         (_mono_metadata_type_equal): New static method; takes an
1045         additional `gboolean signature_only' argument - if true, we don't
1046         compare the owners of generic parameters.
1047         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1048         with a TRUE argument - do a signature-only comparision.
1049
1050         * loader.c: Use the new _full() methods and pass the
1051         MonoGenericContainer to them.
1052
1053         * object-internals.h (MonoReflectionTypeBuilder): Added
1054         `MonoGenericContainer *generic_container' field.
1055         (MonoReflectionMethodBuilder): Likewise.
1056
1057 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1058
1059         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1060         case initial images of dynamic assemblies.
1061
1062         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1063
1064         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1065
1066         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1067         length of event->other array.
1068         (typebuilder_setup_events): Ditto.
1069
1070         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1071         'assembly_by_name' and add an 'assemblies' list.
1072
1073         * assembly.h assembly.c: Add a new search hook for determining whenever
1074         an assembly is already loaded. Use this instead of searching in the
1075         loaded_assemblies list.
1076
1077         * domain.c appdomain.c: Implement the new search hook so loaded 
1078         assemblies are now scoped by appdomain. Fixes #67727.
1079
1080 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1081
1082         * threads.c (mono_thread_attach): Initialize synch_lock field so
1083         mono_thread_detach works again.
1084
1085         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1086         'lib' too. Fixes #63130.
1087
1088 2004-10-06  Jackson Harper  <jackson@ximian.com>
1089
1090         * culture-info-tables.h: regenerated.
1091
1092 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1093
1094         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1095         implemented by other interfaces in the result. Fixes #65764.
1096         
1097         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1098         Handle unloadable modules without crashing.
1099
1100         * image.c (load_modules): Revert the previous patch since modules must
1101         have a fixed index inside the array.
1102         
1103         * image.c (load_modules): Don't include native modules in the modules
1104         array.
1105
1106 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1107
1108         * reflection.h: Add param_defaults field.
1109
1110         * reflection.c: Add support for parameter defaults in dynamic methods.
1111         Fixes #64595.
1112
1113         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1114         an empty string when a type has no namespace. Fixes #64230.
1115
1116 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1117
1118         * tabledefs.h: Added "internal" security actions to support non-CAS
1119         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1120         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1121
1122 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1123
1124         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1125         constructor of abstract class. Fixes #61689.
1126
1127 2004-10-04  Martin Baulig  <martin@ximian.com>
1128
1129         * class-internals.h (MonoGenericContainer): New type.
1130         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1131         `MonoGenericContainer *generic_container'.
1132         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1133         `MonoGenericContainer *generic_container'.
1134
1135         * metadata.c (mono_metadata_load_generic_params): Return a
1136         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1137         removed the `num' argument.
1138
1139 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1140
1141         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1142         for dynamic images.
1143
1144         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1145         machine fields.
1146
1147         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1148
1149         * reflection.c: Save pe_kind and machine values into the generated
1150         image file.
1151
1152         * appdomain.c: Bump corlib version number.
1153
1154         * object-internals.h: Reorganize layout of LocalBuilder.
1155
1156         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1157         New helper function.
1158
1159         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1160         created MonoType for dynamic types. Fixes #66180.
1161
1162 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1163
1164         * threadpool.c: the ares hashtable needs a critical section around it.
1165         this prevents some nasty segfaults
1166
1167 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1168
1169         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1170         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1171         bug 67324).
1172         
1173 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1174
1175         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1176         
1177 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1178
1179         * image.c: Always canonicalize image file names, to avoid loading
1180         the same assembly twice when referenced using a relative path.
1181
1182 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1183
1184         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1185
1186         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1187
1188         * marshal.c: Fix warnings.
1189
1190 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1191
1192         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1193         attempting to marshal the delegate_trampoline as the method_addr.
1194         This patch has a static hashtable of marshalled delegates so that 
1195         we can map delegate_trampoline addresses back to delegates.  This
1196         allows a delegate passed to managed code to be passed back into native
1197         code.  Fixes #67039
1198
1199 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1200
1201         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1202
1203         * reflection.c (method_encode_code): Align method headers properly.
1204         Fixes #66025.
1205
1206 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1207
1208         * marshal.c: In the runtime invoke wrapper, reset the abort
1209         exception if it is cached. This avoids the automatic rethrowal of 
1210         the exception after the catch of the wrapper. Also check for pending
1211         interruptions before calling the managed method. This is done using
1212         the new method emit_thread_force_interrupt_checkpoint, since the
1213         normal checkpoint method is ignored when running the invoke wrapper.
1214         * object.c: If the abort exception is rethrown, set the abort_exc
1215         field of the thread, so it will be rethrown aftere every catch.
1216         * threadpool.c: Only run an interruption checkpoint if what has been
1217         requested is a stop of the thread (aborts will be ignored).
1218         * threads.c: By default, a thread will now never be interrumped while
1219         running the runtime invoke wrapper (this ensures that runtime_invoke
1220         will always return to the caller if an exception pointer is provided).
1221         There is a new special method mono_thread_force_interruption_checkpoint()
1222         to force an interruption checkpoint even if running a protected
1223         wrapper, which is used by the same runtime invoke wrapper to do a check
1224         at a safe point.
1225
1226 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1227
1228         * object.c, object-internals.h: Implemented mono_release_type_locks,
1229         which releases the cctor locks held by a thread.
1230         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1231         by a thread. Added mono_thread_exit() method to be used to safely stop
1232         a thread.
1233
1234 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1235
1236         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1237         Move null check before dereference.  Avoid indexing beyond the end
1238         of the 'modules' array.
1239
1240 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1241
1242         * metadata-internals.h (MonoImage): Add module_count field.
1243         * image.c (load_modules): Set image->module_count.
1244         (mono_image_load_file_for_image): Use image->module_count.
1245         * reflection.c (mono_image_load_module): Append to image->modules array 
1246         of dynamic assembly.
1247         (mono_module_get_object): Fix loop to actually increment index.
1248         Use image->module_count.
1249         * assembly.c (mono_assembly_load_references): Use image->module_count.
1250         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1251         Likewise.
1252
1253 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1254
1255         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1256         Avoid assert on generic types.
1257
1258 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1259
1260         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1261
1262         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1263
1264         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1265         function to convert a MarshalSpec structure to its managed counterpart.
1266
1267         * reflection.c: Fix warnings.
1268         
1269         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1270         field.
1271
1272         * icall.c (mono_create_icall_signature): Fix build.
1273
1274 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1275
1276         * icall.c: Add MakePointType icall.
1277
1278         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1279         warnings.
1280
1281 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1282
1283         * threadpool.c: reuse allocated slots in the queue.
1284
1285 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1286
1287         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1288
1289         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1290
1291         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1292         previous change.
1293
1294         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1295         ThrowOnUnmappableChar.
1296
1297         * icall.c (ves_icall_Type_GetPacking): New icall.
1298
1299 2004-09-24  Martin Baulig  <martin@ximian.com>
1300
1301         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1302
1303 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1304
1305         * appdomain.c:
1306         (mono_domain_set): allow setting a domain that is being unloaded.
1307         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1308         being unloaded.
1309
1310 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1311
1312         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1313         the GetCustomAttributes icall.
1314
1315 2004-09-23  Martin Baulig  <martin@ximian.com>
1316
1317         * object-internals.h (MonoReflectionGenericParam): Replaced
1318         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1319         with `guint32 attrs'.
1320
1321 2004-09-23  Martin Baulig  <martin@ximian.com>
1322
1323         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1324
1325 2004-09-23  Martin Baulig  <martin@ximian.com>
1326
1327         * object-internals.h (GenericParameterAttributes): New enum.
1328
1329 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1330
1331         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1332         
1333         * class.c (init_events): Fill out event->other field.
1334
1335         * class.c: Fix warnings.
1336
1337         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1338
1339 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1340
1341         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1342         walk which doesn't supply the IL offset.
1343
1344 2004-09-22  Martin Baulig  <martin@ximian.com>
1345
1346         * reflection.c (mono_reflection_setup_internal_class): If we're
1347         System.ValueType, System.Object or System.Enum, set
1348         `klass->instance_size' and create the vtable.
1349         (mono_reflection_create_internal_class): If we're an enum type,
1350         get the base class from our current corlib.
1351
1352 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1353
1354         * reflection.h (MonoResolveTokenError): New type.
1355
1356         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1357         icall.
1358
1359         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1360
1361 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1362
1363         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1364         Support also calling constructors, but only for already allocated objects.
1365
1366 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1367
1368         * reflection.c (type_get_qualified_name): If the klass is null
1369         return the typename to avoid a NullRefEx.
1370         (encode_cattr_value): Get the qualified name of the boxed type,
1371         not the underlying enumtype.  Fixes #62984.
1372
1373 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1374
1375         * marshal.c: Fix problems with previous checkin.
1376
1377 2004-09-21    <vargaz@freemail.hu>
1378
1379         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1380         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1381
1382         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1383
1384 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1385
1386         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1387         should only return a type for pointers, arrays, and passbyref types.
1388         Fixes bug #63841.
1389
1390 2004-09-21  Martin Baulig  <martin@ximian.com>
1391
1392         * domain.c (mono_debugger_check_runtime_version): New public
1393         function.
1394
1395         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1396
1397 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1398
1399         * reflection.c: Added missing sort to the declarative security 
1400         attributes table. MS implementation stops seeing the attributes if the
1401         token number regress in the table (as shown by ildasm and permview).
1402
1403 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1404
1405         * object-internals.h (MonoReflectionModule): Add 'token' field.
1406         
1407         * reflection.c (mono_reflection_get_token): Add support for Module
1408         and Assembly.
1409         (mono_module_get_object): Set 'token' field.
1410         (mono_module_file_get_object): Set 'token' field.
1411
1412         * icall.c: Add new Assembly and Module icalls.
1413
1414         * appdomain.c: Bump corlib version.
1415
1416 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1417
1418         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1419         tokens of metadata objects.
1420
1421         * reflection.h reflection.c (mono_reflection_get_token): New function
1422         to obtain the token of a metadata object.
1423
1424         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1425
1426 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1427
1428         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1429         
1430         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1431
1432 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1433
1434         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1435         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1436         AssemblyBuilder to access the permissions set in the class lib.
1437         * reflection.c: Added security attributes encoding step in 
1438         mono_image_build_metadata.
1439         * tabledefs.h: Added new security actions defined in 2.0:
1440         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1441
1442 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1443
1444         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1445         macro parameter.
1446
1447 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1448  
1449         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1450           finalized. There where random SIGSEVs at program termination, when
1451           an object being finalized was trying to do a string comparison and
1452           the current culture was already finalized.
1453  
1454 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1455
1456         * threads.c: call thread_cleanup before finishing the thread if we get
1457         there.
1458
1459 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1460
1461         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1462         assemblies from the parent. Fixes #65665.
1463
1464 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1465
1466         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1467         modifiers.
1468
1469 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1470
1471         * reflection.h: add prototype for mono_get_dbnull_object
1472         * reflection.c: add prototypes for get_default_param_value_blobs 
1473         and mono_get_object_from_blob for fussier compilers
1474
1475 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1476  
1477         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1478         false deadlock checks in class initialization.
1479  
1480 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1481
1482         * image.c (mono_image_addref): Fix comment.
1483
1484         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1485         possible.
1486
1487 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1488
1489         * reflection.c (mono_param_get_objects): Modified to return
1490         ParameterInfo.DefaultValue object.
1491
1492         (get_default_param_value_blobs):
1493         (mono_get_object_from_blob):
1494         (mono_get_dbnull_object): New helper routines. 
1495
1496         * object.c (mono_get_constant_value_from_blob): New helper routine
1497         carved out from get_default_field_value ()
1498
1499         * object-internals.h (mono_get_constant_value_from_blob): Added
1500         function declaration.
1501
1502 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1503
1504         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1505         referenced assemblies. Fixes #62135.
1506
1507         * exception.h exception.c (mono_get_exception_file_not_found2): New
1508         helper function.
1509
1510 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1511
1512         * class.h class.c: Add mono_type_get_underlying_type ().
1513
1514 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1515
1516         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1517         Fix GetTypes() to support dynamically created assemblies.
1518
1519 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1520
1521         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1522         
1523         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1524         previous patch.
1525
1526         * reflection.h reflection.c loader.c: Allow dynamic construction of
1527         pinvoke methods. Fixes #65571.
1528         
1529         * reflection.c (mono_reflection_get_type): Revert previous change since
1530         it causes regressions.
1531
1532 2004-09-08  Martin Baulig  <martin@ximian.com>
1533
1534         * class.c (class_compute_field_layout): Don't call
1535         mono_class_layout_fields() for open generic instances.
1536
1537 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1538         * threads.c appdomain.c: fix typo in GC macro
1539
1540 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1541
1542         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1543         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1544
1545 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1546
1547         * image.c (mono_image_close): Applied patch from 
1548         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1549         assembly is loaded multiple times from data.
1550         
1551         * image.c (mono_image_open): Fix warning.
1552
1553 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1554
1555         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1556         once. Fixes #58334.
1557         
1558         * reflection.c (mono_reflection_create_runtime_class): Initialize
1559         klass->nested_classes. Fixes #61224.
1560
1561 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1562
1563         * threads.c: sched_yield() on exit, to allow threads to quit.
1564
1565 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1566
1567         * object.c (mono_unhandled_exception): Remove leftover debug code.
1568
1569 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1570
1571         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1572
1573 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
1574
1575         * marshal.c (emit_marshal_array): Really null terminate string arrays.
1576         
1577         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1578
1579 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1580
1581         * marshal.c (emit_marshal_array): Null terminate string arrays.
1582         
1583         * marshal.c (raise_auto_layout_exception): Fix warning.
1584
1585         * reflection.c (mono_param_get_objects): Initialize the default value
1586         with DBNull.Value, not null. Fixes #62123.
1587
1588 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
1589
1590         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1591         throw an exception with a cute explanation.
1592
1593 2004-09-06  Dick Porter  <dick@ximian.com>
1594
1595         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1596         Close the new process's thread handle, as we don't use it.  The
1597         handle stays around forever otherwise.
1598
1599 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1600
1601         * object.c (arith_overflow): Fix warning.
1602
1603         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1604         calling conventions in method refs. Fixes #65352.
1605
1606         * reflection.c: Fix warnings.
1607
1608 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1609
1610         * icall.c: Add a new icall for Array.Clear
1611
1612 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1613
1614         * object.c: When allocating an array, we have to throw
1615         an overflow exception if any of the lengths are < 0.
1616
1617 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
1618
1619         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1620         properly. Also move implementation of string array marshalling to 
1621         managed code. Fixes #42316.
1622
1623 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1624
1625         * assembly.c: provide more information when loading an assembly fails.
1626
1627 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1628
1629         * filewatcher.c: don't expect the development fam package to be
1630         installed.
1631
1632 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
1633
1634         * marshal.c: Make a copy of the signature cookie since it will be
1635         freed by the caller.
1636         
1637         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1638
1639         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1640
1641         * metadata.c (mono_metadata_free_marshal_spec): New function to free
1642         marshal specs.
1643
1644         * marshal.c: More refactoring.
1645         
1646         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1647         smaller functions.
1648
1649 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1650
1651         * object.c: In mono_message_invoke, fill the output parameter array after
1652           calling the managed method (it was done before the call). This fixes
1653           bug #59299.
1654
1655 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1656
1657         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1658         as well.
1659
1660 2004-09-02  Martin Baulig  <martin@ximian.com>
1661
1662         * class.c (mono_class_instance_size): Don't allow generic type
1663         definitions or open generic instances.
1664         (mono_class_array_element_size): If we're a value type, call
1665         mono_class_instance_size() on the original class.
1666
1667         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1668         handle generic instances.
1669
1670         * mono-debug-debugger.c (write_type): Handle generic instances
1671         like classes.
1672
1673 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
1674
1675         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
1676         the allocation request fails. Fixes #65089.
1677
1678         * object.c (mono_runtime_free_method): Do not call mono_free_method.
1679         
1680         * object.c (mono_runtime_free_method): New function to free a dynamic
1681         method.
1682
1683         * marshal.c (mono_delegate_free_ftnptr): New function to free the
1684         delegate trampoline.
1685
1686         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
1687         with hasthis as dynamic,
1688
1689         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
1690
1691         * domain.c (mono_jit_info_table_remove): New function to remove an
1692         entry from the jit info table.
1693
1694         * class-internals.h (MonoMethod): Add 'dynamic' field.
1695
1696         * loader.c: Fix warnings.
1697
1698 2004-09-01  Martin Baulig  <martin@ximian.com>
1699
1700         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
1701         instead of mono_debugger_lock() because the latter one is a no-op
1702         unless running in the debugger.
1703
1704 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1705
1706         * class.c (class_compute_field_layout): Classes with auto-layout or
1707         reference fields are not blittable.
1708         
1709 2004-09-01  Dick Porter  <dick@ximian.com>
1710
1711         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
1712         mono_image_get_filename() to get the assembly location.
1713
1714         * icall.c:
1715         * metadata.h: Fix compile warnings
1716
1717 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
1718
1719         * class.c (class_compute_field_layout): System.Object is blittable.
1720
1721         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
1722         as in/out. Fixes #59909.
1723
1724 2004-09-01  Martin Baulig  <martin@ximian.com>
1725
1726         * metadata.h (MONO_TYPE_ISREFERENCE): Call
1727         mono_metadata_generic_inst_is_valuetype() if we're a generic
1728         instance to check whether our underlying type is a reference type.
1729
1730 2004-09-01  Martin Baulig  <martin@ximian.com>
1731
1732         * metadata.c (mono_type_size): If we're a generic instance, call
1733         mono_class_value_size() for value types.
1734
1735 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
1736
1737         * marshal.c: Implement more custom marshalling functionality. Fixes
1738         #64915.
1739
1740 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1741
1742         * mono-debug.c, debug-mono-symfile.c: add some locking love.
1743
1744 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
1745
1746         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
1747
1748         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
1749
1750         * icall.c: Fix some warnings.
1751
1752         * threads.c (abort_appdomain_thread): Fix unref errors.
1753         (mono_thread_current): Fix THREAD_DEBUG define.
1754
1755 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
1756
1757         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
1758
1759         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
1760
1761 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
1762
1763         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
1764         string arrays.
1765
1766 2004-08-28  Martin Baulig  <martin@ximian.com>
1767
1768         * metadata.c
1769         (mono_metadata_generic_inst_is_valuetype): New public function.
1770
1771         * metadata.h (MONO_TYPE_ISSTRUCT): Call
1772         mono_metadata_generic_inst_is_valuetype() if we're a generic
1773         instance to check whether our underlying type is a valuetype.
1774
1775 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
1776
1777         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
1778         #63768.
1779
1780 2004-08-25  Martin Baulig  <martin@ximian.com>
1781
1782         * loader.c (mono_get_method_from_token): Abstract methods can also
1783         be generic and thus have type parameters.
1784
1785         * metadata-internals.h
1786         (MonoDynamicImage): Added `GPtrArray *gen_params'.
1787
1788         * reflection.c (mono_image_get_generic_param_info): Don't create a
1789         metadata row, just add an entry to the `gen_params' array.
1790         (build_compressed_metadata): Sort the `gen_params' array and then
1791         actually create the metadata.
1792
1793 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1794
1795         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
1796
1797 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
1798
1799         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
1800
1801 2004-08-24  Martin Baulig  <martin@ximian.com>
1802
1803         * class.cs (mono_class_is_subclass_of): Like an interface, a
1804         generic instance also derives from System.Object.
1805
1806 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
1807
1808         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
1809         custom modifiers to be in any order. Fixes #61990.
1810
1811 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
1812
1813         * object.c: Register mono_object_new_fast icall.
1814         
1815         * object.c (mono_class_get_allocation_ftn): Return to calling
1816         mono_object_new_fast, since it seems faster to compute the object 
1817         size in unmanaged code than passing it as a parameter.
1818
1819         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
1820
1821         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
1822         this function with Boehm as the oom handler, so we don't have to check
1823         the result of GC_malloc.
1824
1825         * object.c: Remove checks for oom.
1826
1827         * object.h object.c (mono_class_get_allocation_ftn): New function to
1828         return the icall which can be used to allocate an instance of a given
1829         class. 
1830
1831         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
1832
1833         * class-internals.h: Add 'enabled' field.
1834
1835 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
1836
1837         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
1838
1839 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
1840         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
1841         value 0x0010.
1842
1843 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
1844
1845         * appdomain.c: use the Tls function for appdomain too,
1846         at Zoltan's request. Actually return in mono_context_get
1847
1848         * appdomain.c, profiler.c, threads.c: use __thread
1849
1850 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
1851
1852         * appdomain.c threads.c: Call GC_CreateThread on windows.
1853
1854         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
1855         multiple libraries since this don't work on windows.
1856
1857 2004-08-18  Martin Baulig  <martin@ximian.com>
1858
1859         * class-internals.h
1860         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
1861         MonoMethodHeader.
1862
1863         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
1864         MonoMethodNormal since we also need it for abstract and interface
1865         methods.
1866
1867         * reflection.c
1868         (build_compressed_metadata): Sort the GenericParam table.
1869         (mono_image_create_token): Added `gboolean create_methodspec'
1870         argument; this is false when generating a MethodImpl token.
1871         (reflection_methodbuilder_to_mono_method): Abstract and interface
1872         methods may also have generic parameters.
1873
1874 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
1875
1876         * appdomain.c: thread local alloc
1877
1878 2004-08-17  Martin Baulig  <martin@ximian.com>
1879
1880         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
1881
1882         * icall.c
1883         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
1884         argument.
1885
1886         * class.c (mono_type_get_full_name): New public function.
1887         (mono_type_get_name): Don't include the type arguments.
1888
1889 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
1890
1891         * Makefile.am: Build static versions of libmetadata and libmonoruntime
1892         for inclusion into the mono executable.
1893
1894 2004-08-16  Martin Baulig  <martin@ximian.com>
1895
1896         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
1897         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
1898
1899 2004-08-14  Martin Baulig  <martin@ximian.com>
1900
1901         * class.c (dup_type): Also copy the `byref' field.
1902
1903 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
1904
1905         * reflection.c (create_dynamic_mono_image): Revert the last change 
1906         since it breaks bootstrap.
1907
1908 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
1909
1910         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
1911
1912         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
1913         not free them with g_free.
1914
1915 2004-08-11  Martin Baulig  <martin@ximian.com>
1916
1917         * reflection.c (mono_reflection_setup_internal_class): Also call
1918         mono_class_setup_mono_type() if we already have a `tb->type.type'.
1919
1920 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
1921
1922         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
1923         called during default (first) AppDomain creation. Keep track of
1924         Evidence when loading assemblies.
1925
1926 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
1927
1928         * opcodes.c, opcodes.h: reduce runtime relocations.
1929
1930 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
1931
1932         * culture-info.h, locales.c: fixes and chages to sue the new
1933         optimized format of the locale data.
1934         * culture-info-tables.h: regenerated.
1935
1936 2004-08-06  Geoff Norton <gnorton@customerdna.com>
1937         
1938         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
1939
1940 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
1941
1942         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
1943         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
1944         * domain-internals.h: icall declaration.
1945         * icall.c: icall registration.
1946         * object-internals.h: New fields in MonoAssembly for CAS.
1947
1948 2004-08-05  Duncan Mak  <duncan@ximian.com>
1949
1950         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
1951         CEE_LDELEM_ANY.
1952
1953 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
1954
1955         * reflection.c: fix to deal with object[] arrays in custom ctors
1956         (bug #62550).
1957
1958 2004-08-05  Martin Baulig  <martin@ximian.com>
1959
1960         * class.c (mono_class_array_element_size): Added support for
1961         generic instances and correctly handle "recursive" types.
1962
1963 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
1964
1965         * assembly.c: Fix warnings.
1966
1967 2004-08-04  Martin Baulig  <martin@ximian.com>
1968
1969         * class.c
1970         (mono_type_get_name_recurse): Added `gboolean include_arity'
1971         argument specifying whether or not we should include the generic
1972         arity in the type name.
1973         (_mono_type_get_name): New static function.
1974         (mono_class_setup_vtable): If we're a generic instance, don't
1975         include the generic arity in the names of explicit method
1976         implementations.        
1977
1978 2004-08-03  Martin Baulig  <martin@ximian.com>
1979
1980         * class.c (mono_type_get_name_recurse): Enclose the generic type
1981         arguments in `<', '>'.
1982
1983 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
1984
1985         * gc.c: make GC warning messages use the trace API, they are just
1986         noise to most of the users.
1987
1988 2004-08-03  Martin Baulig  <martin@ximian.com>
1989
1990         * debug-mono-symfile.c (read_string): Correctly read the string.
1991
1992 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
1993
1994         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
1995         
1996         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
1997         icalls.
1998         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
1999
2000 2004-07-30  Martin Baulig  <martin@ximian.com>
2001
2002         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2003         Reflect latest symbol writer changes.   
2004
2005 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2006
2007         * object.c: always create an object if null is passed
2008         to Invoke() where a valuetype is expected.
2009
2010 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2011
2012         * marshal.c (mono_marshal_init): make managed
2013         signatures match native ones better for 64bits.
2014
2015 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2016
2017         * appdomain.c: hack to build correctly the private bin path on windows.
2018         Fixes bug #61991.
2019
2020 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2021
2022         * assembly.c: Load mscorlib from the correct framework directory
2023           (mono/<version>/mscorlib.dll).
2024         * appdomain.h: Added prototypes for new functions.
2025         * internals.h: Added some prototypes.
2026         * domain.c: When initializing the runtime, get from the executable and
2027           the configuration files the runtime version that the app supports.
2028           Added support methods for reading app.exe.config. Added list of versions
2029           supported by the JIT. Added two new methods: mono_init_from_assembly,
2030           which initializes the runtime and determines the required version from
2031           the provided exe file, and mono_init_version, which initializes
2032           the runtime using the provided version.
2033         * icall.c: Get machine.config from version-specific directory.
2034         * reflection.c: When generating an image, embed the version number
2035           of the current runtime.
2036
2037 2004-07-28  Dick Porter  <dick@ximian.com>
2038
2039         * socket-io.c
2040         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2041         returned sockaddr size before creating the remote address object.
2042         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2043         61608.
2044
2045 2004-07-28  Dick Porter  <dick@ximian.com>
2046
2047         * locales.c (string_invariant_compare_char): Fix invariant char
2048         compares between upper and lower cases.  Fixes bug 61458.
2049
2050 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2051         
2052         * marshal.c: actually cache stelem.ref wrappers.
2053         
2054 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2055
2056         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2057         sections and remove the mono_cli_rva_map () function.
2058
2059 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2060
2061         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2062         by Geoff Norton (<gnorton@customerdna.com>).
2063
2064 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2065
2066         * class.c: fix class loads for pointer types (typeof(int) !=
2067         typeof(int*)).
2068
2069 2004-07-27  Martin Baulig  <martin@ximian.com>
2070
2071         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2072         reading the debugging information from an external ".mdb" file.
2073
2074 2004-07-24  Martin Baulig  <martin@ximian.com>
2075
2076         * reflection.c (mono_image_get_type_info): Only write a class
2077         layout entry if we actually have a size or a packing size.
2078
2079 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2080
2081         * reflection.c (type_get_fully_qualified_name): 
2082         insert cast to get type checking of ?: with non-gcc compilers
2083
2084 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2085
2086         * rand.c: use g_getenv for both lookups of
2087         MONO_EGD_SOCKET
2088
2089 2004-07-17  Martin Baulig  <martin@ximian.com>
2090
2091         * reflection.c (mono_reflection_bind_generic_method_parameters):
2092         Set `gmethod->reflection_info'.
2093
2094 2004-07-17  Martin Baulig  <martin@ximian.com>
2095
2096         * class.c (mono_class_create_from_typedef): Insert the newly
2097         created class into the hash table before computing the interfaces
2098         since we could be called recursively.
2099
2100 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2101
2102         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2103         function to implement stelem.ref in managed code
2104         * class-internals.h, debug-helpers.c: a new wrapper type
2105         for the above.
2106
2107 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2108
2109         * gc.c: allow GC handles to work even when no GC is compiled in.
2110         Fix part of bug #61134 (GetAddrOfPinnedObject).
2111
2112 2004-07-13  Peter Williams  <peter@newton.cx>
2113  
2114         * process.c (complete_path): Make sure we don't attempt to execute
2115         directories.
2116  
2117 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2118
2119         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2120           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2121           and will add/subtract the hour if needed
2122
2123 2004-07-12  Martin Baulig  <martin@ximian.com>
2124
2125         * reflection.c (mono_field_get_object): If we have
2126         `field->generic_info', take the attributes from
2127         `field->generic_info->generic_type'.    
2128
2129 2004-07-12  Martin Baulig  <martin@ximian.com>
2130
2131         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2132         This function must be called before initializing the runtime.
2133         (mono_debug_init_1): New function; call this after initializing
2134         the runtime, but before loading the assembly.  It tells the
2135         debugger to load corlib and the builtin types.
2136
2137         * mono-debug-debugger.c: Did some larger changes in the debugging
2138         code; support recursive class declarations, make sure we actually
2139         add all classes.
2140
2141 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2142
2143         * debug-helpers.c: undo my previous patch and fixed the real issue in
2144         ../mini/exceptions-x86.c
2145
2146 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2147
2148         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2149         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2150         called from other .cctors.
2151
2152 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2153
2154         * loader.c: Removed the mono_loader_wine_init hack now that we are
2155         doing a managed version of Windows.Forms.
2156
2157 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2158
2159         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2160         threadpool.c, threads.c: remove static data from rootset.
2161
2162 2004-07-09  Dick Porter  <dick@ximian.com>
2163
2164         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2165         Don't do any more processing if the matched length was 0.  It was
2166         increasing the size of the string before.  Fixes bug 61167.
2167
2168 2004-07-09  Dick Porter  <dick@ximian.com>
2169
2170         * socket-io.h:
2171         * socket-io.c
2172         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2173         Add support for SO_PEERCRED if its available.
2174
2175 2004-07-09  Peter Bartok <pbartok@novell.com>
2176         * loader.c: winelib.exe.so error message is now only displayed if
2177         MONO_DEBUG is set. To help us avoid questions when people are trying
2178         out the new Managed.Windows.Forms.
2179
2180 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2181
2182         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2183         for isinst and castclass wrappers.
2184
2185         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2186         to libmetadata from the JIT, so they could be used by the marshalling
2187         code and the interpreter.
2188
2189         * marshal.c: Register marshalling related JIT icalls here instead of
2190         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2191         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2192
2193         * metadata.h: Remove unneeded marshalling conversions.
2194
2195         * opcodes.c: Update for new opcodes.
2196         
2197 2004-07-08  Martin Baulig  <martin@ximian.com>
2198
2199         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2200         (mono_debug_get_domain_data): Make this function static.
2201
2202 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2203
2204         * gc.c, object.h: add nice GC handle API for embedders.
2205
2206 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2207
2208         * reflection.c: more changes for the new api
2209
2210         * object.c: When we reflect on a field w/ a constant value, it
2211         will not have a memory location, so we must access metadata. Also,
2212         allow easier reading of strings so that we can read them from
2213         the constant data.
2214
2215         * class.c (mono_class_layout_fields): no need for literal fields here.
2216
2217         * class-internals.h: api changes for const fields
2218
2219         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2220
2221 2004-07-06  Martin Baulig  <martin@ximian.com>
2222
2223         * mono-debug.h: Increment version number to 44.
2224
2225         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2226         now a gpointer, rewrote this whole method.
2227
2228         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2229         function.  Add information about the wrapper in a new "misc table".
2230
2231         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2232         for the new misc table.
2233
2234 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2235
2236         * metadata-internals.h image.c: Add a cache for helper signatures.
2237
2238         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2239
2240 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2241
2242         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2243         delegates from a delegate. Fixes #61033.
2244         
2245         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2246         marshalling of stringbuilder arrays. Fixes #59900.
2247
2248 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2249
2250         * icall.c: Add EnumBuilder:setup_enum_type icall.
2251
2252 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2253
2254         * icall.c: Added a new icall for the property version of
2255         OffsetOfStringData.
2256
2257 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2258
2259         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2260         it has a constant size across platforms.
2261
2262         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2263         stack trace.
2264
2265 2004-06-29  Martin Baulig  <martin@ximian.com>
2266
2267         * mono-debug.c (mono_debug_add_method): Protect the whole function
2268         in mono_debugger_lock(), not just parts of it.
2269
2270 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2271
2272         * reflection.c: make sure padding bytes in heaps are zeroed.
2273
2274 2004-06-24  David Waite  <mass@akuma.org>
2275
2276         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2277         image.c, loader.c, locales.c, marshal.c, metadata.c,
2278         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2279         string-icalls.c, threads.c: change to C90-style comments from C99 /
2280         C++ -style
2281
2282 2004-06-24  Dick Porter  <dick@ximian.com>
2283
2284         * threads.c
2285         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2286         return createdNew.  Fixes bug 60412.
2287
2288         * threads-types.h: 
2289         * icall.c: Add createdNew parameter to CreateMutex icall
2290
2291 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2292
2293         * reflection.c, object-internals.h: save default value in params.
2294
2295 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2296
2297         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2298         no need to build a new path combining that with the application base.
2299         Fixes bug #60442.
2300
2301 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2302
2303         * reflection.c: fixed minor standard compliance issues.
2304
2305 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2306
2307         * reflection.c: fixed issue with encoding some custom attributes
2308         (arrays in properties and fields, bug #60411).
2309
2310 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2311
2312         * reflection.c: fix start address when copying the public key token.
2313
2314 2004-06-23  Martin Baulig  <martin@ximian.com>
2315
2316         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2317         the `exc' object in a static object to put it into the GC's root set.
2318
2319 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2320
2321         * reflection.c: make mono_reflection_setup_internal_class ()
2322         callable a second time to setup a new parent class.
2323
2324 2004-06-23  Dick Porter  <dick@ximian.com>
2325
2326         * threads.c: Check for WAIT_IO_COMPLETION return values.
2327
2328 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2329
2330         * appdomain.c: Removed the g_free on the public key token. Now copy 
2331         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2332         * assembly.c: Added public key token string value when loading 
2333         assemblies. Fix bug #60439.
2334         * icall.c: Added missing informations (like public key) in 
2335         GetReferencedAssemblies. Fix #60519.
2336         * image.h: Changed definition for public key token from const char*
2337         public_tok_value to guchar public_key_token [17];
2338         * reflection.c: Updated for changes to public key token.
2339
2340 2004-06-22  Lluis Sanchez Gual
2341
2342         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2343         for the field in base classes.
2344
2345 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2346
2347         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2348         mark headers as not supported, they are installed only for use by the
2349         debugger.
2350
2351 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2352
2353         * *.c, *.h: avoid namespace pollution in public headers.
2354
2355 2004-06-21  Martin Baulig  <martin@ximian.com>
2356
2357         * exception.c (mono_get_exception_security): It's in
2358         "System.Security", not in "System".
2359
2360         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2361         the exception classes.
2362
2363 2004-06-21  Martin Baulig  <martin@ximian.com>
2364
2365         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2366         Protect the exception object from being finalized.
2367
2368 2004-06-21  Martin Baulig  <martin@ximian.com>
2369
2370         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2371         public function.
2372
2373 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2374
2375         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2376         if it was not loaded before. Fix parts of #60439.
2377
2378 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2379
2380         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2381         code that was broken since Ben's change: wrappers are now
2382         dependent on the method signature only again.
2383
2384 2004-06-21  Martin Baulig  <martin@ximian.com>
2385
2386         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2387         added interface support.
2388
2389 2004-06-21  Martin Baulig  <martin@ximian.com>
2390
2391         * class.c (mono_vtable_get_static_field_data): New public method.
2392
2393 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2394
2395         * filewatcher.c : Windows build fix to be compliant with API changes.
2396
2397 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2398
2399         * class.h, class.c: more accessors.
2400         * metadata.h, metadata.c: prepare for hiding MonoType and
2401         MonoMethodSignature: people should use the accessors from now on
2402         outside of the tree.
2403
2404 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2405
2406         * *.c, *.h: more API cleanups.
2407
2408 2004-06-18  Jackson Harper  <jackson@ximian.com>
2409
2410         * assembly.c: Trace loading assemblies.
2411         * loader.c: Trace loading native libraries.
2412         * mono-config.c: Trace loading config files.
2413         
2414 2004-06-18  Dick Porter  <dick@ximian.com>
2415
2416         * locales.c: Tell ICU the lengths of strings, it can cope with
2417         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2418
2419 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2420
2421         * image.c: swapped name/filename;
2422
2423 2004-06-18  Martin Baulig  <martin@ximian.com>
2424
2425         * mono-debug-debugger.c (write_class): Write the parent class at
2426         the end of the header.
2427
2428 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2429
2430         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2431
2432 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2433
2434         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2435         (bundle_obj): New conditional define.
2436         (BUILT_SOURCES): Remove.
2437         ($(bundle_srcs)): Make parallel-make safe.
2438         (libmonoruntime_la_LIBADD): Make unconditional.
2439         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2440         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2441
2442 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2443
2444         * culture-info-tables.h: It was inconsistent with the latest
2445           supp info files.
2446
2447 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2448
2449         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2450         be loaded.
2451
2452         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2453         with gcc 2.95.
2454
2455 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2456
2457         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2458         cleaned up public header threads.h.
2459
2460 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2461
2462         * Makefile.am, *.c, *.h: more API cleanups.
2463
2464 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2465
2466         * Makefile.am: removed monosn from compilation.
2467         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2468         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2469         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2470         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2471         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2472         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2473
2474 2004-06-15  Jackson Harper  <jackson@ximian.com>
2475
2476         * assembly.c: Make locales lower case when searching the GAC for
2477         assemblies. gacutil will always make locales lowercase when
2478         installing so this effectively makes them case insensitive.
2479         
2480 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2481
2482         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2483         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2484           parameter which allows to choose whether the wait can be interrupted or 
2485           not. Also added the method mono_monitor_enter(), which locks the monitor
2486           using an infinite wait and without allowing interruption.
2487           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2488           interrupted.
2489         * object.h: Added new fields in MonoThread. suspend_event holds the event
2490           used to susped/resume the thread. synch_lock is the lock object to use for
2491           modifying the thread state.
2492         * threads.c: Use the new synch_lock object for locking, instead of "this",
2493           which can generate deadlocks.
2494           Moved thread state change in Thread.Sleep and Thread.Join from managed
2495           to unmanaged code. This avoids a deadlock when the thread was suspended
2496           just after acquiring the thread lock.
2497           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2498           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2499           which is not fully implemented in the io-layer.
2500         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2501
2502 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2503
2504         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2505         threads-types.h: more API cleanups.
2506
2507 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2508
2509         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2510         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2511         threadpool.c, threads.c: first pass at the exported API cleanup.
2512
2513 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2514
2515         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2516
2517 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2518
2519         * icall.c: added internalGetHome.
2520
2521 2004-06-14  Dick Porter  <dick@ximian.com>
2522
2523         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2524         possible to return successfully when '.' or '..' were the only
2525         entries in a directory, but were skipped.  The MonoIOStat was not
2526         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2527         Fixes bug 59574.
2528
2529 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2530
2531         * reflection.c: make binaries run on .Net 1.1 by default.
2532
2533 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2534
2535         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2536
2537 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2538
2539         * marshal.c: keep track of struct size with explicit layout
2540         (bug #59979).
2541
2542 2004-06-12  Martin Baulig  <martin@ximian.com>
2543
2544         * mono-debug-debugger.c: Comment out a debugging g_message().
2545
2546 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2547
2548         * reflection.c, reflection.h: do not free custom attrs that are cached.
2549         * icall.c: use braces to make code clearer.
2550
2551 2004-06-11  Martin Baulig  <martin@ximian.com>
2552
2553         * class.h (MonoInflatedField): New type.
2554         (MonoClassField): Replaced `MonoType *generic_type' with
2555         `MonoInflatedField *generic_info'.
2556
2557         * icall.c
2558         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2559
2560 2004-06-11  Martin Baulig  <martin@ximian.com>
2561
2562         * reflection.c (mono_image_create_method_token): Correctly encode
2563         varargs methods.
2564
2565 2004-06-11  Martin Baulig  <martin@ximian.com>
2566
2567         * metadata.c (mono_metadata_parse_method_signature): When parsing
2568         a MethodDef which has VarArgs, also set sentinelpos if we don't
2569         have any parameters.
2570
2571 2004-06-11  Martin Baulig  <martin@ximian.com>
2572
2573         * verify.c (mono_method_verify): In CEE_CALL, use
2574         mono_method_get_signature() to get the method's signature, unless
2575         we're a PInvoke method.
2576
2577 2004-06-10  Jackson Harper  <jackson@ximian.com>
2578
2579         * assembly.c: Use <path>/lib/mono/gac for the extra paths
2580         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2581         logical name as the supplied path is just a prefix to the gac not
2582         the direct path to it.
2583         
2584 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2585
2586         * reflection.c: make the token for a created method match
2587         the token of the MethodBuilder it was created from
2588         (IKVM requires this behaviour now).
2589
2590 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2591
2592         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2593         reflection.c, socket-io.c: leak fixes.
2594
2595 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2596
2597         * icall.c: handle sentinel pos in vararg methods in position different
2598         from 0.
2599
2600 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2601
2602         * culture-info-tables.h: freshly generated.
2603
2604 2004-06-09  Martin Baulig  <martin@ximian.com>
2605
2606         * loader.c (mono_get_method_constrained): Call `mono_class_init
2607         (constrained_class)'.   
2608
2609 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
2610
2611         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2612         any methods. Fixes #59629.
2613
2614 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2615
2616         * culture-info-tables.h: reflecting locale-builder updates.
2617
2618 2004-06-08  Dick Porter  <dick@ximian.com>
2619
2620         * object.h:
2621         * locales.c: Fixed compile warnings, including a real bug in
2622         CompareInfo_internal_compare.
2623         
2624 2004-06-08  Dick Porter  <dick@ximian.com>
2625
2626         * locales.c
2627         (ves_icall_System_Globalization_CompareInfo_internal_index):
2628         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2629         Double-check the resuls of usearches, because ICU currently
2630         ignores most of the collator settings here.  Fixes bug 59720.
2631         
2632 2004-06-08  Dick Porter  <dick@ximian.com>
2633
2634         * locales.c
2635         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2636         Fix memory leak and segfault-causing typo.  No idea how this one
2637         lasted so long without being noticed.
2638
2639 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
2640
2641         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2642         any methods. Fixes #59629.
2643
2644 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2645
2646         * assembly.c:
2647         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2648         own the critical section before). Removed dead code (that's done
2649         in the preload hook).
2650
2651         (mono_assembly_load_with_partial_name): call the preload hook.
2652
2653 2004-06-08  Martin Baulig  <martin@ximian.com>
2654
2655         * metadata.c (mono_metadata_signature_alloc): Default
2656         `sentinelpos' to -1.
2657
2658         * reflection.c (mono_image_get_array_token): Likewise.
2659
2660 2004-06-08  Martin Baulig  <martin@ximian.com>
2661
2662         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2663
2664         * metadata.c (mono_metadata_parse_method_signature): When parsing
2665         a MethodDef which has VarArgs, set sentinelpos.
2666
2667         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2668         `gint16' since we're using -1 for non-varargs methods.
2669
2670         * reflection.c
2671         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
2672         (method_encode_signature): Added varargs support.
2673         (method_builder_encode_signature): Likewise.
2674         (mono_image_get_varargs_method_token): New static method.
2675         (mono_image_create_method_token): New public method; this is
2676         called via an icall instead of mono_image_create_token() when
2677         calling a varargs method.       
2678
2679 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
2680
2681         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
2682
2683 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2684
2685         * culture-info-tables.h : Reflecting the latest locale-builder that
2686           fixed empty array representation ({} to {0}).
2687
2688 2004-06-07  Jackson Harper  <jackson@ximian.com>
2689
2690         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
2691         looking up extra gac paths. This allows MONO_GAC_PATH to act
2692         exactly like a prefix.
2693         
2694 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2695
2696         * reflection.c (mono_reflection_type_from_name): Make a copy of the
2697         type name before modifying it. Fixes #59405.
2698
2699 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
2700
2701         * culture-info.h: added fields for "all datetime patterns".
2702         * locales.c: (  ves_icall_System_Globalization_CultureInfo
2703           _construct_datetime_format ()): fill xxx_patterns fields.
2704         * object.h: added fields for "all datetime patterns" to
2705           MonoDateTimeFormatInfo.
2706         * culture-info-tables.h: reflecting locale-builder updates.
2707
2708 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
2709
2710         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
2711         the event has no add and remove methods. Fixes #59629.
2712
2713 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
2714
2715         * object.c: Fixed possible integer overflow when allocating large
2716         strings.
2717
2718 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2719
2720         * culture-info-tables.h: reflecting locale-builder updates.
2721
2722 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
2723
2724         * culture-info-tables.h: reflecting locale-builder updates.
2725
2726 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
2727
2728         * culture-info-tables.h: reflecting locale-builder updates.
2729
2730 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
2731
2732         * threads.c: Made Thread.Sleep abortable.
2733
2734 2004-06-02  Martin Baulig  <martin@ximian.com>
2735
2736         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
2737
2738         * debug-mono-symfile.h: Bumped symbol file version number to 37.
2739
2740 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
2741
2742         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
2743
2744 2004-05-30  Jackson Harper  <jackson@ximian.com>
2745
2746         * reflection.c: Do not hardcode assembly versions or public key
2747         tokens anymore. All of this except the corlib section was dead
2748         code anyways.
2749         
2750 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
2751
2752         * object.c (mono_runtime_invoke_array): Automatically create boxed
2753         objects for byref valuetypes if needed. Fixes #59300.
2754         
2755         * object.c (mono_method_return_message_restore): Handle 
2756         MONO_TYPE_OBJECT as well.
2757
2758 2004-05-28  Jackson Harper  <jackson@ximian.com>
2759
2760         * reflection.c: The modified type encoding was causing build
2761         problems. Reverted for now.
2762         
2763 2004-05-28  Jackson Harper  <jackson@ximian.com>
2764
2765         * reflection.c/h: Take an assembly ref so that we dont create
2766         fully qualified names when encoding types in the same assembly as
2767         the custom attribute being emitted.
2768         * appdomain.c: Increment version number.
2769         
2770 2004-05-26  Duncan Mak  <duncan@ximian.com>
2771
2772         * icall.c
2773         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
2774         Set the full version number (major, minor, build, revision).
2775
2776 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
2777
2778         * marshal.c (emit_struct_conv): increment src/dst after blit
2779         (mono_marshal_get_managed_wrapper,
2780         mono_marshal_get_native_wrapper): make sure we have marshalling
2781         info before marshalling params (info computation affects
2782         blittable)
2783
2784         * class.c (class_compute_field_layout): correctly deal with
2785         blittable
2786         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
2787         value types (as per what windows dows by default)
2788         (mono_class_setup_mono_type): System.ValueType is blittable
2789         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
2790         blittable
2791
2792         * marshal.c (mono_marshal_load_type_info): flag types  as
2793         non-blittable if the native layout doesn't match the managed
2794         layout
2795
2796 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2797
2798         * appdomain.c: don't add stuff in the private search path that is
2799         above the application base. If application base is not set, there's
2800         no private search path.
2801
2802 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
2803
2804         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
2805         byref struct arguments in native->managed marshalling.
2806
2807 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
2808
2809         * marshal.c (mono_marshal_get_runtime_invoke): correctly
2810         cache methods using signature (special case for methods
2811         that are value type or string class)
2812         
2813         * image.c (mono_image_close): clean up allocated GSList's
2814         in runtime_invoke_cache.
2815
2816 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2817
2818         * mono-config.c: set the correct path for mono_cfg_dir on windows when
2819         there's no MONO_CFG_DIR environment variable defined.
2820
2821 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2822
2823         * threads.c: windows version must be >= 0x0500 to include OpenThread.
2824
2825 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
2826
2827         * threadpool.c: Really wait for 500ms after the async call, even if the wait
2828           is interrumped.
2829         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
2830           before waiting for it, and call CloseHandle after the wait to unref it.
2831           This will make sure that handles are not disposed too early.
2832
2833 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2834
2835         * appdomain.c:
2836         * appdomain.h:
2837         * icall.c: removed
2838         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
2839         needed now.
2840
2841         * object.c: se the application_base only for the domain that runs
2842         Main. Fixes bug #59216,
2843
2844 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2845
2846         * appdomain.c:
2847         * object.c: only the domain in which Main is run have
2848         SetupInformation.ConfigurationFile set, so moved a few lines from
2849         appdomain.c to object.c.
2850
2851 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2852
2853         * appdomain.c: we tried to load [name].(dll|exe), but according
2854         to bug #57710, we must also try [culture]/[name].(dll|exe) and
2855         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
2856         There's a test case attached to bug #58922.
2857
2858 2004-05-27  Dick Porter  <dick@ximian.com>
2859
2860         * icall.c:
2861         * file-io.c: Implemented icalls for locking and unlocking regions
2862         in a file.
2863         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
2864         FALSE on error (fixes both compiler warning and real bug.)
2865
2866 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
2867
2868         * culture-info-tables.h: reflecting locale-builder updates.
2869
2870           (Added missing ChangeLog entry for 05/26)
2871
2872 2004-05-27  Jackson Harper  <jackson@ximian.com>
2873
2874         * locales.c: Fix some cut and paste errors.
2875         
2876 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2877
2878         * mono-config.c: set the correct path for config. directory on windows.
2879
2880 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
2881
2882         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
2883           on win32.
2884
2885 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
2886
2887         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
2888         from pinvoke functions.
2889         
2890         * marshal.c (mono_ftnptr_to_delegate): Implement this.
2891
2892 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
2893
2894         * culture-info-tables.h: reflecting locale-builder updates.
2895
2896 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
2897
2898         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
2899         #59086.
2900
2901 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
2902
2903         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
2904         * icall.c: Modified icalls for RNG.
2905         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
2906         Windows (CryptoAPI).
2907
2908 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
2909
2910         * locales.c: Fix build.
2911
2912 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
2913
2914         * culture-info-tables.h: reflecting locale-builder updates.
2915
2916 2004-05-25  Jackson Harper  <jackson@ximian.com>
2917
2918         * locales.c: When creating the current culture use the $LANGs
2919         specific culture. So DateTimeFormat and NumberFormat entries are created.
2920         
2921 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
2922
2923         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
2924         a char array as parameter.
2925
2926 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
2927
2928         * image.c: In mono_image_open(), always use an absolute path name to
2929           look for already loaded images.
2930
2931 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
2932
2933         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
2934         missing in the windows build (like older cygwin include files).
2935
2936 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
2937
2938         * icall.c: Fixed check for possible integer overflow in Buffer_
2939         BlockCopy icall. Replaced comments style // by /* */.
2940
2941 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
2942
2943         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
2944         
2945         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
2946         check after MONO_VTADDR. Fixes pinvoke2.exe.
2947
2948         * marshal.h marshal.c metadata.h: Add beginnings of support for
2949         ftnptr -> delegate marshalling.
2950
2951 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
2952
2953         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
2954         * threads.c: Fix warnings.
2955
2956 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
2957
2958         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
2959         * icall.c: Registered icalls for Suspend and Resume.
2960         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
2961           Thread.Abort.
2962         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
2963         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
2964         * process.c: Use WaitForSingleObjectEx.
2965         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
2966           checkpoints.
2967         * threads.c, threads.h: Make use of new Ex wait methods. Improved
2968           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
2969           for Suspend and Resume. Added new mono_thread_stop, used for stoping
2970           background threads. Added basic support for Abort in Windows.
2971           Start new threads using a managed delegate invoke wrapper. This wrapper
2972           has an interruption checkpoint that is needed since an interruption
2973           can be requested before the thread leaves the unmanaged code that starts 
2974           the thread.
2975         * marshal.c: Added interruption checkpoint after every native call, and
2976           also before managed calls for wrappers called from unmanaged code to
2977           go into managed code.
2978         * object.h: Added new field in MonoThread to keep track of interruption
2979           requests.
2980
2981 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
2982
2983         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
2984         calls.
2985
2986 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2987
2988         * appdomain.c:
2989         * assembly.c:
2990         * gc.c:
2991         * locales.c:
2992         * mono-config.c:
2993         * rand.c: getenv -> g_getenv (windows!)
2994
2995         * process.c: complete_path is also used on non-windows platforms.
2996
2997 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2998
2999         * icall.c: new signature for Process_Start.
3000
3001         * process.[ch]: new signature for Process_Start. If we're on windows
3002         and UseShellExecute is false, we have to search for the program by
3003         ourselves if we don't get a full path.
3004
3005 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3006
3007         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3008         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3009
3010 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3011
3012         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3013         Fixes bug #58373.
3014
3015 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3016
3017         * process.c: use double quotes to quote program name and arguments on
3018         windows. Fixes bug #58575.
3019
3020 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3021
3022         * file-io.c: don't return "." and ".." when using windows Find*File.
3023
3024 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3025
3026         * marshal.c: Don't pass wrappers to message init because method 
3027         addressed used to lookup metadata. part of remoting[2|3] fix.
3028
3029 2004-05-15  Jackson Harper  <jackson@ximian.com>
3030
3031         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3032         path is essentially the same as MONO_PATH except that it points to
3033         GACs instead of lib directories.
3034         * loader.h: The user gac is gone so we dont need function to
3035         enable/disable it.
3036         * mono-config.c: user gac option is now gone.
3037         
3038 2004-05-15  Jackson Harper  <jackson@ximian.com>
3039
3040         * culture-info.h: Make defines more consistent, add calendar data
3041         to the culture info table.
3042         * culture-info-tables.h: Add basic calendar data. Basically
3043         everyone gets default gregorian until all the data is
3044         updated.
3045         * locales.c: Use the new consistent defines. Set calendar data for
3046         culture info objects.
3047         * object.h: add a field for calendar data to CultureInfo
3048         
3049 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3050
3051         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3052         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3053         a signature.
3054         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3055         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3056         an extra param that is the pointer of the method to invoke. The IL for
3057         the invoke method is no longer specific to the method, but to the
3058         signature of the method. Thus, we can share the same code for multiple
3059         methods. This reduces the number of methods that have to be compiled.
3060
3061 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3062
3063         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3064
3065         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3066
3067         * icall.c: Optimize Buffer.BlockCopy.
3068
3069 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3070
3071         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3072         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3073         quote). Changed them to "MMMM yyyy".
3074
3075 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3076
3077         * rand.c
3078         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3079
3080 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3081
3082         * reflection.h: Updated after changes to managed structures.
3083
3084         * appdomain.c: Bump corlib version.
3085
3086 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3087
3088         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3089         windows.
3090
3091 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3092
3093         * Makefile.am: link to ../os/libmonoos.la on windows.
3094
3095         * assembly.c:
3096                 -If MONO_DEBUG, warn about non-existing directories in
3097                 MONO_PATH.
3098                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3099                 compile time variable.
3100                 -Removed init_default_path and call mono_set_rootdir from
3101                 libmonoos.a instead (windows only).
3102
3103         * assembly.h: declare mono_assembly_getrootdir().
3104
3105         * domain.c:
3106         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3107
3108         * loader.c: s/getenv/g_getenv/
3109
3110 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3111
3112         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3113
3114         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3115
3116         * metadata.h: Add new marshalling conversions.
3117
3118         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3119         function.
3120
3121         * reflection.c (mono_reflection_get_type): Lookup the type in all
3122         modules of a multi-module assembly. Fixes #58291.
3123
3124 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3125
3126         * threads.c: Before aborting a background, set the StopRequested
3127         state.  This avoids throwing the Abort exception.
3128         In mono_thread_manage, don't continue with the shutdown until all
3129         aborted threads have actually stopped.
3130
3131 2004-05-10  Jackson Harper  <jackson@ximian.com>
3132
3133         * locales.c: Remove the modifier from culture names.
3134         
3135 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3136
3137         * Makefile.am: monosn is not installed any more. It has been deprecated
3138         in favor of sn.
3139
3140 2004-05-07  Jackson Harper  <jackson@ximian.com>
3141
3142         * locales.c
3143         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3144         Fix array construction, add bailout if the length is 0.
3145
3146 2004-05-07  Dick Porter  <dick@ximian.com>
3147
3148         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3149         machine doesn't have a DNS entry.  Patch by Urs Muff
3150         (umuff@quark.com), fixes bug 57928.
3151
3152 2004-05-06  Jackson Harper  <jackson@ximian.com>
3153
3154         * reflection.c: Handle null PublicTokens properly. alloc mem for
3155         assembly names culture so we dont crash when freeing it.
3156         
3157 2004-05-06  Jackson Harper  <jackson@ximian.com>
3158
3159         * assembly.c: Check the usergac when loading with partial names.
3160         
3161 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3162
3163         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3164         does nothing for now (not required for Linux/Windows) but the class
3165         library can call it (and a newer or modified runtime could need it).
3166         * icall.c: Registred icall.
3167
3168 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3169
3170         * loader.c: prints a message on module loading error we set MONO_DEBUG
3171         environment variable.
3172
3173 2004-05-05  Jackson Harper  <jackson@ximian.com>
3174
3175         * appdomain.c: Handle PublicKeyToken=null properly.
3176         
3177 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3178
3179         * environment.c|h: Added icall ves_icall_System_Environment_
3180         GetOSVersionString to get the current OS version as a string.
3181         * icall.c: Registred icall.
3182
3183 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3184
3185         * object.c: in mono_object_get_virtual_method(), take into account that
3186         non-virtual methods don't have a slot in the vtable. Check needed when
3187         the object is a proxy.
3188
3189 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3190
3191         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3192         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3193
3194         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3195
3196         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3197         passed when a valuetype is expected.
3198
3199         * object.c (mono_unhandled_exception): Only set the exit code if the
3200         exception happens in the main thread. Fixes thread5.exe.
3201
3202         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3203         invalid names. Fixes #58047.
3204
3205 2004-05-03  Jackson Harper  <jackson@ximian.com>
3206
3207         * assembly.c: This line was committed accidently and is unneeded.
3208         
3209 2004-05-03  Jackson Harper  <jackson@ximian.com>
3210
3211         * icall.c: Add new icall for Assembly::LoadWithPartialName
3212         * assembly.c/.h: new function that probes the GAC to load partial
3213         assembly names by Paolo Molaro.
3214         
3215 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3216
3217         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3218         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3219         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3220         full type name.
3221
3222 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3223
3224         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3225         * reflection.c: fix bug when parsing a full type name and Version is not
3226         the last thing in the string.
3227
3228 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3229
3230         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3231         crashes when it is freed.
3232
3233 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3234
3235         * assembly.c: print the compat warning to stderr.
3236
3237 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3238
3239         * assembly.c (mono_assembly_load_references): Add a compatibility
3240         hack to run old applications that might be still referencing the
3241         3300-based assemblies, only do this for System.xxx.
3242
3243 2004-05-01  Jackson Harper  <jackson@ximian.com>
3244
3245         * appdomain.c: If the culture is neutral we set it to "".
3246         
3247 2004-04-29  Jackson Harper  <jackson@ximian.com>
3248
3249         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3250
3251 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3252  
3253         * string-icalls.c: added low overhead function for copying chars
3254         * icall.c: added needed icall for the above function
3255  
3256 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3257
3258         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3259         Environment.GetLogicalDrives.
3260
3261 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3262
3263         * rand.c: try and talk to egd or prngd
3264         for random bytes if opening devices fail.
3265
3266 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3267
3268         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3269         alignment for the type using the native alignment of its members 
3270         instead of using klass->min_align.
3271
3272         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3273
3274 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3275
3276         * file-io.c:
3277         * socket-io.c: added check for sys/aio.h.
3278
3279 2004-04-28  Dick Porter  <dick@ximian.com>
3280
3281         * threads.c: Don't abort a thread thats already aborting, when
3282         terminating everything.
3283
3284 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3285
3286         * icall.c: added 2 new async calls for Socket.
3287
3288         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3289         IO on *nix systems.
3290
3291         * threadpool.c: removed unused variable.
3292
3293 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3294
3295         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3296
3297 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3298
3299         * locales.c: put back string_invariant_tolower () and
3300         string_invariant_toupper ().
3301
3302 2004-04-26 David Waite <mass@akuma.org>
3303
3304         * file-io.h:
3305         * socket-io.h:
3306         * threads.h:
3307         * unicode.h: remove comma from end of enumeration declarations
3308
3309 2004-04-26 David Waite <mass@akuma.org>
3310
3311         * debug-mono-symfile.h:
3312         * decimal.c:
3313         * mono_debug.h:
3314         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3315
3316
3317 2004-04-26  Jackson Harper  <jackson@ximian.com>
3318
3319         * appdomain.c: Increment version number.
3320         
3321 2004-04-26  Jackson Harper  <jackson@ximian.com>
3322
3323         * appdomain.c: Set assembly references public token value when
3324         PublicKeyToken is specified, not the hash_value. Free public token
3325         values when free assembly name data. Previously the public key
3326         token was hex decoded, however we are using hex encoded public key
3327         tokens, so this is not neccasary.
3328         * assembly.c: Lookup assemblies in the gac if their public token
3329         value is set. Add function to allow enabling user gac
3330         lookups. Specify whether or not the assembly was loaded from the
3331         GAC. Compare full assembly names when checking the cache for
3332         assemblies (Temporarily disabled see comment in code). Remove
3333         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3334         specifies trace-loader they get extra info to stdout on the
3335         loading of assemblies.
3336         * image.h: Add a field for an assembly references public token
3337         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3338         whether an assembly has been loaded from the GAC.
3339         * image.c: Remove a corlib -> mscorlib name mapping.
3340         * loader.h: Add function to enable/disable the user gac.
3341         * mono-config.c: Check if the usergac is enabled in the config
3342         file.
3343         * icall.c: New icall to determine whether or not an assembly has
3344         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3345         * tabldefs.h: Add constant for assemblyref flag that specifies a
3346         full public key is used instead of a public token.
3347         * reflection.c: Remove mscorlib -> corlib mappings. Set
3348         PublicTokenValue instead of hash value. This value is a hex
3349         string so it does not need to be expanded.
3350
3351 2004-04-26  Martin Baulig  <martin@ximian.com>
3352
3353         * mono-debug-debugger.c (mono_debugger_initialize): Set
3354         `mono_debugger_initialized' before calling mono_debug_lock().
3355
3356 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3357
3358         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3359           InternalToUpper/InternalToLower.
3360         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3361           removed invariant culture shortcut.  This is now done in managed code.
3362         * locales.c: (string_invariant_toupper/tolower) removed.
3363
3364 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3365
3366         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3367         Added Poll internal call.
3368
3369         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3370         call for Poll. Select was too heavy for polling a single socket.
3371
3372         * threadpool.[ch]: added mono_threadpool_cleanup.
3373         * threads.c: use it. Don't use Thread_Abort on windows.
3374
3375 2004-04-23  Martin Baulig  <martin@ximian.com>
3376
3377         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3378
3379 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3380
3381         * icall.c: Registred new icalls for key pair protection and added an
3382         icall for Environment.GetFolderPath on Windows.
3383         * security.c|h: Added new icalls for key pair protection.
3384
3385 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3386
3387         * socket-io.c: don't display the non-supported family warning for known
3388         families. Now this is not displayed on windows when checking support
3389         for IPv4/IPv6.
3390
3391 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3392
3393         * class.c: don't display the layout warning for static fields.
3394
3395 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3396
3397         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3398         * locales.c, locales.h: Added new icalls for culture-specific
3399         Char.ToLower and Char.ToUpper.
3400
3401 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3402
3403         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3404         by David Waite.
3405
3406 2004-04-20  Martin Baulig  <martin@ximian.com>
3407
3408         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3409         of the type name before passing it to mono_reflection_type_from_name().
3410
3411 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3412
3413         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3414         encodings here. Fixes #56965.
3415
3416 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3417
3418         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3419         fix test on strstr result not that I can see anything that
3420         relies on the result.
3421
3422 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3423
3424         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3425         Fixes #57081.
3426
3427         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3428
3429         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3430         function to determine which marshalling to use for strings. Fixes
3431         #56965.
3432
3433         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3434
3435         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3436
3437 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3438
3439         * icall.c: #include mono-config.h
3440
3441 2004-04-15  Jackson Harper  <jackson@ximian.com>
3442
3443         * culture-info-tables.h: Fix date formats for en-US culture.
3444         
3445 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3446
3447         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3448         ThreadPool.SetMinThreads.
3449         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3450         ThreadPool.SetMinThreads.
3451
3452 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3453
3454         * mono-config.c: also load the .config file in the directory
3455         where the assembly was found.
3456
3457 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3458
3459         * assembly.c: load per-assembly config files.
3460         * icall.c: decrapified code to get the config dir and moved to
3461         mono-config.c.
3462         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3463         per-assembly config files. When doing a dll map lookup give precedence
3464         to the per-assembly data.
3465
3466 2004-04-14  Martin Baulig  <martin@ximian.com>
3467
3468         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3469         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3470         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3471
3472         * mono-debugger-debugger.c: While the debugger is locked, remember
3473         whether the symbol tables have changes and send one single
3474         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3475
3476 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3477
3478         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3479
3480         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3481         function.
3482
3483         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3484         account when marshalling string arrays. Fixes #56965.
3485
3486 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3487
3488         * icall.c: Add new icalls mapping for security.
3489         * security.c|h: Add internal calls for WindowsIdentity,
3490         WindowsImpersonationContext and WindowsPrincipal.
3491
3492 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3493
3494         * class.c: Added comment to ensure the System.MonoDummy class
3495         is removed when no longer necessary
3496
3497 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3498
3499         * appdomain.c: Pass arguments to the bootstraping exceptions to
3500         minimize JITed methods at boot
3501
3502         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3503         second string to be null.
3504
3505         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3506         Change the protocol to minimize the JIT methods at startup.  Now
3507         it Returns the internal codepage, if the value of "int_code_page"
3508         is 1 at entry, and we can not compute a suitable code page
3509         number, returns the code page as a string.
3510
3511 2004-04-13  Jackson Harper  <jackson@ximian.com>
3512
3513         * culture-info-tables.h: Fix number of decimal digits for all
3514         english locales.
3515
3516 2004-04-13  Jackson Harper  <jackson@ximian.com>
3517
3518         * icall.c: Clairfy out of sync error message. It is not always
3519         your corlib that is out of sync.
3520
3521 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3522
3523         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3524         properties when only the set accessor is overriden. Fixes #55874.
3525
3526 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3527
3528         * assembly.c (mono_assembly_load_references): Make this thread safe.
3529         Fixes #56327.
3530
3531 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3532
3533         * monosn.c: Add missing initialization calls.
3534
3535 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3536
3537         * locales.c:
3538         ves_icall_System_Globalization_CultureInfo_construct_number_format
3539         Fix g_assert so it compiles on fussier compilers re int/ptr
3540         mismatch
3541
3542 2004-04-08  Dick Porter  <dick@ximian.com>
3543
3544         * socket-io.h:
3545         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3546         53992.  Also rearrange the code so that the internal calls return
3547         an error value and exceptions are thrown from managed code.
3548
3549         * icall.c: Add type info to the socket icalls.
3550
3551 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3552
3553         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3554         owes me a beer.
3555
3556 2004-04-07  Martin Baulig  <martin@ximian.com>
3557
3558         * class.c (mono_class_from_generic_parameter): Don't default
3559         `klass->parent' to `mono_defaults.object_type'.
3560
3561 2004-04-07  Martin Baulig  <martin@ximian.com>
3562
3563         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3564         `param->pklass->reflection_info'.       
3565
3566 2004-04-07  Jackson Harper  <jackson@ximian.com>
3567
3568         * culture-info-tables.h: Fix date separator symbol.
3569         
3570 2004-04-07  Martin Baulig  <martin@ximian.com>
3571
3572         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3573         from System.Type to System.MonoType.
3574
3575 2004-04-07  Martin Baulig  <martin@ximian.com>
3576
3577         * reflection.h
3578         (MonoReflectionGenericParam): Added `has_reference_type' and
3579         `has_value_type' fields.
3580
3581         * reflection.c (mono_image_get_generic_param_info): Encode the
3582         correct flags if we have the `class' or `struct' constraint.
3583
3584 2004-04-07  Martin Baulig  <martin@ximian.com>
3585
3586         * reflection.h
3587         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3588
3589 2004-04-07  Jackson Harper  <jackson@ximian.com>
3590
3591         * appdomain.c: Revert extra patches, just wanted to bump the
3592         version number.
3593         
3594 2004-04-07  Jackson Harper  <jackson@ximian.com>
3595
3596         * Makefile.am: Add culture-info private headers.
3597         * icall.c: Add new icalls for contructing locales.
3598         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3599         * locales.h: Declare new culture info construction methods.
3600         * object.h: Add new fields used to avoid the CultureMap to
3601         MonoCultureInfo.
3602         * culture-info.h: Definition of structs used in the culture info
3603         tables.
3604         * culture-info-tables.h: Autogenerated tables that contain culture
3605         info data. This file was generated with the locale-builder tool.
3606         * appdomain.c: Incement corlib version number.
3607         
3608 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
3609
3610         * appdomain.c: (mono_runtime_init) move mono_thread_init
3611         to before mono_object_new calls so critical sections
3612         are initialized before use.
3613
3614 2004-04-07  Martin Baulig  <martin@ximian.com>
3615
3616         * icall.c
3617         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3618         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3619         (ves_icall_MonoGenericParam_initialize): Removed.
3620         (monogenericparam_icalls): Removed.
3621         (generictypeparambuilder_icalls): Added new table for
3622         System.Reflection.Emit.GenericTypeParameterBuilder.
3623
3624         * reflection.c
3625         (mono_reflection_define_generic_parameter): Removed.
3626         (mono_reflection_initialize_generic_parameter): This is now called
3627         from GenericTypeParameterBuilder's .ctor.
3628
3629 2004-04-06  Martin Baulig  <martin@ximian.com>
3630
3631         * class.c (mono_class_init): Don't inflate nested classes in a
3632         generic instance.
3633         (mono_type_get_name_recurse): Include the generic arguments for
3634         generic instances and generic type declarations.
3635         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3636         (_mono_class_get_instantiation_name): Removed.
3637         (mono_class_create_generic): Always use `gklass->name' as our name.
3638
3639         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3640
3641         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3642         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3643         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3644         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3645         closed generic methods here.
3646
3647         * reflection.c
3648         (mono_reflection_generic_inst_get_nested_types): Removed.
3649         (inflate_mono_method): Copy the generic parameters from the
3650         MonoMethodHeader into out MonoGenericMethod.
3651
3652 2004-04-06  Martin Baulig  <martin@ximian.com>
3653
3654         * row-indexes.h
3655         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3656
3657         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3658
3659         * reflection.c (build_compressed_metadata): If we have any entries
3660         in the GenericParam, MethodSpec or GenericParamConstraint tables,
3661         set the header version to 1.1.
3662
3663 2004-04-06  Martin Baulig  <martin@ximian.com>
3664
3665         * class.c (mono_class_init): If we're a generic instance,
3666         initialize our nested classes, too.
3667         (_mono_class_get_instantiation_name): Deal with the new `!%d'
3668         suffix. 
3669
3670 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3671
3672         * process.c: quote the argument passed to the shell on windows.
3673
3674 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
3675
3676         * threads.c (mono_alloc_special_static_data): Allow this to be
3677         called during startup.
3678
3679 2004-04-02  Martin Baulig  <martin@ximian.com>
3680
3681         * icall.c
3682         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
3683
3684 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
3685
3686         * icall.c: Fix build.
3687
3688 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
3689
3690         * Makefile.am: Added security.c|h.
3691         * icall.c: Added icall for get_UserName;
3692         * security.c: New file for security related icalls. Added function
3693         get_UserName for System.Environment (fix #56144).
3694         * security.h: New. Header file for security.c
3695
3696 2004-04-02  Dick Porter  <dick@ximian.com>
3697
3698         * icall.c: Deleted the icalls that were obsoleted some time ago
3699         by the ICU string code, and which were mixed into the icall
3700         rearranging.  Fixes bug 55969.
3701
3702         * string-icalls.h: 
3703         * string-icalls.c: Deleted the code that those icalls reference.
3704
3705 2004-04-01  Martin Baulig  <martin@ximian.com>
3706
3707         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
3708
3709         * class.c (mono_class_from_generic_parameter): Don't set 
3710         TYPE_ATTRIBUTE_INTERFACE.
3711         (my_mono_class_from_generic_parameter): Likewise.
3712
3713 2004-04-01  Martin Baulig  <martin@ximian.com>
3714
3715         * loader.c (find_method): Added an optional `MonoClass *ic'
3716         argument to search in a specific interface.
3717         (mono_get_method_constrained): New public function.
3718
3719 2004-04-01  Martin Baulig  <martin@ximian.com>
3720
3721         * reflection.c (mono_image_get_generic_field_token): Use the
3722         `handleref' cache here.
3723
3724 2004-04-01  Martin Baulig  <martin@ximian.com>
3725
3726         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
3727
3728         * reflection.c (create_generic_typespec): Use the `typespec' hash
3729         here, not the `typeref' one.    
3730
3731 2004-04-01  Martin Baulig  <martin@ximian.com>
3732
3733         * class.c (mono_class_inflate_generic_type): Moved the
3734         functionality into a new static inflate_generic_type() which
3735         returns NULL if it didn't do anything.  Only increment the
3736         `mono_stats.inflated_type_count' if we actually inflated
3737         something.
3738         (mono_class_get_full): Check the classes type to see whether we
3739         need to inflate it; also inflate MONO_TYPE_(M)VAR.
3740
3741 2004-04-01  Jackson Harper  <jackson@ximian.com>
3742
3743         * reflection.c: Set culture for assembly references.
3744         
3745 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
3746
3747         * reflection.[ch], icall.[ch], Fix support for pinning variables.
3748
3749 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3750
3751         * assembly.c:
3752         (do_mono_assembly_open): the critical section also covers
3753         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
3754
3755 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3756
3757         * threads.c:
3758         (mono_manage_threads): abort the background threads when finishing.
3759         Fixes bug #47232.
3760
3761 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3762
3763         * gc.c: only close the done_event handle if there was no timeout.
3764         C-ified comments.
3765
3766 2004-03-30  Martin Baulig  <martin@ximian.com>
3767
3768         * icall.c (icall_entries): It's called "System.Activator", not
3769         "System.Activation".    
3770
3771 2004-03-30  Martin Baulig  <martin@ximian.com>
3772
3773         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
3774         (mono_class_create_from_typespec): Likewise.
3775
3776 2004-03-30  Martin Baulig  <martin@ximian.com>
3777
3778         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
3779         `has_ctor_constraint' and `initialized'.
3780
3781 2004-03-30  Martin Baulig  <martin@ximian.com>
3782
3783         * reflection.c (encode_new_constraint): New static function to add
3784         the constructor constraint attribute to a type parameter.
3785         (encode_constraints): Call encode_new_constraint() if necessary.
3786
3787         * reflection.h
3788         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
3789
3790         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
3791         
3792 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
3793
3794         * reflection.c, icall.c: add support for pinning variables. 
3795
3796 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
3797
3798         * marshal.c (mono_marshal_get_managed_wrapper):
3799         init bool local with zero rather than null.
3800
3801 2004-03-29  Martin Baulig  <martin@ximian.com>
3802
3803         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
3804         the "official" behavior here.
3805         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
3806
3807 2004-03-29  Martin Baulig  <martin@ximian.com>
3808
3809         * icall.c: Reflect latest API changes.
3810
3811 2004-03-29  Martin Baulig  <martin@ximian.com>
3812
3813         * loader.c (mono_get_method_from_token): Also call
3814         mono_metadata_load_generic_params () for abstract and interface
3815         methods; replace the type arguments in the method signature with
3816         the ones which are loaded from the metadata.
3817
3818 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
3819
3820         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
3821         of the lock is not the current thread. MS.NET don't do it, in spite of
3822         what the documentation says. See bug #56157.
3823
3824 2004-03-28  Martin Baulig  <martin@ximian.com>
3825
3826         * class.c (mono_class_init): Don't call init_properties() and
3827         init_events() for generic instances; set `prop->parent' when
3828         inflating properties.
3829
3830         * reflection.c (mono_generic_inst_get_object): Call
3831         `mono_class_init (ginst->klass)'.
3832         (mono_type_get_object): Only create a MonoGenericInst if your
3833         generic type is a TypeBuilder.
3834         (do_mono_reflection_bind_generic_parameters): Only set
3835         `ginst->is_dynamic' if our generic type is a TypeBuilder.
3836
3837 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
3838
3839         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
3840         Fixes #56091.
3841
3842 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3843
3844         * icall.c: added Kill_internal icall.
3845         * process.[ch]: added Kill_internal icall.
3846
3847 2004-03-25  Martin Baulig  <martin@ximian.com>
3848
3849         * class.h (MonoStats): Added `generic_instance_count',
3850         `inflated_method_count', `inflated_type_count' and
3851         `generics_metadata_size'.       
3852
3853 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3854
3855         * reflection.c: no warnings now.
3856
3857 2004-03-25  Martin Baulig  <martin@ximian.com>
3858
3859         * class.c (mono_class_get_full): New public function; does a
3860         mono_class_get(), but also takes a `MonoGenericContext *'.
3861
3862         * loader.c (mono_field_from_memberref): Renamed to
3863         `field_from_memberref', made static and added `MonoGenericContext *'
3864         argument.
3865         (mono_field_from_token): Added `MonoGenericInst *' argument.
3866         (method_from_memberef): Likewise.
3867         (mono_get_method_from_token): Likewise.
3868         (mono_get_method_full): New public function; does a
3869         mono_get_method(), but also takes a `MonoGenericContext *'.
3870
3871         * verify.c (mono_method_verify): Get the method's generic context
3872         and pass it to mono_field_from_token(), mono_get_method_full() and
3873         mono_class_get_full().
3874
3875 2004-03-25  Martin Baulig  <martin@ximian.com>
3876
3877         * class.c (mono_class_inflate_generic_type): Take a
3878         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
3879         `MonoGenericMethod *'.
3880
3881 2004-03-25  Martin Baulig  <martin@ximian.com>
3882
3883         * loader.h (MonoMethodInflated): Store the MonoGenericContext
3884         instead of the MonoGenericMethod here.
3885
3886 2004-03-25  Martin Baulig  <martin@ximian.com>
3887
3888         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
3889         each time we create a new MonoGenericInst, we also create a new
3890         context which points back to us.
3891
3892         * class.c (inflate_method): Use `ginst->context' instead of
3893         creating a new context.
3894
3895         * loader.c (method_from_memberref): Use
3896         `klass->generic_inst->context' instead of creating a new context.
3897
3898 2004-03-25  Martin Baulig  <martin@ximian.com>
3899
3900         * class.h (MonoGenericContext): New struct.
3901         (MonoGenericMethod): Removed `generic_inst'.
3902
3903         * class.c (mono_class_inflate_generic_method): Take a
3904         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
3905
3906 2004-03-25  Martin Baulig  <martin@ximian.com>
3907
3908         * loader.h (MonoMethodInflated): New typedef.
3909
3910         * metadata.h (MonoMethodSignature): Removed `gen_method', make
3911         `generic_param_count' consume just 30 bits, added `is_inflated'
3912         and `has_type_parameters' flags (one bit each).
3913
3914         * class.c (mono_class_inflate_generic_method): Create a
3915         MonoMethodInflated instead of a MonoMethodNormal and set
3916         `is_inflated' in the method signature.
3917
3918         * class.h (MonoGenericMethod): Removed `generic_method'.
3919
3920 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
3921
3922         * image.c: Make sure the name of a MonoImage is always an absolute path.
3923           This fixes bug #54415.
3924
3925 2004-03-24  Martin Baulig  <martin@ximian.com>
3926
3927         * class.c (mono_class_setup_vtable): If we're a generic instance,
3928         use our generic type's vtable size.
3929
3930 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
3931
3932         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
3933         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
3934         problems.
3935
3936 2004-03-23  Martin Baulig  <martin@ximian.com>
3937
3938         * class.h (MonoDynamicGenericInst): Added `int count_events' and
3939         `MonoEvent *events'.
3940
3941         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
3942         (typebuilder_icalls): Added "get_event_info"; calls
3943         mono_reflection_event_builder_get_event_info(). 
3944
3945         * reflection.c (mono_reflection_generic_inst_initialize): Added
3946         `MonoArray *events'.
3947         (mono_reflection_event_builder_get_event_info): New function.
3948
3949 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
3950
3951         * object.h: add mono_type_initialization_init
3952
3953         * object.c (mono_runtime_class_init): 
3954         implement class constructor synchronization rules
3955         to cope with threading issues.  
3956         add mono_type_initialization_init
3957
3958         * appdomain.c (mono_runtime_init): call 
3959         mono_type_initialization_init
3960
3961         * class.h: removing initializing field from MonoVTable
3962
3963 2004-03-23  Martin Baulig  <martin@ximian.com>
3964
3965         * class.c (my_mono_class_from_generic_parameter): Use
3966         `param->name' if it's not NULL. 
3967
3968 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
3969
3970         * class.c: do not insert non-virtual methods in the vtable.
3971         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
3972         that means the method is non-virtual. This never would have
3973         happened before.
3974
3975 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
3976
3977         * profiler.c: Added lock for accessing coverage_hash.
3978
3979 2004-03-22  Martin Baulig  <martin@ximian.com>
3980
3981         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
3982         `method->method->signature->generic_param_count != 0' to make it
3983         work for interface methods.
3984
3985 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3986
3987         * process.c: quote the string passed to the shell using g_shell_quote.
3988
3989 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3990
3991         * threads.c:
3992         (mono_threads_manage): don't remove the finalizer thread and self
3993         from the threads hash table so that mono_thread_manage can be called
3994         more than once.
3995
3996 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3997
3998         * process.c: quote the arguments when UseShellExecute is true. Fixes
3999         bug #55790.
4000
4001 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4002
4003         * threads.c: set mono_thread_detach as a cleanup routine for every
4004         thread. This way it's always executed upon thread termination, either
4005         aborted or finished normally. No more xsp hangs!
4006
4007 2004-03-17  Martin Baulig  <martin@ximian.com>
4008
4009         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4010         `int count_nested' and a `MonoType **nested'.
4011
4012         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4013         most of the functionality into a new static
4014         do_mono_reflection_bind_generic_parameters() and don't take a
4015         `MonoType *nested_in' argument any more.  Don't compute nested
4016         types here.
4017         (mono_reflection_generic_inst_get_nested_types): New public method
4018         to get nested types.
4019
4020         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4021         we're a nested class.
4022
4023         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4024         mono_reflection_generic_inst_get_nested_types() to compute the
4025         nested types.
4026
4027 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4028
4029         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4030         descriptive error message under windows.
4031         
4032 2004-03-17  Martin Baulig  <martin@ximian.com>
4033
4034         * class.c (dup_type): Added `const MonoType *original' argument;
4035         copy the attrs from the original type.
4036
4037 2004-03-17  Martin Baulig  <martin@ximian.com>
4038
4039         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4040         `m->generic_inst_cache' here.
4041
4042 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4043
4044         * exception.h exception.c: Add stack_overflow_exception.
4045
4046 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4047
4048         * threadpool.c:
4049         (overlapped_callback): call SetEvent *after* invoking the callback.
4050         No need to call CloseHandle.
4051
4052 2004-03-16  Martin Baulig  <martin@ximian.com>
4053
4054         * reflection.c (mono_image_get_fieldref_token): Take a
4055         `MonoReflectionField *' instead of a `MonoClassField *' and a
4056         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4057
4058 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4059
4060         * appdomain.c: don't add the culture to the filename we're looking for
4061         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4062
4063 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4064
4065         * locales.c: don't ignore symbols when doing case insensitive compares.
4066         Thanks Dick! Fixes bug #54046.
4067
4068         * threads.c: surround 'threads' usage with enter/leave in
4069         mono_thread_manage.
4070
4071 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4072
4073         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4074         implicitly marshalled as [Out]. Fixes #55450.
4075
4076         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4077         an exception.
4078
4079 2004-03-16  Martin Baulig  <martin@ximian.com>
4080
4081         * class.c (mono_class_from_generic_parameter): Use the actual
4082         parameter name. 
4083
4084 2004-03-16  Martin Baulig  <martin@ximian.com>
4085
4086         * reflection.c (type_get_signature_size): New static function.
4087         Compues the size of the type in a method signature.
4088         (method_get_signature_size): New static function; calls
4089         type_get_signature_size() to compute the actual size of the
4090         method's signature.
4091         (method_encode_signature): Use method_get_signature_size() to get
4092         the signature's size rather than using `nparams * 10'.
4093
4094 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4095
4096         * file-io.h: define here WapiOverlapped on windows. I don't want the
4097         regular OVERLAPPED one.
4098
4099         * file-io.c:
4100         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4101         Disabling AIO on windows.
4102
4103 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4104
4105         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4106         bug #55385.
4107
4108 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4109
4110         * appdomain.c: upgraded corlib version.
4111
4112         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4113         and BeginWrite. Allow opening files for asynchrnous operations.
4114
4115         * file-io.h: new struct that maps FileStreamAsyncResult.
4116         * icall.c: added new icalls.
4117         * process.[ch]: support setting child process environment variables
4118         and use the SHELL or COMSPEC when UseShellExecute is true.
4119
4120         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4121         callback for async. IO is here and also BindHandle.
4122
4123         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4124         from here.
4125
4126 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4127
4128         * reflection.c (create_custom_attr): Allow len == 0.
4129
4130         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4131         computation on big-endian machines.
4132
4133 2004-03-13  Martin Baulig  <martin@ximian.com>
4134
4135         * class.h (MonoGenericInst): Added `int count_ifaces'.
4136
4137         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4138         `ginst->count_ifaces' instead `klass->interface_count' since we
4139         may get called before the vtable is created.
4140
4141         * loader.c (mono_method_get_param_names): If we're a generic
4142         instance, return and don't initialize the class.
4143
4144         * reflection.c (mono_reflection_setup_generic_class): Don't call
4145         ensure_runtime_vtable().
4146         (mono_reflection_bind_generic_parameters): Set
4147         `ginst->count_ifaces'.
4148
4149 2004-03-11  Jackson Harper <jackson@ximian.com>
4150
4151         * icall.c:
4152         * unicode.c:
4153         * unicode.h: Remove unused System.Char icalls.
4154         
4155 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4156
4157         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4158         code when we P/Invoke the first library in Windows.Forms, instead
4159         of when we first open the assembly.
4160
4161         * assembly.c: Drop the lookup from here.
4162
4163 2004-03-10  Martin Baulig  <martin@ximian.com>
4164
4165         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4166         class for properties, fields and events.  Finally fixes #54945.
4167
4168 2004-03-10  Martin Baulig  <martin@ximian.com>
4169
4170         * metadata.c (mono_metadata_class_equal): New static function;
4171         checks whether two generic instances or two generic parameters are
4172         equal.
4173         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4174         compare classes.        
4175
4176 2004-03-10  Martin Baulig  <martin@ximian.com>
4177
4178         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4179
4180         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4181         argument and write it into the `reflection_info' field.
4182
4183         * icall.c
4184         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4185         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4186
4187 2004-03-09  Jackson Harper  <jackson@ximian.com>
4188
4189         * char-conversions.h: use 8 bits for numeric data its all we need
4190         * icall.c: numeric data is only 8 bits now.
4191
4192 2004-03-09  Martin Baulig  <martin@ximian.com>
4193
4194         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4195
4196         * class.c (init_properties, init_events): Initialize the new
4197         `parent' field.
4198
4199         * reflection.c (typebuilder_setup_properties): Likewise.
4200         (typebuilder_setup_events): Likewise.
4201
4202         * reflection.h (MonoEventInfo): Replaced `parent with
4203         `declaring_type' and `reflected_type'.
4204
4205         * icall.c (ves_icall_get_property_info): Distinguish between
4206         declaring and reflected type.
4207         (ves_icall_get_event_info): Likewise.
4208
4209 2004-03-09  Martin Baulig  <martin@ximian.com>
4210
4211         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4212         (ves_icall_Type_GetField): Correctly set field->klass.
4213
4214 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4215
4216         * loader.h: Fix warning.
4217
4218 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4219
4220         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4221         library routine if present.  Notice that it will still continue
4222         executing even if its missing, for those working on the Gtk#
4223         edition of Windows.Forms.
4224
4225         * assembly.c (do_mono_assembly_open): If loading the
4226         System.Windows.Forms call mono_loader_wini_init.
4227
4228 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4229
4230         * class.h: Added MonoRemoteClass struct.
4231         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4232         function for MonoStrings.
4233         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4234         Added internal call for getting the proxy type.
4235         * marshal.c: Get the type of transparent proxies from its remote_class.
4236         Added methods that generate the IL for type checks and casts:
4237         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4238         mono_marshal_get_proxy_cancast.
4239         * marshal.h: Declaration of the previous new methods.
4240         * object.c: Added new moethods for creating and updating MonoRemoteClass
4241         instances: mono_remote_class, mono_upgrade_remote_class, 
4242         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4243         * verify.c: FIx transparent_proxy_fields layout.
4244         * appdomain.c: Bump corlib version.
4245
4246 2004-03-04  Jackson Harper  <jackson@ximian.com>
4247
4248         * icall.c: Add icall to access char conversion tables.
4249         * char-conversions.h: Character conversion tables.
4250         * Makefile.am: Add char-conversions.h private header file.
4251         
4252 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4253
4254         * appdomain.c (unload_thread_main): Increase unloading timeout to
4255         10 sec as a temporary workaround for Nant problems.
4256
4257 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4258
4259         * gc.c: Add checks for GC_enable and GC_disable.
4260
4261         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4262         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4263         (bug #54988).
4264         
4265 2004-02-27  Martin Baulig  <martin@ximian.com>
4266
4267         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4268         `MonoReflectionType *' instead of a `MonoType *'.
4269
4270 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4271
4272         * gc.c (run_finalize): Avoid finalizing the object representing the
4273         finalizer thread.
4274         (finalizer_thread): Fix warning.
4275
4276 2004-02-25  Martin Baulig  <martin@ximian.com>
4277
4278         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4279         argument for nested types.
4280         (mono_class_create_generic): Added support for nested generictypes.
4281
4282         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4283         `GList *nested'.
4284
4285         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4286
4287         * reflection.c (method_encode_signature): Increase the minimum
4288         value of `size' from 10 to 11.
4289         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4290         and `MonoType **types' arguments instead of the `MonoArray
4291         *types'; added `MonoType *nested_in'.  Recursively instantiate
4292         nested classes. 
4293
4294 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4295
4296         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4297         stack_overflow_ex members which are used by exception handling.
4298
4299         * appdomain.c (mono_runtime_init): Initialize the new members.
4300
4301         * gc.c (mono_gc_enable): New helper function.
4302         * gc.c (mono_gc_disable): New helper function.
4303
4304 2004-02-23  Martin Baulig  <martin@ximian.com>
4305
4306         * icall.c: I must have been really stupid - make it actually work
4307         this time ;-)
4308
4309 2004-02-23  Martin Baulig  <martin@ximian.com>
4310
4311         * loader.c (method_from_memberref): Only inflate the method if
4312         it's in another klass.
4313
4314 2004-02-23  Martin Baulig  <martin@ximian.com>
4315
4316         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4317         (mono_class_init): If we're a generic instance and an interface,
4318         compute `class->interface_id'; also create `class->interfaces'
4319         here and inflate them.
4320
4321         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4322         `ginst->is_open'.
4323         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4324
4325         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4326
4327 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4328
4329         * reflection.c (method_encode_code): Improved the error message
4330         generated by the exception.
4331
4332 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4333
4334         * icall.c: Martin did not do what he said in the ChangeLog for
4335         2004-02-18, but put back the changes for properties and events.
4336         Commenting those changes out again and adding comment to bug #54518.
4337         
4338         * process.c: removed warning.
4339
4340 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4341
4342         * marshal.c (emit_struct_conv): Print an error message instead of
4343         asserting when a type does not have the StructLayout attribute.
4344
4345 2004-02-20  Martin Baulig  <martin@ximian.com>
4346
4347         * reflection.c (mono_type_get_object): Also use the cache for
4348         generic instances.
4349         (mono_reflection_bind_generic_parameters): Always compute
4350         `ginst->ifaces'.        
4351
4352 2004-02-20  Martin Baulig  <martin@ximian.com>
4353
4354         * class.h (MonoGenericMethod): Removed `klass'.
4355
4356         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4357         *klass' argument.
4358
4359 2004-02-20  Martin Baulig  <martin@ximian.com>
4360
4361         * reflection.c (method_encode_methodspec): Actually use the
4362         uninflated signature for the memberref.
4363
4364 2004-02-20  Martin Baulig  <martin@ximian.com>
4365
4366         * class.h (MonoGenericMethod): Removed `declaring'.
4367
4368         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4369         is NULL, compute it here.
4370
4371 2004-02-20  Martin Baulig  <martin@ximian.com>
4372
4373         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4374
4375         * metadata.c (mono_metadata_generic_inst_hash): New method.
4376         (mono_metadata_generic_inst_equal): New method.
4377
4378         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4379         `klass->image->generic_inst_cache' cache to avoid creating
4380         duplicate MonoGenericInst's.
4381
4382         * class.c (mono_class_inflate_generic_type): Use the cache.
4383
4384 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4385
4386         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4387
4388 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4389
4390         * icall.c: added Socket.WSAIoctl icall.
4391
4392         * socket-io.[ch]: implemented
4393         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4394
4395 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4396
4397         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4398
4399 2004-02-18  Urs C Muff  <umuff@quark.com>
4400
4401         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4402         this work on PPC and other big-endian architectures.
4403
4404         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4405         fields with an underscore to make sure they're only accessed by
4406         the read32() macro.
4407
4408 2004-02-18  Martin Baulig  <martin@ximian.com>
4409
4410         * icall.c: Put the klass->refclass changes back for methods and
4411         fields, but not for properties and events.  We're currently not
4412         distinguishing between DeclaringType and ReflectedType for
4413         properties and events, that's what caused the regressions.
4414
4415 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4416
4417         * object.c:
4418         (mono_async_result_new): the handle can be NULL.
4419
4420         * threadpool.c: Use an event instead of a semaphore, don't initialize
4421         it until needed. This saves quite a few semaphores from being created
4422         when using the threadpool.
4423
4424 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4425
4426         * object.c (mono_string_is_interned_lookup): Fix interning of long
4427         strings. Fixes #54473.
4428
4429         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4430
4431         * icall.c: Revert the klass->refclass changes since they introduce
4432         regressions (bug #54518).
4433
4434 2004-02-18  Martin Baulig  <martin@ximian.com>
4435
4436         * class.c (mono_class_init): If we're a generic instance and don't
4437         come from a TypeBuilder, inflate our members here.
4438         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4439         (mono_class_create_generic): New public method.
4440         (mono_class_initialize_generic): Removed.
4441         (get_instantiation_name): Renamed to
4442         _mono_class_get_instantiation_name() and made it public.
4443
4444 2004-02-18  Martin Baulig  <martin@ximian.com>
4445
4446         * class.c (mono_class_inflate_generic_type): Clear the new
4447         instance's `nginst->klass' when inflating a generic instance.
4448         (mono_class_is_subclass_of): Added (basic) support for generic
4449         instances.
4450
4451 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4452
4453         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4454         MonoMempool to hold compiled native code.
4455
4456 2004-02-17  Martin Baulig  <martin@ximian.com>
4457
4458         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4459         `properties'.
4460
4461         * reflection.c (mono_reflection_generic_inst_initialize): Added
4462         `MonoArray *properties' argument.
4463
4464         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4465
4466 2004-02-17  Martin Baulig  <martin@ximian.com>
4467
4468         * icall.c (ves_icall_Type_GetFields): Renamed to
4469         ves_icall_Type_GetFields_internal() and added a
4470         `MonoReflectionType *rtype' argument; pass it to
4471         mono_field_get_object() to set the field's "reflected" type.
4472         (ves_icall_Type_GetConstructors): Likewise.
4473         (ves_icall_Type_GetEvents): Likewise.
4474         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4475         argument; pass it to mono_method_get_object() to set the method's
4476         "reflected" type.       
4477
4478 2004-02-17  Martin Baulig  <martin@ximian.com>
4479
4480         * class.h (MonoDynamicGenericInst): New type.
4481         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4482
4483         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4484         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4485         (ves_icall_MonoGenericInst_GetFields): New interncall.
4486
4487         * class.c (mono_class_from_generic): Don't call
4488         mono_class_initialize_generic() if this is a dynamic instance;
4489         ie. it's being created from a TypeBuilder.
4490         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4491         `class->byval_arg.type'.
4492
4493         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4494         to `inflate_method' and made static.
4495         (mono_reflection_inflate_field): Removed.
4496         (mono_reflection_generic_inst_initialize): New public method.
4497
4498         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4499         `ctors' and `fields'; added `initialized'.
4500
4501 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4502
4503         * debug-helpers.c (mono_method_full_name): Fix output for empty
4504         namespaces.
4505
4506 2004-02-12  Martin Baulig  <martin@ximian.com>
4507
4508         * class.h (MonoClassField): Added `MonoType *generic_type'.
4509
4510         * reflection.c (mono_image_get_fieldref_token): Added support for
4511         instantiated generic types.
4512         (field_encode_inflated_field): Removed.
4513         (mono_image_get_inflated_field_token): Removed.
4514         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4515
4516         * reflection.h (MonoReflectionInflatedField): Removed.
4517
4518 2004-02-12  Martin Baulig  <martin@ximian.com>
4519
4520         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4521         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4522
4523         * reflection.c (mono_image_get_methodspec_token): Take a
4524         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4525         (mono_image_create_token): Check whether we have a
4526         `method->signature->gen_method' and call
4527         mono_image_get_methodspec_token() if appropriate.
4528         (inflated_method_get_object): Removed.
4529         (mono_reflection_bind_generic_method_parameters): Return a
4530         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4531         (mono_reflection_inflate_method_or_ctor): Likewise.
4532
4533         * reflection.h (MonoReflectionInflatedMethod): Removed.
4534
4535 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4536
4537         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4538         for custom valuetype marshalling.
4539
4540         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4541
4542 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4543
4544         * icall.c: fixed WSAGetLastError_internal name.
4545
4546 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4547
4548         * threads.c (mono_thread_attach): Allow this to be called multiple
4549         times for a thread.
4550         
4551         * threads.c (build_wait_tids): Do not wait for ourselves.
4552
4553         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
4554         appdomain list is empty.
4555
4556         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4557         memory returned by mono_string_builder_to_utf16, since it points into
4558         managed memory. Thanks to Bernie Solomon for noticing this.
4559
4560         * icall.c: Add AppDomainSetup icalls.
4561
4562         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4563
4564         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4565         types.
4566
4567         * reflection.c (reflection_methodbuilder_to_mono_method): Save
4568         custom attributes to the method_aux struct. Also fix array indexes etc.
4569
4570         * loader.c (mono_method_get_param_names): Make dynamic case work again.
4571         
4572 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4573
4574         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4575         (both static and runtime) and reduce startup time.
4576
4577 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
4578
4579         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4580         AsAny marshalling conversion instead of crashing.
4581
4582         * marshal.c: Fix warnings.
4583
4584 2004-02-09  Martin Baulig  <martin@ximian.com>
4585
4586         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4587
4588         * reflection.h (MonoReflectionInflatedMethod): Removed the
4589         `declaring' field, it's now in the unmanaged MonoGenericMethod.
4590
4591         * reflection.c (method_encode_methodspec): Removed the `method'
4592         argument; we get it from `gmethod->declaring'.
4593         (inflated_method_get_object): Removed the `declaring' argument.
4594
4595 2004-02-09  Martin Baulig  <martin@ximian.com>
4596
4597         * class.h (MonoGenericMethod): New type.
4598         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4599         `generic_method'.
4600
4601         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4602         a `MonoGenericMethod *gen_method' one.
4603
4604         * class.c (mono_class_inflate_generic_type): Take an additional
4605         `MonoGenericMethod * argument.  This is only non-NULL if we're
4606         inflating types for a generic method.   
4607         (mono_class_inflate_generic_signature): Renamed to
4608         inflate_generic_signature() and made static; take a
4609         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4610         (inflate_generic_header): Take a `MonoGenericMethod *' argument
4611         instead of a `MonoGenericInst *' one.
4612         (mono_class_inflate_generic_method): Likewise.
4613
4614         * reflection.c (encode_generic_method_sig): Take a
4615         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4616         (method_encode_methodspec): Likewise.
4617         (inflated_method_get_object): Likewise. 
4618
4619         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4620         field with a `MonoGenericMethod *gmethod' one.  
4621
4622 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
4623
4624         * class.h (mono_class_has_parent): add parens to expansion
4625         so you can ! this.
4626
4627 2004-02-08  Martin Baulig  <martin@ximian.com>
4628
4629         * image.h (MonoImage): Removed `generics_cache'.
4630
4631         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4632         instead of a `MonoType *' argument; removed the `inflate_methods'
4633         argument.  Don't inflate methods here.
4634
4635         * loader.c (find_method): If it's a generic instance, call
4636         mono_class_init() on the `sclass->generic_inst->generic_type'.
4637
4638         * metadata.c (mono_type_size): Make this work on uninitialized
4639         generic instances; call it on the `ginst->generic_type's class.
4640
4641         * reflection.c (mono_reflection_bind_generic_parameters): Call
4642         mono_class_from_generic() to create the `ginst->klass'.
4643
4644 2004-02-08  Martin Baulig  <martin@ximian.com>
4645
4646         * class.h (MonoClass): Changed type of `generic_inst' from
4647         `MonoType *' to `MonoGenericInst *'.
4648
4649 2004-02-08  Martin Baulig  <martin@ximian.com>
4650
4651         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4652         mono_type_get_object(), this is now creating a `MonoGenericInst'
4653         for MONO_TYPE_GENERICINST.
4654         (ves_icall_MonoGenericInst_GetParentType): Likewise.
4655         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4656
4657         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4658         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4659         (inflated_method_get_object): Added `MonoClass *refclass' argument.
4660         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4661         and reflected type.
4662
4663         * reflection.h (MonoReflectionInflatedMethod): Removed
4664         `declaring_type' and `reflected_type'.
4665
4666 2004-02-08  Martin Baulig  <martin@ximian.com>
4667
4668         * class.h (MonoGenericInst): Added `MonoType *parent' and
4669         `MonoType **ifaces'.
4670
4671         * reflection.h (MonoReflectionGenericInst): Removed `klass',
4672         `parent' and `interfaces'.
4673
4674         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4675         `MonoType *' argument and return a `MonoType *'.
4676
4677         * icall.c
4678         (ves_icall_MonoGenericInst_GetParentType): New interncall.
4679         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
4680
4681 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4682
4683         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
4684         valuetype marshalling.
4685
4686 2004-02-06  Martin Baulig  <martin@ximian.com>
4687
4688         * class.c
4689         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
4690         (my_mono_class_from_generic_parameter): Likewise.
4691
4692 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
4693
4694         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
4695         contents of the symbol files lazily.
4696
4697         * object.h (MonoThread): Add 'name' and 'name_len' fields.
4698
4699         * threads.h threads.c icall.c: New icalls for getting and setting the
4700         threads name.
4701
4702 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
4703
4704         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
4705         Raise an exception when the domain is not found.
4706
4707 2004-02-03  Martin Baulig  <martin@ximian.com>
4708
4709         * reflection.c (mono_image_get_methodspec_token): Use the
4710         uninflated signature; fixes gen-33.
4711
4712 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
4713
4714         * gc.c threads.c: Make the finalizer thread a normal managed thread so
4715         the finalizer code can use thread functionality.
4716
4717         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
4718         the finalizer thread.
4719
4720         * threads.c: Make some functions more robust.
4721
4722         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
4723
4724         * metadata.h: Add new marshalling conventions.
4725
4726         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
4727         stringbuilder marshalling. Fixes #53700.
4728
4729         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
4730
4731         * reflection.c (mono_image_get_type_info): Save declarative security
4732         info.
4733
4734         * reflection.c (mono_image_get_field_info): Handle uninitialized 
4735         unmanaged fields as well.
4736
4737         * appdomain.c: Bump corlib version.
4738
4739 2004-02-01  Martin Baulig  <martin@ximian.com>
4740
4741         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
4742         method type arguments.  
4743
4744 2004-01-30  Duncan Mak  <duncan@ximian.com>
4745
4746         * marshal.h: Add prototype for
4747         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
4748         and
4749         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
4750         fix the build.
4751
4752 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
4753
4754         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
4755         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
4756
4757 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4758
4759         * marshal.c (mono_marshal_get_native_wrapper): Add support for
4760         custom marshalling of valuetypes.
4761
4762         * marshal.c: Fix some warnings.
4763
4764 2004-01-29  Martin Baulig  <martin@ximian.com>
4765
4766         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
4767         for generic method parameters.
4768
4769         * reflection.c (method_encode_methodspec): Write the uninflated
4770         signature into the methodspec table.
4771         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
4772         is always the uninflated method.
4773         (reflection_methodbuilder_to_mono_method): Copy the generic
4774         parameters from the MethodBuilder into `header->gen_params'.
4775
4776 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
4777
4778         * class.c (mono_class_from_generic_parameter): Fix warning.
4779
4780 2004-01-27  Martin Baulig  <martin@ximian.com>
4781
4782         * class.c (mono_class_from_generic_parameter): Don't create
4783         `klass->methods' here.  
4784
4785 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
4786
4787         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
4788         extension since it does not work with libraries named lib<FOO>.dll.so.
4789
4790 2004-01-25  Martin Baulig  <martin@ximian.com>
4791
4792         * class.c (mono_class_inflate_generic_type): Added support for
4793         MONO_TYPE_GENERICINST.
4794
4795         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
4796         inflate methods on open constructed types.      
4797
4798 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4799
4800         * object.c: fire ProcessExit event in the root AppDomain after running
4801         Main. Fixes bug #53299.
4802
4803 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
4804
4805         * socket-io.c: include the new socket-wrappers.h header.
4806         Use the wrappers instead of the unix socket functions to make the code
4807         more clear.
4808
4809 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
4810
4811         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
4812
4813         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4814         Fixes #22532.
4815
4816 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
4817
4818         * reflection.c (mono_image_create_pefile): Handle the case when the
4819         entry point is not a MethodBuilder.
4820
4821         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4822         field to ReflectionMethod since it is not allways a builder.
4823
4824         * reflection.c (type_get_fully_qualified_name): New helper function to
4825         return the fully qualified name of a type.
4826
4827         * reflection.c (encode_marshal_blob): Always emit the fully qualified
4828         type name for custom marshallers.
4829
4830         * reflection.c (mono_marshal_spec_from_builder): Ditto.
4831
4832         * class.c (mono_class_setup_vtable): If a parent class already 
4833         implements an interface, use the implementing methods from that class.
4834         Fixes #53148.
4835
4836 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4837
4838         * threadpool.c: just return instead of ExitThread to allow for thread
4839         clean up earlier.
4840
4841 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
4842
4843         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
4844         when closing resource modules.
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 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
4853
4854         * marshal.c (mono_marshal_get_managed_wrapper): 
4855         mono_marshal_alloc takes native int so CONV_I
4856         the arg for 64bits.
4857
4858 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
4859
4860         * reflection.c (fixup_cattrs): New function to fixup the methoddef
4861         tokens in the cattr table. Fixes #53108.
4862
4863 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4864
4865         * loader.c: don't trim ".dll" before looking up in the config file.
4866         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
4867
4868 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
4869
4870         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
4871         Return the module which contains the resource as well.
4872         (ves_icall_System_Reflection_Module_Close): New icall.
4873
4874         * appdomain.c: Bump corlib version number.
4875
4876         * image.c (mono_image_addref): New public function.
4877
4878         * assembly.c: Call mono_image_addref.
4879
4880         * reflection.c (mono_module_get_object): Increase reference count of 
4881         the image.
4882
4883         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4884         Fixes #22532.
4885
4886         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
4887         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
4888         proper exceptions on DllImport problems.
4889
4890 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
4891
4892         * class.c, metadata.c: eliminate CSIZE macro.
4893
4894 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
4895
4896         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
4897         * object.h: Added async_callback field in MonoAsyncResult.
4898         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
4899         * verify.c: Added async_callback in MonoAsyncResult layout.
4900
4901 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
4902
4903         * reflection.c (mono_reflection_get_custom_attrs): Add support
4904         for Modules.
4905
4906 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
4907
4908         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
4909         marshalling.
4910         (mono_marshal_method_from_wrapper): Add null pointer check.
4911
4912 2004-01-16  Martin Baulig  <martin@ximian.com>
4913
4914         * debug-mono-symfile.h: Set version number to 36 and reflect
4915         latest symbol writer changes.
4916
4917 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
4918
4919         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
4920         multi-dimensional arrays.
4921         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
4922         (mono_class_from_mono_type): Use bounded_array_class_get.
4923         
4924         * class.c (mono_bounded_array_class_get): New function which takes
4925         a 'bounded' bool argument to distinguish vectors from one dimensional
4926         arrays.
4927
4928         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
4929         bounded_array_class_get if the array has bounds.
4930
4931         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
4932         Search modules loaded using AssemblyBuilder:AddModule as well.
4933
4934 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4935
4936         * appdomain.c: increased corlib version.
4937         * filewatcher.c: removed g_print.
4938         * icall.c:
4939         (get_property_info): only allocate what is actually requested.
4940         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
4941
4942 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4943
4944         * Makefile.am: added filewatcher.[ch]
4945         * filewatcher.[ch]: FileSystemWatcher runtime support.
4946         * icall.c: added new FSW icalls.
4947
4948 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
4949
4950         * string-icalls.c: fix stringbuilder regression as suggested by
4951         Iain McCoy <iain@mccoy.id.au>.
4952
4953 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
4954
4955         * process.c (process_read_stringtable_block): Recognize '007f' as
4956         a language neutral stringtable block.
4957
4958 2004-01-12  Patrik Torstensson
4959
4960         * object.h (MonoStringBuilder) : Changed layout to support our
4961         new stringbuilder class.
4962         * marshal.c: Change marshalling to support the new layout of 
4963         string builder.
4964         * appdomain.c: increased version number because new layout of
4965         string builder.
4966
4967 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
4968
4969         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
4970         assembly name as an string instead of an AssemblyName, since it is
4971         easier to extract info from it.
4972
4973         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
4974         the culture subdirectories too. Fixes #52231.
4975
4976 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4977
4978         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
4979         It takes 2 new parameters with an optional name for the method to look
4980         for and case ignoring info.
4981
4982         * threadpool.c: removed unused variable.
4983
4984 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4985
4986         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
4987         It takes 2 new parameters with an optional name for the property to look
4988         for and case ignoring info.
4989         Fixes bug #52753.
4990
4991 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
4992
4993         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
4994         Fix #52451.
4995
4996 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4997
4998         * appdomain.c:
4999         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5000         Fixes bug #52630.
5001
5002 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5003
5004         * reflection.c: Add support for more than one unmanaged resource.
5005
5006         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5007         in field->def_value, as done in all other cases.
5008
5009         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5010         TypeBuilders.
5011
5012         * reflection.c (mono_reflection_create_runtime_class): Remove 
5013         errorneous assignment to klass->element_class, since it is already
5014         done in mono_reflection_setup_internal_class.
5015
5016 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5017
5018         * gc.c: added missing LeaveCriticalSection.
5019         * icall.c: indented a couple of lines.
5020         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5021         if we call EndInvoke inside a callback. Fixes bug #52601.
5022
5023 2004-01-07  Martin Baulig  <martin@ximian.com>
5024
5025         * mono-debug-debugger.h
5026         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5027
5028 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5029
5030         * appdomain.c: Use messages in NotImplementedException.
5031
5032         * exception.c (mono_get_exception_not_implemented): Now this takes
5033         a message argument.
5034
5035         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5036         exception instead of g_asserting an aborting when something is not
5037         implemented.
5038
5039         Add some inline docs.
5040
5041 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5042
5043         * reflection.h: Update after changes to object layout.
5044
5045         * reflection.c: Implement saving of unmanaged aka win32 resources.
5046
5047         * appdomain.c: Bump version number.
5048
5049         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5050         Handle missing domains gracefully.
5051
5052 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5053
5054         * file-io.c : On Windows, there are much more invalid_path_chars.
5055
5056 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5057
5058         * class.h, object.c: prepare for GetType () speedup.
5059
5060 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5061
5062         * profiler.c: workaround for --profile null reference exception on
5063           cygwin. Patch by Patrik Torstensson.
5064
5065 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5066
5067         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5068         make work for unaligned access.
5069
5070 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5071
5072         * class.c: small cleanup (class->fields [i] -> field).
5073         * image.c: check address of metadata is valid.
5074
5075 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5076
5077         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5078         search the list of loaded assemblies.
5079
5080         * reflection.c (mono_reflection_type_from_name): Use 
5081         mono_assembly_loaded instead of mono_image_loaded.
5082
5083         * reflection.c: Fix warnings.
5084
5085 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5086
5087         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5088         is dynamic. This is needed since an assembly can contain both dynamic and
5089         non-dynamic images.
5090
5091         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5092         assembly->dynamic.
5093
5094         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5095
5096         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5097         to store modules loaded using AddModule.
5098
5099         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5100         on Modules.
5101
5102         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5103
5104         * reflection.c (mono_image_fill_export_table_from_module): New function to
5105         fill out the EXPORTEDTYPES table from a module.
5106
5107         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5108         into a separate function. Also handle loaded non-dynamic modules.
5109
5110         * reflection.c (mono_image_basic_init): Fix memory allocation.
5111
5112         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5113
5114         * assembly.c (mono_assembly_load_references): Make this public.
5115
5116 2003-12-19  Martin Baulig  <martin@ximian.com>
5117
5118         * class.c (mono_class_initialize_generic): Made this static, take
5119         a `MonoGenericInst *' instead of a `MonoClass *'.
5120         (mono_class_from_generic): Call mono_class_initialize_generic()
5121         unless we're already initialized or being called from
5122         do_mono_metadata_parse_generic_inst().
5123
5124         * class.h (MonoGenericInst): Added `initialized' and
5125         `init_pending' flags.
5126
5127         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5128         `mono_class_init (gklass)' or mono_class_initialize_generic()
5129         here; set `generic_inst->init_pending' while parsing the
5130         `type_argv'.
5131
5132 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5133
5134         * locales.c: include string.h for memxxx prototypes
5135
5136 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5137
5138         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5139         constructor when accessing literal fields.
5140
5141 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5142
5143         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5144
5145         * reflection.c (assembly_add_resource_manifest): New function to fill
5146         the MANIFESTRESOURCE table.
5147
5148         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5149
5150         * reflection.h: Update to changes in class layout.
5151
5152         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5153         Reenable call to mono_runtime_is_shutting_down ().
5154
5155         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5156         determine if the runtime is shutting down.
5157
5158 2003-12-16  Jackson Harper <jackson@ximian.com>
5159
5160         * icall.c: comment out call to mono_runtime_is_shutting_down to
5161         fix build.
5162         
5163 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5164
5165         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5166         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5167
5168 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5169
5170         * reflection.c: move definition of swap_with_size
5171         to before its first call
5172
5173 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5174
5175         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5176
5177         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5178         icall.
5179
5180         * object.c: Fix warnings.
5181
5182         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5183         members if FlattenHierarchy is set.
5184
5185         * reflection.c (mono_image_add_decl_security): New function to emit
5186         declarative security.
5187
5188         * reflection.h reflection.c: Add support for declarative security.
5189
5190         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5191         
5192 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5193
5194         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5195         
5196         * appdomain.c verify.c: Moved corlib version checking into its own
5197         function in appdomain.c since it needs to create vtables etc.
5198
5199 2003-12-13  Patrik Torstensson <p@rxc.se>
5200
5201         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5202         instead of unwrapped server.
5203
5204 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5205
5206         * verify.c (check_corlib): Fix field index.
5207
5208 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5209
5210         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5211         GetGacPath icall.
5212
5213 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5214
5215         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5216         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5217         cope with sizeof(size_t) != sizeof(guint32).
5218
5219 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5220
5221         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5222         in case of failure.
5223
5224 2003-12-10  Mark Crichton <crichton@gimp.org>
5225
5226         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5227         in managed code.
5228
5229         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5230
5231 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5232
5233         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5234         marked as deleted.
5235
5236 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5237
5238         * verify.c (check_corlib): Handle the case when the version field is 
5239         initialized by a static constructor.
5240
5241 2003-12-08  Patrik Torstensson  <p@rxc.se>
5242
5243     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5244
5245 2003-12-08  Martin Baulig  <martin@ximian.com>
5246
5247         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5248         a MonoReflectionGenericParameter, also take the parameter index
5249         and name as arguments.
5250         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5251         (ves_icall_MonoGenericParam_initialize): New interncall.
5252         (ves_icall_Type_make_byref_type): New interncall.
5253
5254         * reflection.h (MonoReflectionGenericParam): Derive from
5255         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5256         `index' fields.
5257
5258         * reflection.c (mono_reflection_define_generic_parameter): Create
5259         and return a new MonoReflectionGenericParam; don't initialize the
5260         constraints here.
5261         (mono_reflection_initialize_generic_parameter): New public method;
5262         initializes the constraints and creates the `param->pklass'.
5263
5264 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5265
5266         * reflection.h reflection.c: Use the new fields 'num_types', 
5267         'num_fields' and 'num_methods' to track the number of types etc.
5268
5269         * verify.c (check_corlib): Check corlib version number.
5270
5271 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5272
5273         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5274         function works on all methods.
5275
5276 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5277
5278         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5279         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5280         the custom_type_info flag of the transparent proxy.
5281         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5282         objects that supports IRemotingTypeInfo.
5283         * object.h: Added custom_type_info field in transparent proxy.
5284
5285 2003-12-06  Martin Baulig  <martin@ximian.com>
5286
5287         * class.c (mono_class_create_from_generic): Removed.
5288         (mono_class_from_generic): Check `ginst->klass' before doing
5289         anything else.  This is important to fully support "recursive"
5290         generic types.
5291
5292         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5293         empty `generic_inst->klass' before doing anything else.
5294
5295 2003-12-06  Dick Porter  <dick@ximian.com>
5296
5297         * verify.c: 
5298         * object.h:
5299         * icall.c:
5300         * locales.c: Use C structs to access class fields.  Don't do a
5301         conversion between MonoString and UChar because both are
5302         platform-endian UTF-16.  Compare now takes startindex and count
5303         parameters.  Add a char overload for IndexOf.  Speed up the
5304         invariant string IndexOf.
5305
5306 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5307
5308         * Makefile.am (monosn_LDADD): Fix parallel build.
5309
5310 2003-12-04  Martin Baulig  <martin@ximian.com>
5311
5312         * icall.c
5313         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5314         (ves_icall_Type_make_array_type): New interncall.       
5315
5316 2003-12-04  Martin Baulig  <martin@ximian.com>
5317
5318         * locales.c: also change it in the !HAVE_ICU case.
5319
5320 2003-12-04  Dick Porter  <dick@ximian.com>
5321
5322         * icall.c:
5323         * locales.c: construct_compareinfo is now in CompareInfo, not
5324         CultureInfo.
5325
5326 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5327
5328         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5329         image->files array.
5330
5331         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5332         table as well.
5333
5334         * assembly.c (mono_assembly_load_references): Only load references
5335         once.
5336
5337         * class.c (mono_class_from_name): Avoid linear search of the 
5338         EXPORTEDTYPE table.
5339
5340         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5341
5342 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5343
5344         * image.h (MonoImage): Add 'field_cache' field.
5345
5346         * loader.c (mono_field_from_token): Cache field lookups.
5347         
5348         * reflection.c (mono_module_get_object): Fix name property.
5349
5350         * icall.c (ves_icall_get_enum_info): Update after changes to 
5351         mono_metadata_get_constant_index ().
5352
5353         * icall.c: Get rid of get_type_info icall, use a separate icall for
5354         each type property to avoid needless memory allocations. Fixes #51514.
5355
5356         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5357         to avoid needless binary searches.
5358
5359         * class.c (class_compute_field_layout): Move the initialization of
5360         field->def_value to mono_class_vtable ().
5361
5362         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5363         non-corlib types.
5364
5365         * object.c (mono_object_allocate): Make it inline.
5366
5367         * object.c (mono_object_allocate_spec): Make it inline.
5368         
5369 2003-12-02  Dick Porter  <dick@ximian.com>
5370
5371         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5372         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5373
5374 2003-12-01  Dick Porter  <dick@ximian.com>
5375
5376         * threads.c: Fix signature and call in CreateMutex and
5377         CreateEvent.
5378
5379 2003-12-01  Dick Porter  <dick@ximian.com>
5380
5381         * icall.c: 
5382         * locales.c: Implement string compares and searching
5383
5384         * object.h: Add extra Thread field
5385
5386 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5387
5388         * reflection.c (fixup_method): Add support for MonoCMethod.
5389
5390 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5391
5392         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5393
5394         * reflection.c (assembly_name_to_aname): Allow extra characters in
5395         assembly names. Fixes #51468.
5396
5397 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5398
5399         * exception.c (mono_exception_from_name_domain): New helper function.
5400
5401         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5402         exception object in the correct domain.
5403
5404         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5405         formatting + make a copy a the input data.
5406
5407         * loader.c (mono_get_method_from_token): Methods which contain
5408         native code do not have entries in the ImplMap.
5409
5410         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5411         Thanks to Gonzalo for spotting this.
5412         
5413         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5414         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5415
5416         * assembly.h (mono_assembly_load_from): Split the second part of 
5417         assembly loading into a new public function.
5418
5419         * exception.h (mono_get_exception_bad_image_format): New function.
5420
5421 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5422
5423         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5424         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5425         
5426         * icall.c: Add new icall for creating dynamic methods.
5427
5428         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5429
5430         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5431
5432         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5433         create a dynamic method.
5434
5435         * reflection.c (resolve_object): New helper function.
5436
5437         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5438         which manipulate it so they can also work on dynamic methods.
5439
5440         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5441         creating the MonoReflectionMethodAux structure if it is not needed.
5442         
5443         * reflection.h verify.c: Update after changes to object layout.
5444
5445         * reflection.c (method_builder_encode_signature): Fix compilation on
5446         gcc 2.95.x.
5447
5448 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5449
5450         * appdomain.h: Added support for context static fields. Added static_data
5451           field to MonoAppContext and renamed thread_static_fields to a more
5452           generic special_static_fields in MonoAppDomain, since it can now contain
5453           context static fields.
5454         * domain.c: Updated hashtable name.
5455         * object.c: Replaced field_is_thread_static() for a more generic
5456           field_is_special_static() which also checks for context static attribute.
5457           In mono_class_vtable(), added support for static context fields.
5458         * threads.c: Changed methods that manage thread static fields to more
5459           generic methods so they can be reused both for thread and context static
5460           data.
5461         * threads.h: Declared some new methods.
5462
5463 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5464
5465         * reflection.h: Update after changes to the managed types.
5466
5467         * reflection.c (encode_custom_modifiers): New helper function.
5468
5469         * reflection.c (method_encode_signature): Emit custom modifiers.
5470
5471         * reflection.c (field_encode_signature): Emit custom modifiers.
5472
5473 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5474
5475         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5476
5477         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5478         implementation.
5479
5480         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5481         icall.
5482
5483         * object.c (mono_field_get_value_object): New function.
5484
5485         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5486         specific.
5487
5488 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5489
5490         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5491         return a preallocated out-of-memory exception instance.
5492
5493         * object.c (out_of_memory): Use the new function.
5494
5495         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5496         flag is before the custom modifiers. Fixes #49802.
5497
5498 2003-11-16  Martin Baulig  <martin@ximian.com>
5499
5500         * class.c (mono_class_is_open_constructed_type): Implemented the
5501         MONO_TYPE_GENERICINST case.
5502
5503 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5504
5505         * assembly.c (mono_assembly_fill_assembly_name): New function to
5506         fill out the MonoAssemblyName structure.
5507         (mono_assembly_open): Use the new function.
5508
5509         * icall.c (fill_reflection_assembly_name): New helper function.
5510
5511         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5512         new function.
5513
5514         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5515
5516 2003-11-15  Martin Baulig  <martin@ximian.com>
5517
5518         * class.c (mono_class_is_open_constructed_type): New public
5519         function; checks whether a type is an open constructed type,
5520         ie. whether it still contains type parameters.
5521         (mono_class_inflate_generic_type): If we're a type parameter and
5522         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5523         type.
5524
5525         * class.h (MonoGenericInst): Added `guint32 is_open'.
5526
5527         * loader.c (method_from_methodspec): Check whether we're an open
5528         or closed constructed type and set `ginst->is_open'.
5529
5530         * reflection.c (mono_reflection_bind_generic_parameters): Check
5531         whether we're an open or closed constructed type and set
5532         `ginst->is_open'.
5533         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5534         from open constructed types.
5535
5536 2003-11-15  Martin Baulig  <martin@ximian.com>
5537
5538         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5539         a generic instance (instead of a generic type declaration) with
5540         unbound generic parameters, bind them to our actual types.
5541
5542 2003-11-14  Martin Baulig  <martin@ximian.com>
5543
5544         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5545
5546         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5547         an interface type, populate `res->interfaces' with instantiated
5548         versions of all the interfaces we inherit.
5549
5550 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
5551
5552         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5553         when MONO_PATH is set but doesn't contain the install dir.
5554
5555 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5556
5557         * icall.c:
5558         (ves_icall_Type_GetInterfaces): don't return an interface twice when
5559         it's also implemented in base classes. Fixes bug #50927.
5560
5561 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
5562
5563         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5564         if this method is called from a finalizer. Fixes #50913.
5565
5566 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
5567
5568         * threads.c: Implement VolatileRead/VolatileWrite
5569
5570         * icall.c: Add new icalls for VolatileRead/VolatileWrite
5571
5572 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5573
5574         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
5575         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5576         2.95.3.
5577
5578         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
5579         from Peter Ross (pro@missioncriticalit.com).
5580         
5581 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
5582
5583         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5584
5585 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5586
5587         * assembly.c (mono_assembly_load_references): Disable check because it
5588         triggers on older corlibs which lots of people have.
5589
5590 2003-11-12  Jackson Harper  <jackson@ximian.com>
5591
5592         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5593         load corlib.dll if mscorlib.dll is not found.
5594         * assembly.h: Remove corlib name define.
5595         * class.c:
5596         * domain.c:
5597         * image.c: Change corlib name to mscorlib.
5598         
5599 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
5600
5601         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5602
5603 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
5604
5605         * appdomain.h: Added loader_optimization here to sync with the C#
5606         code, and add disallow_binding_redirects field.
5607
5608 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5609
5610         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5611
5612         * reflection.c (mono_image_build_metadata): Fix crash on modules
5613         with no types.
5614
5615         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5616
5617         * icall.c (ves_icall_get_method_info): Return callingConvention as
5618         well.
5619
5620         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
5621         namespaces from the EXPORTEDTYPE table as well.
5622
5623         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5624         from all modules inside the assembly.
5625         
5626 2003-11-11  Martin Baulig  <martin@ximian.com>
5627
5628         * reflection.c (mono_reflection_bind_generic_parameters): Make
5629         this work for interfaces.
5630
5631 2003-11-11  Martin Baulig  <martin@ximian.com>
5632
5633         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5634
5635 2003-11-11  Martin Baulig  <martin@ximian.com>
5636
5637         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5638         "MonoInflatedMethod" and "MonoInflatedCtor".
5639
5640 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
5641
5642         * reflection.c (resolution_scope_from_image): Use the assembly table
5643         from the manifest module, since other modules don't have it.
5644
5645         * debug-helpers.c (mono_type_full_name): New helper function.
5646
5647         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5648
5649         * image.c (mono_image_load_file_for_image): New public function which
5650         is a replacement for the load_file_for_image in class.c.
5651
5652         * assembly.c (mono_assembly_load_module): A wrapper for the function
5653         above which does assembly association and reference loading too.
5654
5655         * class.c (mono_class_from_name): Call mono_assembly_load_module.
5656
5657 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5658
5659         * appdomain.c: not all of the attributes for the full assembly name
5660         are required and the order doesn't matter. Fixes bug #50787.
5661
5662 2003-11-10  Dick Porter  <dick@ximian.com>
5663
5664         * locales.c: Use platform-endian UTF16
5665
5666 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5667
5668         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5669         
5670 2003-11-10  Martin Baulig  <martin@ximian.com>
5671
5672         * metadata.c
5673         (mono_metadata_load_generic_params): Make this actually work.
5674
5675         * reflection.c (mono_reflection_bind_generic_parameters): If our
5676         parent is a generic instance, pass all the `types' to it, no
5677         matter whether it has the same number of type parameters or not.
5678
5679 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
5680
5681         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5682
5683         * assembly.c (mono_assembly_load_references): Move the image<->assembly
5684         assignment code to this function so it gets called recursively for all
5685         modules.
5686
5687         * image.c (load_modules): Remove the assembly assignment since it is
5688         now done by mono_assembly_load_references.
5689         
5690         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5691         Add 'module' argument.
5692         (mono_module_get_types): New helper function.
5693         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
5694
5695 2003-11-08  Martin Baulig  <martin@ximian.com>
5696
5697         * class.c (mono_class_inflate_generic_method): Interface method
5698         don't have a header.
5699
5700         * reflection.c (mono_image_get_methodspec_token): Take an
5701         additional `MonoGenericInst *' argument instead of reading it from
5702         the header; this is necessary to support interfaces.
5703         (mono_image_create_token): Pass the `MonoGenericInst *' from the
5704         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
5705         (inflated_method_get_object): Take an additional `MonoGenericInst *'
5706         argument.
5707
5708         * reflection.h (MonoReflectionInflatedMethod): Added
5709         `MonoGenericInst *ginst'.
5710
5711 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
5712
5713         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
5714
5715 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
5716
5717         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
5718
5719 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
5720
5721         * reflection.c 
5722         (reflection_methodbuilder_from_method_builder):
5723         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
5724         initialize a ReflectionMethodBuilder structure.
5725         (mono_image_get_methodbuilder_token):
5726         (mono_image_get_ctorbuilder_token): New functions to emit memberref
5727         tokens which point to types in another module inside the same assembly.
5728
5729         * reflection.c: Use the new helper functions.
5730         
5731         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
5732
5733         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
5734         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
5735
5736         * reflection.c (resolution_scope_from_image): Emit a moduleref if
5737         neccesary.
5738
5739         * reflection.c (mono_image_build_metadata): Emit metadata only for the
5740         current module. Emit the manifest only for the main module.
5741
5742         * reflection.c (mono_image_create_token): Add assertion when a 
5743         memberref needs to be created.
5744
5745         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
5746
5747         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
5748         larger buffer for the custom attribute blob. Fixes #50637.
5749         
5750 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5751
5752         * threadpool.c: notify listener on async processing handles after
5753         invoking the async callback. Thanks to Zoltan.
5754
5755 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5756
5757         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
5758         avoid code duplication.
5759
5760         * reflection.h (MonoDynamicImage): New type which is currently unused,
5761         but will be used through the ref.emit code in place of 
5762         MonoDynamicAssembly.
5763
5764         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5765         object layout.
5766
5767         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
5768         a MonoDynamicImage instead of just a MonoImage.
5769         
5770         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
5771         icalls to ModuleBuilder but keep their semantics, so they will work
5772         with moduleb->assemblyb. This will change later.
5773         
5774 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5775
5776         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5777         object layout.
5778
5779         * reflection.c (mono_image_build_metadata): Avoid creation of a default
5780         main module, since it is now done by the managed code.
5781
5782 2003-11-03  Martin Baulig  <martin@ximian.com>
5783
5784         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
5785         `ginst->klass' here.
5786         (method_encode_methodspec): Don't use the `ginst->generic_method's
5787         klass if it's a generic instance, use `ginst->klass' in this case.
5788
5789 2003-11-03  Martin Baulig  <martin@ximian.com>
5790
5791         * reflection.c (mono_image_get_generic_method_param_info):
5792         Removed, use mono_image_get_generic_param_info() instead.
5793         (mono_image_get_type_info): Write the GenericParam table before
5794         the Method table.  This is neccessary because in the GenericParam
5795         table, type parameters of the class (ie. '!0' etc.) must come
5796         before the ones from its generic methods (ie. '!!0' etc).
5797
5798 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
5799
5800         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
5801
5802 2003-11-02  Martin Baulig  <martin@ximian.com>
5803
5804         * reflection.c (create_generic_typespec): Take a
5805         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
5806         the generic parameters from it.
5807
5808 2003-11-02  Martin Baulig  <martin@ximian.com>
5809
5810         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
5811         instead of a `MonoClassField *' since we just need the type.
5812         (create_generic_typespec): New static function.  Creates a
5813         TypeSpec token for a generic type declaration.
5814         (mono_image_get_generic_field_token): New static function.
5815         (mono_image_create_token): If we're a FieldBuilder in a generic
5816         type declaration, call mono_image_get_generic_field_token() to get
5817         the token.
5818
5819 2003-11-02  Martin Baulig  <martin@ximian.com>
5820
5821         * reflection.h
5822         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
5823         `MonoReflectionGenericInst *declaring_type' and
5824         `MonoReflectionGenericInst *reflected_type' fields.
5825
5826         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
5827         `MonoReflectionGenericInst *declaring_type' and a
5828         `MonoReflectionGenericInst *reflected_type' argument instead of a
5829         single `MonoReflectionGenericInst *type' one.  Set
5830         `res->declaring_type' and `res->reflected_type' from them.
5831         (mono_reflection_inflate_field): Likewise.      
5832
5833 2003-11-02  Martin Baulig  <martin@ximian.com>
5834
5835         * class.c (mono_class_setup_vtable): Don't store generic methods
5836         in the vtable.  
5837
5838 2003-11-02  Martin Baulig  <martin@ximian.com>
5839
5840         * reflection.h (MonoReflectionGenericInst): Added
5841         `MonoReflectionType *declaring_type'.
5842
5843         * reflection.c (mono_reflection_bind_generic_parameters): Use
5844         `if (tb->parent)' instead of `klass->parent'.
5845
5846 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
5847
5848         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
5849         with an empty ASSEMBLY table.
5850
5851         * reflection.c (mono_image_build_metadata): Avoid using the same loop
5852         variable in the inner and outer loops.
5853
5854 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
5855
5856         * metadata.h (mono_metadata_make_token): Put parentheses around macro
5857         argument.
5858
5859         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
5860         
5861         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
5862         icalls. Instead, do everything in managed code. This is needed since
5863         it is hard to restore the original domain etc. in unmanaged code in the
5864         presence of undeniable exceptions.
5865
5866         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
5867         New icalls to push and pop appdomain refs.
5868
5869 2003-10-31  Martin Baulig  <martin@ximian.com>
5870
5871         * class.c (inflate_generic_type): Renamed to
5872         mono_class_inflate_generic_type() and made it public.
5873
5874         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
5875         New interncall.
5876
5877         * loader.c (mono_field_from_memberref): Also set the retklass for
5878         typespecs.
5879
5880         * fielder.c (mono_image_get_inflated_field_token): New static
5881         method; creates a metadata token for an inflated field.
5882         (mono_image_create_token, fixup_method): Added support for
5883         "MonoInflatedField".
5884         (fieldbuilder_to_mono_class_field): New static function.
5885         (mono_reflection_inflate_field): New public function.
5886
5887         * reflection.h
5888         (MonoReflectionGenericInst): Added `MonoArray *fields'.
5889         (MonoReflectionInflatedField): New typedef.     
5890
5891 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
5892
5893         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
5894         for Solaris and other platforms without s6_addr16
5895
5896 2003-10-30  Martin Baulig  <martin@ximian.com>
5897
5898         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
5899         argument instead of two.
5900         (mono_class_inflate_generic_signature): Likewise.
5901         (inflate_generic_header): Likewise.
5902         (mono_class_inflate_generic_method): Likewise.  In addition, if
5903         `ginst->klass' is set, it becomes the new `method->klass'.
5904
5905         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
5906         field.
5907
5908         * reflection.c (encode_generic_method_sig): Write a 0xa as the
5909         first byte. [FIXME]
5910         (method_encode_methodspec): If we have generic parameters, create
5911         a MethodSpec instead of a MethodRef.
5912         (fixup_method): Added support for "MonoInflatedMethod" and
5913         "MonoInflatedCtor".
5914         (mono_image_create_token): Added support for "MonoInflatedMethod"
5915         and "MonoInflatedCtor".
5916         (inflated_method_get_object): New static function; returns a
5917         managed "System.Reflection.MonoInflatedMethod" object.
5918         (mono_reflection_bind_generic_method_parameters): Return a
5919         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
5920         (mono_reflection_inflate_method_or_ctor): Likewise.
5921         (mono_image_get_generic_method_param_info): Initialize unused
5922         fields to zero.
5923         (mono_image_get_generic_param_info): Likewise.
5924
5925         * reflection.h (MonoReflectionInflatedMethod): New public
5926         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
5927         "S.R.MonoInflatedCtor" classes.
5928
5929         * loader.c (method_from_memberref): If we're a TypeSpec and it
5930         resolves to a generic instance, inflate the method.
5931
5932 2003-10-28  Dick Porter  <dick@ximian.com>
5933
5934         * object.c (mono_runtime_run_main): Convert command-line arguments
5935         into utf8, falling back to the user's locale encoding to do so.
5936
5937 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
5938
5939         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
5940         at this time.
5941
5942         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
5943
5944         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
5945         up icalls at method definition time. Partially fixes #33569.
5946
5947 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
5948
5949         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
5950         marshalling of arrays. Fixes #50116.
5951
5952         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
5953
5954         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
5955         points to a vtable in the dying appdomain.
5956
5957         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
5958         listeners into unmanaged code inside the lock.
5959
5960         * object.c (mono_class_vtable): Turn off typed allocation in non-root
5961         domains and add some comments.
5962
5963 2003-10-25  Martin Baulig  <martin@ximian.com>
5964
5965         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
5966
5967         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
5968
5969         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
5970         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
5971         currently parsing.  Create the generic class and store it in
5972         `generic_inst->klass' before parsing the type arguments.  This is
5973         required to support "recursive" definitions; see mcs/tests/gen-23.cs
5974         for an example.
5975         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
5976         to support recursive typespec entries.
5977
5978         * class.c (mono_class_setup_parent): If our parent is a generic
5979         instance, we may get called before it has its name set.
5980         (mono_class_from_generic): Splitted into
5981         mono_class_create_from_generic() and mono_class_initialize_generic().
5982
5983 2003-10-25  Martin Baulig  <martin@ximian.com>
5984
5985         * icall.c (ves_icall_Type_BindGenericParameters): Return a
5986         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
5987         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
5988         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
5989
5990         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
5991         (create_typespec): Likewise.
5992         (mono_reflection_bind_generic_parameters): Return a
5993         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
5994         (mono_reflection_inflate_method_or_ctor): New public function.
5995
5996         * reflection.h (MonoReflectionGenericInst): New typedef.        
5997
5998 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
5999
6000         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6001         inside the domain lock. Fixes #49993.
6002         
6003         * object.c (mono_class_vtable): When typed allocation is used, 
6004         allocate vtables in the GC heap instead of in the mempool, since the
6005         vtables contain GC descriptors which are used by the collector even
6006         after the domain owning the mempool is unloaded.
6007
6008         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6009
6010         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6011         reflect what it does. Also invalidate mempools instead of freeing
6012         them if a define is set.
6013
6014         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6015         of the appdomain.
6016         
6017         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6018         hold the finalizable objects in this domain.
6019
6020         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6021         appdomain.
6022
6023         * appdomain.c (mono_domain_set): New function to set the current
6024         appdomain, but only if it is not being unloaded.
6025
6026         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6027         appdomain which is being unloaded.
6028         
6029         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6030         unloading of the root appdomain.
6031
6032         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6033         icall to execute a method in another appdomain. Intended as a 
6034         replacement for InternalSetDomain, which can confuse the code 
6035         generation in the JIT.
6036
6037         * appdomain.c (mono_domain_is_unloading): New function to determine
6038         whenever an appdomain is unloading.
6039
6040         * appdomain.c (mono_domain_unload): New function to correctly unload
6041         an appdomain.
6042
6043         * assembly.c (mono_assembly_load_references): Check that an assembly
6044         does not references itself.
6045
6046         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6047         domain manually, it asks the finalizer thread to do it, then waits for
6048         the result. Also added a timeout.
6049
6050         * icall.c: Register the new icalls.
6051
6052         * threads.h threads.c: Export the mono_gc_stop_world and 
6053         mono_gc_start_world functions.
6054         
6055         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6056         function to fill out the mempool with 0x2a.
6057
6058 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6059
6060         * reflection.h (MonoReflectionMethodAux): New structure to store
6061         information which is rarely used, thus is not in the MonoMethod
6062         structure.
6063
6064         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6065         store the aux info.
6066
6067         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6068         and marshalling info into the aux structure.
6069
6070         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6071         from the aux structure.
6072
6073         * loader.c (mono_method_get_param_names): Retrieve the param names from
6074         the aux structure.
6075         
6076 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6077
6078         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6079         warning.
6080
6081 2003-10-21  Dick Porter  <dick@ximian.com>
6082
6083         * socket-io.c
6084         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6085         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6086
6087 2003-10-21  Martin Baulig  <martin@ximian.com>
6088
6089         * reflection.c (mono_reflection_bind_generic_parameters):
6090         `klass->parent' is NULL for interfaces.
6091
6092 2003-10-21  Martin Baulig  <martin@ximian.com>
6093
6094         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6095
6096 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6097
6098         * exception.c (mono_exception_from_name_msg): New helper function for
6099         creating exceptions and initializing their message field.
6100
6101         * exception.c: Simplify functions using the new helper.
6102
6103         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6104         New function.
6105
6106         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6107         mono_raise_exception, since otherwise gcc doesn't generate the function
6108         epilog for raise_exception, confusing the stack unwinding in the JIT.
6109         Fixes #45043.
6110
6111         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6112         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6113         Fixes #49499.
6114
6115 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6116
6117         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6118         utf8.
6119
6120 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6121
6122         * icall.c: Removed GetUninitializedObject method because
6123           AllocateUninitializedClassInstance does the same.
6124
6125 2003-10-18  Martin Baulig  <martin@ximian.com>
6126
6127         * class.c (inflate_generic_signature): Renamed to
6128         mono_class_inflate_generic_signature() and made it public.
6129         (my_mono_class_from_generic_parameter): New static function; if we
6130         don't already have the generic parameter's MonoClass, create a
6131         very simple one which is just used internally in the runtime and
6132         not passed back to managed code.
6133
6134         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6135
6136         * metadata.h (MonoMethodSignature): Moved the
6137         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6138         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6139
6140         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6141         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6142         interncall on the MonoMethod class, not on MethodInfo.
6143         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6144         calling mono_reflection_bind_generic_method_parameters() directly.
6145
6146         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6147         return the already computed `method->signature'.
6148         (method_from_methodspec): New static function to load a method
6149         from a MethodSpec entry.
6150         (mono_get_method_from_token): Call the new method_from_methodspec()
6151         for MethodSpec tokens.  
6152         (mono_get_method_from_token): If we're a generic method, load the
6153         type parameters.
6154
6155         * reflection.c (mono_image_get_memberref_token): Allow
6156         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6157         table.
6158         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6159         (mono_image_create_token): First check whether it's a generic
6160         method (so we'd need to create a MethodSpec), then do the other
6161         two alternatives.
6162         (mono_reflection_bind_generic_method_parameters): Return a
6163         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6164         called directly from the interncall.
6165
6166 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6167
6168         * reflection.c (load_public_key): Move loading of the public key
6169         into managed code.
6170
6171         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6172
6173         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6174         fields.
6175
6176         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6177         culture, hash_alg and public_key. Fixes #49555.
6178
6179 2003-10-17  Martin Baulig  <martin@ximian.com>
6180
6181         * class.h (MonoGenericInst): Moved this declaration here and added
6182         `MonoMethod *generic_method'.
6183
6184         * icall.c
6185         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6186         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6187
6188         * metadata.c (mono_metadata_type_equal): Two types of
6189         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6190         index; ie. don't compare the address of the `MonoGenericParam'
6191         structure.
6192         (mono_metadata_load_generic_params): Removed the `MonoMethod
6193         *method' argument.
6194
6195         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6196         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6197
6198         * reflection.c (method_encode_signature): Encode the number of
6199         generic parameters.
6200         (encode_generic_method_sig): New static function.
6201         (method_encode_methodspec): New static function; creates an entry
6202         in the MethodSpec table for a generic method.
6203         (mono_image_get_methodspec_token): New static function.
6204         (mono_image_create_token): Call mono_image_get_methodspec_token()
6205         for generic methods.
6206         (mono_reflection_bind_generic_method_parameters): New public
6207         function.  Instantiates a generic method.
6208
6209 2003-10-16  Martin Baulig  <martin@ximian.com>
6210
6211         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6212         *gen_params' here from MonoMethodHeader.
6213
6214         * metadata.c (mono_metadata_parse_method_signature): If we have
6215         generic parameters, initialize `method->gen_params' and then set
6216         the correct `type->data.generic_param' in all the parameters.
6217
6218 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6219
6220         * threads.c (mono_threads_get_default_stacksize): New function to 
6221         return the default stacksize.
6222
6223         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6224         termination of the finalizer thread, since the previous method had
6225         race conditions. Fixes #49628.
6226
6227         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6228         as for the other managed threads.
6229
6230 2003-10-16  Martin Baulig  <martin@ximian.com>
6231
6232         * class.c (inflate_generic_signature): Copy `generic_param_count'
6233         and `gen_params'.
6234
6235         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6236         New interncall.
6237
6238         * metadata.c (mono_metadata_parse_method_signature): Actually set
6239         the `method->generic_param_count' here.
6240         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6241
6242 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6243
6244         * object.h: Add a new field to TypedRef to simplify the implementation
6245         of the REFANY opcodes in the JIT.
6246
6247         * icall.c: Make use of the new field.
6248
6249         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6250         dynamically.
6251
6252 2003-10-15  Martin Baulig  <martin@ximian.com>
6253
6254         * class.c (mono_class_from_gen_param): Renamed to
6255         mono_class_from_generic_parameter() and moved most of the
6256         functionality from mono_reflection_define_generic_parameter()
6257         here; ie. we create a "real" class here.
6258         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6259         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6260         previously been called.
6261
6262         * class.h (MonoGenericParam): Moved the declaration of this struct
6263         here from metadata.h and added `MonoMethod *method'.
6264
6265         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6266         interncall.
6267
6268         * loader.c (mono_get_method_from_token): If we have any generic
6269         parameters, call mono_metadata_load_generic_params() to read them
6270         from the MONO_TABLE_GENERICPAR.
6271
6272         * metadata.c (mono_metadata_load_generic_params): Added
6273         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6274
6275         * metadata.h (MonoMethodSignature): Replaced
6276         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6277         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6278
6279         * reflection.c (mono_reflection_define_generic_parameter): Moved
6280         most of the functionality into the new
6281         mono_class_from_generic_parameter(); set the `method' field if
6282         we're a method parameter.       
6283
6284 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6285
6286         * marshal.c (emit_struct_conv): if native size is 0
6287         emit no code.
6288
6289 2003-10-14  Martin Baulig  <martin@ximian.com>
6290
6291         * icall.c: The generics API has changed in the spec since it was
6292         added to System.Type; these modifications make it match the spec
6293         again.
6294         (ves_icall_Type_GetGenericParameters): Renamed to
6295         `ves_icall_Type_GetGenericArguments'.
6296         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6297         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6298         `ves_icall_MonoType_get_HasGenericArguments'.
6299         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6300         `ves_icall_MonoType_get_IsGenericParameter'.
6301         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6302         this is no interncall anymore.
6303         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6304         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6305
6306 2003-10-14  Martin Baulig  <martin@ximian.com>
6307
6308         * reflection.c (mono_reflection_bind_generic_parameters): Also
6309         inflate generic methods if we're reading the class from IL.
6310
6311 2003-10-13  Martin Baulig  <martin@ximian.com>
6312
6313         * reflection.c (mono_reflection_define_generic_parameter): This
6314         method isn't called directly from the icall anymore; take a
6315         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6316         method generic parameters.
6317         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6318         (method_builder_encode_signature): Encode generic parameters.
6319         (mono_image_get_method_info): Write generic params to the
6320         MONO_TABLE_GENERICPARAM table.
6321
6322         * reflection.h (MonoReflectionMethodBuilder): Added
6323         `MonoArray *generic_params'.
6324
6325         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6326
6327         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6328         wrapper for mono_reflection_define_generic_parameter().
6329         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6330
6331 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6332
6333         * marshal.h: Add missing function to fix build.
6334
6335         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6336         the SetLastError pinvoke attribute.
6337
6338         * marshal.c (mono_marshal_set_last_error): New helper function called
6339         by the generated code.
6340         
6341         * marshal.c (mono_mb_emit_branch): New helper function.
6342
6343         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6344
6345         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6346         classes as parameters and return values of delegates. Fixes #29256. 
6347
6348 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6349
6350         * locales.c: use gint32 in non HAVE_ICU case
6351
6352 2003-10-11  Martin Baulig  <martin@ximian.com>
6353
6354         * mono-debug.c (mono_debug_add_method): Added a workaround for
6355         bug #48591.
6356
6357 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6358
6359         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6360         delegates passed to native code must use the STDCALL calling 
6361         convention. Fixes #35987.
6362
6363 2003-10-10  Martin Baulig  <martin@ximian.com>
6364
6365         * class.c (inflate_generic_type): If we're inflating for a generic
6366         type instance (and not for a generic method), return
6367         MONO_TYPE_MVAR unchanged.
6368
6369 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6370
6371         * string-icalls.c: Join ignores null strings in the source array.
6372         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6373         * threads.c: GetAvailableTheads is slightly more accurate.
6374
6375 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6376
6377         * threads.h threads.c : add mono_threads_set_default_stacksize
6378         and pass default to CreateThread calls.
6379
6380 2003-10-09  Dick Porter  <dick@ximian.com>
6381
6382         * icall.c:
6383         * locales.h:
6384         * locales.c: Internal calls for constructing CultureInfo and
6385         related objects from libicu (if its available.)
6386
6387 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6388
6389         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6390
6391 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6392
6393         * threadpool.c: added an argument to async_invoke_thread that is the
6394         item to process, pass the MonoAsyncResult to the thread start function
6395         when creating a new thread. This way we don't need to acquire any lock
6396         when we're creating a new thread. Readded a semaphore for faster
6397         response times (instead of that Sleep i added).
6398
6399 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6400
6401         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6402         get daylight change dates better on Windows, fix handling
6403         of platforms without tm_gmtoff.
6404
6405 2003-10-06  Martin Baulig  <martin@ximian.com>
6406
6407         * class.c (inflate_generic_method): Renamed to
6408         mono_class_inflate_generic_method() and made public.
6409         (mono_class_init): Don't inflate the generic methods here.
6410         (mono_class_from_generic): Added `gboolean inflate_methods'
6411         argument.  Inflate the methods here.
6412
6413         * loader.c (mono_method_get_param_names): Ignore instances of
6414         generic types for the moment.
6415
6416         * reflection.c (fixup_method): Added support for inflated methods.
6417         (mono_image_create_token): Use mono_image_get_methodref_token()
6418         for inflated methods.
6419         (mono_custom_attrs_from_param): Ignore instances of generic types
6420         for the moment.
6421         (mono_reflection_bind_generic_parameters): New public function.
6422         Moved all the functionality from
6423         ves_icall_Type_BindGenericParameters() here and added support for
6424         dynamic types.
6425         (mono_reflection_define_generic_parameter): Initialize
6426         `klass->methods' here.
6427
6428         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6429         functionality into mono_reflection_define_generic_parameter().
6430         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6431         TypeBuilder, return that TypeBuilder.
6432
6433 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6434
6435         * appdomain.c: removed mono_delegate_semaphore.
6436
6437         * threadpool.c:
6438         (mono_thread_pool_add): moved hash table creation inside and the thread 
6439         creation outside of the critical region.
6440         (mono_thread_pool_finish): removed obsolete code.
6441         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6442         continue or exit the thread depending on the queue.
6443
6444 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6445
6446         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6447         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6448         handle more bool marshalling options
6449
6450 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6451
6452         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6453         arrays of structs. Also add a more descriptive error message when
6454         a structure member is marshalled as LPArray.
6455
6456 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6457
6458         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6459         marshalling arrays of complex types. Fixes #29098. Also remove an
6460         usused and incomplete function.
6461
6462 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6463
6464         * gc.c: report heap_size - free_bytes as total memory allocated
6465         (bug#49362).
6466
6467 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6468
6469         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6470         fix timezone handling problems on Windows.
6471         
6472         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6473         asserts when the year is outside the range handled by ms the functions.
6474
6475         * class.c (setup_interface_offsets): If the class is an interface,
6476         fill out its interface_offsets slot.
6477
6478 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6479
6480         * threadpool.c: mark threadpool threads as background.
6481
6482 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6483
6484         * decimal.c - define DECINLINE to nothing if not using GCC
6485
6486 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6487
6488         * assembly.c: More refcount fixes.
6489
6490 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6491
6492         * string-icalls.c: if we're not trimming, return the same string.
6493         When not splitting, don't create a new string.
6494
6495 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6496
6497         * image.c:
6498         (mono_image_open): increment the ref_count inside the critical section.
6499
6500 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6501
6502         * image.c (mono_image_open): Fix reference counting bug.
6503
6504 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6505
6506         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6507         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6508         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6509         mono_lookup_pinvoke_call throws.        
6510
6511 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6512
6513         * reflection.c (mono_reflection_parse_type): Fix #49114.
6514
6515         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6516         temporary workaround for cygwin header problem.
6517
6518         * object.c (mono_object_isinst): Synchronize this with the code
6519         generated by the JIT for casts.
6520
6521 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6522
6523         * reflection.c (encode_type): Fix #38332.
6524
6525 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6526
6527         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6528         the original method from the wrapper method.
6529
6530 2003-09-25  Martin Baulig  <martin@ximian.com>
6531
6532         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6533         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6534         (ves_icall_Type_get_IsGenericInstance): New interncall.
6535
6536 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6537
6538         * object.c: fix cast warning in big endian code.
6539
6540 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6541
6542         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6543         
6544 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6545
6546         * assembly.c: don't call check_env from mono_assembly_load. It's
6547         already done once in mono_assemblies_init and may cause headaches when
6548         multiple threads are loading assemblies.
6549
6550 2003-09-19  Martin Baulig  <martin@ximian.com>
6551
6552         * reflection.c (mono_reflection_define_generic_parameter): Don't
6553         allocate `klass->methods', set `klass->flags' to
6554         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6555
6556 2003-09-18  Martin Baulig  <martin@ximian.com>
6557
6558         * class.c (mono_class_init): Don't create `class->methods' if it's
6559         already initialized.
6560
6561         * metadata.c (mono_metadata_load_generic_params): Make this
6562         actually work.
6563
6564         * reflection.c (mono_reflection_define_generic_parameter): Set
6565         parent class and interfaces from the constraints.
6566
6567         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6568         to keep this struct in sync with the declaration in TypeBuilder.cs.
6569
6570 2003-09-17  Martin Baulig  <martin@ximian.com>
6571
6572         * metadata.h (MonoType): Replaced the data's `int type_param'
6573         field with `MonoGenericParam *generic_param'.
6574         (MonoGenericParam): Added `MonoClass *klass'.
6575
6576         * class.c (mono_class_from_gen_param): Removed the
6577         `MonoImage *image' and `int type_num' arguments.
6578
6579         * metadata.c (mono_metadata_parse_generic_param): New static
6580         method; creates a MonoGenericParam which just contains the index.
6581         (do_mono_metadata_parse_type): Call
6582         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6583         MONO_TYPE_MVAR.
6584
6585         * reflection.c (mono_image_typedef_or_ref): Generic type
6586         parameters may be in the same assembly, but never use a typedef
6587         for them.
6588         (mono_reflection_define_generic_parameter): We're now creating a
6589         "real" class for the type parameter; it's now safe to call
6590         mono_class_from_mono_type() on the class'es type, it'll do the
6591         right thing.
6592
6593 2003-09-16  Martin Baulig  <martin@ximian.com>
6594
6595         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6596         `symfile->range_entry_size' and `symfile->class_entry_size' here;
6597         the `symfile' data structure must be fully initialized before it
6598         gets added to the table.
6599
6600 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
6601
6602         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6603
6604         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6605         class init trampolines.
6606
6607 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
6608
6609         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6610         to the built-in profiler to turn off time and allocation profiling
6611         respectively.
6612
6613 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
6614
6615         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6616         g_direct_equal.
6617
6618         * debug-helpers.c (mono_method_full_name): Print the wrapper type
6619         in human readable form.
6620
6621 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
6622
6623         * reflection.c icall.c: Fixed warnings.
6624
6625         * image.c (load_class_names): Use a temporary hash table to hold the
6626         namespaces in order to avoid doing many string comparisons.
6627
6628         * image.h: Fix typo.
6629
6630         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6631         Pass NULL instead of g_direct_equal to the GHashTable constructor 
6632         since the NULL case is short-circuited inside g_hash_table_lookup, 
6633         leading to better performance.  
6634
6635         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6636         obtain the first custom attribute for a given index. Depends on the
6637         CustomAttribute table being sorted by the parent field.
6638
6639         * reflection.c (mono_custom_attrs_from_index): Use the new function 
6640         for better performance.
6641
6642 2003-09-07  Martin Baulig  <martin@ximian.com>
6643
6644         * class.c (mono_class_init): If we're a generic instance, inflate
6645         all our methods instead of loading them from the image.
6646         (mono_class_from_generic): Set `class->methods = gklass->methods'.
6647
6648 2003-09-07  Martin Baulig  <martin@ximian.com>
6649
6650         * mono-debug-debugger.c: Added support for constructors.
6651
6652 2003-09-06  Martin Baulig  <martin@ximian.com>
6653
6654         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6655         New interncall.
6656
6657         * reflection.c (mono_reflection_setup_generic_class): Call
6658         ensure_runtime_vtable() to create the vtable.
6659
6660 2003-09-05  Martin Baulig  <martin@ximian.com>
6661
6662         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6663         MONO_TYPE_MVAR.
6664
6665 2003-09-04  Martin Baulig  <martin@ximian.com>
6666
6667         * reflection.c (mono_reflection_define_generic_parameter): Generic
6668         parameters start with zero.
6669
6670 2003-09-04  Martin Baulig  <martin@ximian.com>
6671
6672         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6673
6674         * reflection.h (MonoReflectionGenericParam): New typedef.
6675         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
6676         the generic parameters from the managed TypeBuilder.
6677
6678         * reflection.c (mono_reflection_define_generic_parameter): New function.
6679         (mono_reflection_create_runtime_class): Encode generic parameters.
6680         (mono_reflection_setup_generic_class): New function; this is
6681         called after adding adding all generic params to the TypeBuilder.
6682         (encode_type): Added MONO_TYPE_VAR.
6683
6684 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
6685
6686         * class.h class.c (mono_class_needs_cctor_run): Moved this method
6687         here from the JIT.
6688
6689         * assembly.h assembly.c: Moved the AOT loading code into an assembly
6690         load hook.
6691
6692 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
6693
6694         * reflection.h reflection.c class.h class.c: Delete duplicate 
6695         definition of mono_type_get_name () from reflection.c and export the
6696         one in class.c.
6697
6698         * class.c: Class loading fixes from Bernie Solomon 
6699         (bernard@ugsolutions.com).
6700
6701         * reflection.c: Endianness fixes from Bernie Solomon 
6702         (bernard@ugsolutions.com).
6703         
6704 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
6705
6706         * assembly.h assembly.c: Define a file format version for AOT
6707         libraries.
6708         
6709         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
6710
6711         * appdomain.h (MonoJitInfo): New field to determine whenever the
6712         code is domain neutral.
6713         
6714 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
6715
6716         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
6717
6718 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
6719
6720         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
6721         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
6722         Avoid caching the result since strings must be domain specific. Fixes
6723         #48050.
6724
6725 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
6726
6727         * marshal.c (mono_marshal_init): Make this callable multiple times
6728         since it is hard to find a correct place to call it.
6729
6730         * object.c (mono_runtime_class_init): Execute static constructors in
6731         the correct appdomain.
6732
6733         * image.c (build_guid_table): Handle the case when multiple images have
6734         the same GUID.
6735
6736 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6737
6738         * icall.c: added a couple of icalls for System.Web.
6739
6740 2003-08-28  Martin Baulig  <martin@ximian.com>
6741
6742         * icall.c (ves_icall_Type_BindGenericParameters): Use
6743         `klass->generic_inst' instead of `&klass->byval_arg' in the
6744         mono_type_get_object() call.  The returned type must be
6745         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
6746
6747 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
6748
6749         * NOTES: New file.
6750
6751         * object.c (mono_class_proxy_vtable): Make it thread safe.
6752
6753         * pedump.c: Fix warning.
6754
6755         * object.c appdomain.h: Get rid of metadata_section. 
6756         It is no longer needed and it was causing deadlocks with domain->lock.
6757
6758         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
6759
6760 2003-08-26  Martin Baulig  <martin@ximian.com>
6761
6762         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
6763
6764 2003-08-26  Martin Baulig  <martin@ximian.com>
6765
6766         * pedump.c (main): Call mono_metadata_init(),
6767         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
6768         and mono_loader_init().
6769
6770 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
6771
6772         * loader.h: Add missing include to fix build.
6773
6774         * image.h: mono_image_load_references is no more.
6775
6776         * assembly.c: Reworked assembly loading to make it really thread safe.
6777         After these changes, the assembly returned by mono_assembly_open is
6778         fully initialized, i.e. all its references assemblies are loaded.
6779
6780         * assembly.c (mono_image_load_references): Renamed to 
6781         mono_assembly_load_references, and made private, since clients no
6782         longer need to call it.
6783
6784         * class.c: Removed calls to mono_assembly_load_references, since it was
6785         a source of deadlocks.
6786
6787         * loader.h loader.c class.h class.c: Protect data structures using a 
6788         new lock, the loader lock.
6789
6790         * class.c (mono_class_setup_vtable): Create temporary hash tables and
6791         GPtrArrays only when needed.
6792
6793         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
6794         into empty structures by mcs. Fixes pinvoke7.cs.
6795         
6796         * domain.c (mono_init): Call a new initialization function.
6797
6798         * appdomain.c (mono_runtime_init): Call the new initializer function
6799         of the marshal module.
6800
6801         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
6802         inserted into empty structures by mcs. Fixes pinvoke7.cs.
6803
6804         * marshal.h marshal.c: Added locks around the wrapper caches to make
6805         this module thread safe.
6806
6807         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
6808         this argument. Fixes pinvoke1.exe.
6809
6810 2003-08-25  Lluis Sanchez <lluis@ximian.com>
6811
6812         * object.h: Added call_type field to MonoMethodMessage and the corresponding
6813         enumeration of values. Removed fields to store remote call output values in
6814         MonoAsyncResult. Not needed any more.
6815         * object.c: Initialize call_type and async_result fields in mono_message_init.
6816         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
6817         dispatching the message.
6818         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
6819         async call to finish. To do it use a message with EndInvoke call type.
6820
6821 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
6822
6823         * loader.h loader.c (mono_method_hash_marhal_info): New function which
6824         determines whenever a method has marshalling info.
6825
6826 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6827
6828         * assembly.c: fix the build on windows.
6829
6830 2003-08-22 Lluis Sanchez <lluis@ximian.com>
6831
6832         * object.cs: Fixed bug #47785.
6833
6834 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
6835
6836         * string-icalls.c (StringReplace): If their are no occurances of
6837         the old string found return a reference to the supplied
6838         string. This saves some memory and matches MS behavoir.
6839         
6840 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6841
6842         * socket-io.c: fixed compilation for systems that define AF_INET6
6843         and don't define SOL_IP/SOL_IPV6.
6844
6845 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
6846
6847         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
6848         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
6849
6850         * rawbuffer.c rawbuffer.h: Make this module thread safe.
6851
6852         * domain.c: Make this module thread safe.
6853
6854         * domain.c (mono_init): Call new initialization function.
6855
6856         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
6857         reference types too. Fixes #38812.
6858
6859         * image.c (mono_image_init): Fixed warnings.
6860
6861         * class.c (mono_class_from_typeref): Handle assembly load failure
6862         correctly.
6863
6864         * appdomain.c (add_assemblies_to_domain): Handle the case when
6865         the references of an assembly are not yet loaded.
6866
6867         * metadata.c image.c assembly.c: Moved initialization of global
6868         variables to a separate function called at startup since lazy 
6869         initialization of these variables is not thread safe.
6870         
6871         * image.c assembly.c: Made this module thread safe by adding locks in 
6872         the appropriate places.
6873
6874         * domain.c (mono_init): Call the new initialization functions of the
6875         three modules.
6876
6877 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
6878
6879         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
6880           make a direct call. It is proxy's work to make the call asynchronous.
6881           mono_delegate_end_invoke(): If the targe is a proxy, just collect
6882           the return values.
6883         * object.cs: mono_method_call_message_new(): read AsyncResult and
6884           state object from parameters list, if this info is requested.
6885         * object.h: Added fields to store remote call output values in
6886           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
6887
6888 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
6889
6890         * object.h: add needed fields to MonoThread.
6891         * threads.c, threads.h: allow registering a function to cleanup data
6892         allocated per thread by the JIT.
6893
6894 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6895
6896         * loader.h: portability fix by Bernie Solomon
6897         * <bernard@ugsolutions.com>.
6898
6899 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
6900
6901         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
6902         return a MonoArray. This simplifies the code and also ensures that
6903         the cache allways contains an object reference as a value.
6904
6905         * icall.c (ves_icall_get_parameter_info): Simplified using the new
6906         function.
6907
6908 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6909
6910         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
6911         fixes a problem with byte ordering when getting the address family for
6912         a socket.
6913
6914 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
6915
6916         * .cvsignore: Added monosn.
6917
6918         * reflection.h reflection.c loader.c: Added support for parameter
6919         marshalling to dynamically created types. Fixes #47295.
6920
6921 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
6922
6923         * rand.c: remove useless warnings.
6924
6925 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
6926
6927         * class.c: implemented ldtoken for methods and fieldrefs.
6928
6929 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6930
6931         * threadpool.c: when mono_async_invoke was called, no one took care of
6932         monitoring the queue. So if the method invoked took some time and we
6933         got new async invoke requests after 500 ms (the thread created waited
6934         that long in WaitForSingleObject), the new async invoke was not called
6935         until the previous one finished.
6936
6937         This is fixed now. Thanks to Totte for helping with it.
6938
6939 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6940
6941         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
6942
6943 2003-08-11  Martin Baulig  <martin@ximian.com>
6944
6945         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
6946
6947 2003-08-06  Martin Baulig  <martin@ximian.com>
6948
6949         * mono-debug-debugger.c: Added support for static fields,
6950         properties and methods.
6951
6952 2003-08-06  Martin Baulig  <martin@ximian.com>
6953
6954         * mono-debug-debugger.c: Don't store the MonoString's vtable to
6955         make this work for applications with multiple application domains.
6956
6957 2003-08-04  Martin Baulig  <martin@ximian.com>
6958
6959         * mono-debug-debugger.c: Completely reworked the type support; the
6960         most important thing is that we're now just using one single
6961         `MonoType' instance per type.
6962
6963 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
6964
6965         * mono-endian.h, mono-endian.c, icall.c: Added icall
6966         ves_icall_System_Double_AssertEndianity to assert double word endianity
6967         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
6968
6969 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
6970
6971         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
6972         support, icalls and fixes.
6973
6974 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
6975
6976         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
6977         classes that are a punctuation character in .NET is not the same a
6978         g_unichar_ispunct.
6979
6980 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6981
6982         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
6983
6984 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
6985
6986         * icall.c: Add new MemCopy internalcall.
6987         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
6988         Simplified code; It is not necessary to handle all the cases here,
6989         as the C# code takes care of it.  Only handle the case of the name
6990         resource embedded into the assembly.
6991
6992         Changed signature to return the data pointer and the size of the
6993         data. 
6994
6995 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
6996
6997         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
6998         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
6999
7000 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7001
7002         * socket-io.c: ignore EINTR error in select.
7003
7004 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7005
7006         * class.h, class.c: removed unused subclasses field in MonoClass.
7007
7008 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7009
7010         * icall.c: improve fix of get_base_definition(). If the parent class
7011           doesn't have the mehod, look at the parent of the parent.
7012         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7013           to check if a parameter is an in or out parameter
7014           (PARAM_ATTRIBUTE_IN is not set by default).
7015           mono_method_return_message_restore(): Use mono_class_value_size to
7016           get the size of a value type. mono_type_stack_size (parameterType)
7017           does not return the correct value if parameterType is byRef.
7018           mono_load_remote_field(), mono_load_remote_field_new(),
7019           mono_store_remote_field(), mono_store_remote_field_new():
7020           raise exception if the remote call returns an exception.
7021
7022 2003-07-28  Martin Baulig  <martin@ximian.com>
7023
7024         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7025         method.  This is a wrapper around mono_runtime_invoke() which
7026         boxes the instance object if neccessary.
7027
7028 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7029
7030         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7031         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7032
7033 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7034
7035         * icall.c: disable mcs bug workaround.
7036
7037 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7038
7039         * object.c (mono_runtime_class_init): Take the metadata_section
7040         mutex before obtaining the domain mutex.
7041
7042         * appdomain.h: Added definition of metadata_section mutex here. 
7043
7044         * object.c: define metadata_mutex here.
7045
7046 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7047
7048         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7049         fixed.
7050
7051 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7052
7053         * reflection.c: Fix bug #46669
7054
7055 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7056
7057         * exception.c:
7058         * exception.h:
7059         * icall.c:
7060         * object.h: fill in the type name for TypeLoadException.
7061
7062 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7063
7064         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7065         relationship between TypeBuilders while compiling corlib) and bug
7066         45993 (Array types returned from the runtime while compiling
7067         corlib were from the loaded corlib).
7068
7069 2003-07-22  Martin Baulig  <martin@ximian.com>
7070
7071         * mono-debug-debugger.c: Reworked the type support a bit more;
7072         distinguish between types and classes.
7073
7074 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7075
7076         * icall.c: add IsArrayImpl icall.
7077
7078 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7079
7080         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7081         initializing real_size only once. Also fix bug #46602.
7082
7083 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7084
7085         * object.c: Renamed mono_metadata_section to metadata_section.
7086
7087 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7088
7089         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7090           empty array if the type is an array. Fixed.
7091           ves_icall_MonoMethod_get_base_definition: if the base method
7092           is abstract, get the MethodInfo from the list of methods of
7093           the class.
7094         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7095           and it was 1-based. Fixed in mono_param_get_objects.
7096
7097 2003-07-20  Martin Baulig  <martin@ximian.com>
7098
7099         * mono-debug.h: Set version number to 31.
7100         (mono_debug_init): Added `MonoDomain *' argument.
7101
7102         * mono-debug-debugger.c: Reworked the type support; explicitly
7103         tell the debugger about builtin types; pass the `klass' address to
7104         the debugger.
7105
7106 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7107
7108         * image.c: Allow new metadata tables to be loaded without a
7109         warning. Also update the warning message to give the new constant value.
7110                 
7111 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7112
7113         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7114         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7115         array type representation changes.
7116
7117 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7118
7119         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7120         on Environment.Exit () call.
7121
7122 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7123
7124         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7125         requires a matching corlib.
7126
7127 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7128
7129         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7130           Committed again without the CRs.
7131         
7132 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7133
7134         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7135           getting it from the "this" socket instance. Did not work
7136           if the socket is a subclass of Socket.
7137           Also fixed bug #35371.
7138
7139 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7140
7141         * metadata.c: fixed size for TypedByRef.
7142         * loader.c: when searching for a method, consider the vararg amrker.
7143         * unicode.c, decimal.c: constify some arrays.
7144
7145 2003-07-15  Dick Porter  <dick@ximian.com>
7146
7147         * socket-io.c: Fixed compilation for gcc < 3.2.
7148
7149         Fixed compilation for machines that don't have AF_INET6 (thanks to
7150         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7151
7152         Fixed compile warnings.
7153         
7154         Fixed formatting and line endings.
7155
7156 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7157
7158         * socket-io.h:
7159         * socket-io.c: Added IPv6 support.
7160
7161 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7162
7163         * class.c (mono_class_is_assignable_from): New function to implement
7164         the is_assignable_from logic. Used by mono_object_isinst, 
7165         Type::IsAssignableFrom () and the interpreter.
7166
7167         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7168         Object, even interfaces.
7169         
7170         * object.c (mono_object_isinst): Implement in terms of 
7171         is_assignable_from.
7172
7173         * icall.c (ves_icall_type_is_assignable_from): New icall.
7174
7175 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7176
7177         * domain.c (foreach_domain): fix compiler warning.
7178
7179 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7180
7181         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7182         not available on all plattforms
7183
7184 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7185
7186         * image.h image.c: Store the metadata version string in MonoImage.
7187         * icall.c: New icall to retrieve the image version.
7188         * reflection.c (create_dynamic_image): Fill in the image version field
7189         * reflection.c (build_compressed_metadata): Use the image version
7190         from the image structure.
7191
7192 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7193
7194         * appdomain.c: modified comment.
7195         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7196         That will be its last iteration when mono_gc_cleanup is called from
7197         mono_runtime_cleanup and before the domain is unloaded.
7198
7199         Fixes bug #45962.
7200
7201 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7202
7203         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7204         attributes.
7205
7206 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7207
7208         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7209         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7210         Bernie Solomon <bernard@ugsolutions.com>.
7211
7212 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7213
7214         * object.c, object.h: provide mono_object_new_fast() for faster
7215         allocation in some special cases.
7216
7217 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7218
7219         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7220         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7221
7222 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7223
7224         * threadpool.c: fix leaks.
7225
7226 2003-07-01  Dick Porter  <dick@ximian.com>
7227
7228         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7229         using MonoGHashTables.  Fixes threadpool bug posted to list.
7230
7231 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7232
7233         * image.h, image.c: added support to load an assembly from a byte array.
7234         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7235         assembly bundle support.
7236
7237 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7238
7239         * threadpool.c (mono_thread_pool_add): keep a reference to the
7240         AsyncResult to prevent GC
7241
7242 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7243
7244         * class.c: leak fix.
7245
7246 2003-06-25  Dick Porter  <dick@ximian.com>
7247
7248         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7249         for the async object, the WaitHandle object will close the handle.
7250         Fixes bug 45321.
7251
7252 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7253
7254         * class.c: in mono_array_class_get (), lookup from the hash with the
7255         same type we insert: this works around a bug in
7256         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7257         lluis. The real fix will have to wait for after the release.
7258
7259 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7260
7261         * icall.c: fix memory leak when getting type members.
7262
7263 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7264
7265         * reflection.c: added more pubtoken special cases.
7266
7267 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7268
7269         * class.c: handle field offset correctly when class size
7270         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7271
7272 2003-06-20  Martin Baulig  <martin@ximian.com>
7273
7274         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7275         *image' field.
7276
7277 2003-06-20  Martin Baulig  <martin@ximian.com>
7278
7279         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7280
7281 2003-06-20  Martin Baulig  <martin@ximian.com>
7282
7283         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7284         just distinguish between variables in registers and variables at
7285         an offset relative to a register.
7286
7287 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7288
7289         * icall.c: #ifdef out latest changes until mcs is fixed.
7290
7291 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7292
7293         * icall.c: return members in metadata order.
7294
7295 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7296
7297         * icall.c: avoid infinite loop in GetTimeZoneData.
7298
7299 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7300
7301         * icall.c: added Marshal.Prelink/All icalls.
7302
7303 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7304
7305         * object.c, object.h: fix warnings and do some overflow checking
7306         when creating arrays.
7307
7308 2003-06-17  Dick Porter  <dick@ximian.com>
7309
7310         * file-io.h:
7311         * file-io.c: File attributes need to be tweaked slightly when
7312         passed from the managed to the w32 world.
7313
7314 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7315         * profiler.h profiler-private.h profiler.c: Rework last patch
7316         based on suggestion by Paolo.
7317         
7318 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7319
7320         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7321         instruction level coverage data collection.
7322         * profiler.h profiler.c (: Added new callback function which can be
7323         used by the profiler to limit which functions should have coverage
7324         instrumentation.
7325         * profiler.c (mono_profiler_load): Call g_module_build_path to
7326         generate the file name of the profiler library.
7327
7328 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7329
7330         * profiler.c, profiler.h, profiler-private.h: added basic block 
7331         coverage profiling API.
7332
7333 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7334
7335         * reflection.c (mono_reflection_create_runtime_class): Add support
7336         for events in dynamically generated code.
7337
7338         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7339         not allocated.
7340
7341 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7342
7343         * icall.c: when getting timezone info, return reasonable values if we
7344         can't get the actual data.
7345
7346 2003-06-14  Dick Porter  <dick@ximian.com>
7347
7348         * threads.c (start_wrapper): Remove the reference to the thread
7349         object in the TLS data, so the thread object can be finalized.
7350         This won't be reached if the thread threw an uncaught exception,
7351         so those thread handles will stay referenced :-( (This is due to
7352         missing support for scanning thread-specific data in the Boehm GC
7353         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7354
7355 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7356
7357         * reflection.c: ensure streams and tables are first allocated with
7358         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7359
7360 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7361
7362         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7363
7364 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7365
7366         * reflection.c (mono_reflection_create_runtime_class): Add support for
7367         properties to dynamically created classes.
7368         * reflection.c: Fix a few places where non-MonoObjects were inserted
7369         into the tokens hashtable.
7370
7371 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7372
7373         * object.c: some support to handle out of memory exceptions.
7374
7375 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7376
7377         * marshal.c (mono_marshal_get_native_wrapper): support reference
7378         return types
7379
7380 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7381
7382         * object.h, object.c: more portability stuff from Bernie Solomon.
7383         Unexport mono_object_allocate(). Added mono_object_unbox ().
7384         Set exitcode when an unhandled exception is thrown.
7385
7386 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7387
7388         * marshal.c (mono_marshal_get_native_wrapper): use custom
7389         marshaler for return types.
7390
7391 2003-06-10  Dick Porter  <dick@ximian.com>
7392
7393         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7394         ip_mreq is available
7395
7396 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7397
7398         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7399         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7400         by Bernie Solomon <bernard@ugsolutions.com>.
7401
7402 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7403
7404         * gc.c (mono_gc_init): Avoid error message on shutdown when
7405         GC_DONT_GC=1 is used.
7406
7407         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7408         New icall to return the GUID of a module.
7409
7410 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7411
7412         * class.c: ensure instance size always includes the parent's size
7413         even whem class size is set explicitly (fixes bug#44294).
7414
7415 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7416
7417         * profiler.h, profiler.c: made the simple profiler thread-safe,
7418         get more accurate timing info. Allow the loading of an
7419         externally-developed profiler module.
7420
7421 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7422
7423         * marshal.c (mono_marshal_get_native_wrapper): improved
7424         class/byref arguments.
7425         (mono_marshal_get_native_wrapper): better string marshaling support.
7426
7427 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7428
7429         * class.c: ensure .pack and .size are handled correctly and
7430         simplified layout of static fields.
7431
7432 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7433
7434         * appdomain.c
7435         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7436
7437         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7438         current directory (fix bug 44008)
7439
7440 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7441
7442         * marshal.c (mono_marshal_get_native_wrapper): started support for
7443         custom marshalers.
7444         (mono_delegate_to_ftnptr): consider marshalling specifications
7445
7446 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7447
7448         * reflection.c, reflection.h: emit custom marshal info.
7449
7450 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7451
7452         * object.c: free the GError.
7453         * icall.c: added CloseEvent_internal.
7454         * threads.[ch]:
7455         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7456         call.
7457
7458 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7459
7460         * loader.c (mono_method_get_signature): Add support for dynamic
7461         assemblies.
7462
7463 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7464
7465         * reflection.c: fixed bug #43905.
7466
7467 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7468
7469         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7470         handling TypedReference and ArgIterator.
7471         * loader.c, loader.h: added function to get signature at call site.
7472
7473 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7474
7475         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7476         data readonly. Buglets and warning fixes. Some MethodSpec support.
7477
7478 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7479
7480         * class.h, class.c, object.c: remove relative numbering support.
7481
7482 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7483
7484         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7485         free the string, until we get a chance to fix Gtk#
7486
7487 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7488
7489         * marshal.c: revert last patch.
7490
7491 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7492
7493         * icall.c: updates for new mono_class_vtable() not calling
7494         the type constructor anymore.
7495
7496 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7497
7498         * object.h, object.c: separate vtable creation from type
7499         initialization. Make running the .cctor thread safe.
7500
7501 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7502
7503         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7504
7505 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7506
7507         * loader.c (mono_get_method): consider calling convention
7508
7509 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7510
7511         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7512         to return the invisible global type for a module.
7513
7514         * reflection.c (mono_image_build_metadata): Emit global fields too.
7515
7516 2003-05-20  Peter Williams  <peterw@ximian.com>
7517
7518         * loader.c (mono_lookup_internal_call): Add a few newlines.
7519
7520 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7521
7522         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7523         literal strings.
7524
7525         * appdomain.c (set_domain_search_path): Recalculate search path when
7526         AppDomainSetup.PrivateBinPath changes.
7527
7528         * object.c (mono_class_compute_gc_descriptor): It turns out some
7529         parts of the class libs (like System.Thread) holds pointers to
7530         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7531         to treat native int a pointer type here.
7532         
7533 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7534
7535         * appdomain.h, domain.c: add hashtable for jump target resolution.
7536
7537 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7538
7539         * reflection.h reflection.c icall.c: Added new icalls 
7540         GetManifestResourceInfoInternal, GetModulesInternal and support
7541         infrastructure.
7542
7543 2003-05-16  Dick Porter  <dick@ximian.com>
7544
7545         * icall.c:
7546         * file-io.h:
7547         * file-io.c: Implement System.IO.MonoIO::GetTempPath
7548
7549 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
7550
7551         * object.c: mono_store_remote_field: little fix to previous patch.
7552
7553 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7554
7555         * class.c: add constructors to array classes.
7556         * icall.c: special case array construction for InternalInvoke (),
7557
7558 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
7559
7560         * class.h class.c reflection.c object.c: Added support for field
7561         defaults in dynamically generated classes.
7562
7563 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7564
7565         * reflection.c: properly encode charset for ddlimport.
7566
7567 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7568
7569         * threads.c: allow compiling without GC.
7570
7571 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7572
7573         * appdomain.h, object.c, object.h, threads.c, threads.h: added
7574         handling of thread static data.
7575
7576 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7577
7578         * reflection.h, reflection.c: added mono_custom_attrs_free ().
7579
7580 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
7581
7582         * class.c (mono_array_class_get): always set the serializable flags
7583         (mono_array_class_get): always set the SEALED attribute for array types
7584
7585 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
7586
7587         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7588         attributes (fix for bug 42021).
7589
7590 2003-05-12  Dick Porter  <dick@ximian.com>
7591
7592         * gc.c: Don't run finalizers when the finalizer thread is
7593         finishing up, because the default domain has already been
7594         destroyed.
7595
7596 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
7597
7598         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7599         value is null, we should throw an exception.   This is slightly
7600         different than the other conventions used for the constructor.
7601
7602 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7603
7604         * socket-io.c: fixed windows build.
7605
7606 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7607
7608         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7609
7610 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
7611
7612         * object.c (mono_string_new_wrapper): Compatibility fix for MS
7613         compilers.
7614
7615 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
7616
7617         * class.c (mono_class_layout_fields): Add experimental GC aware
7618         auto layout facility. Requires class library changes to work correctly.
7619
7620         (mono_class_setup_vtable): Avoid overriding explicit interface
7621         method implementations. Fixes iface3.exe test.
7622
7623         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7624         object reference.
7625         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7626         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7627
7628         * metadata.h: Add new type classification macro which determines
7629         whenever the type holds an object reference.
7630
7631 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
7632
7633         * marshal.c (mono_marshal_get_native_wrapper): cleanups
7634
7635 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
7636
7637         * gc.c (finalizer_thread): Work around a GC bug.
7638
7639 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
7640
7641         * marshal.c (emit_struct_conv): allow unions
7642
7643         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7644
7645 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
7646
7647         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7648
7649 2003-05-06  Martin Baulig  <martin@ximian.com>
7650
7651         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7652
7653 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7654
7655         * socket-io.c:
7656         (Select_internal): allow NULLs, don't create arrays if not needed.
7657         Coupled with Socket.cs changes.
7658
7659         * threadpool.c:
7660         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7661         register a finalizer for it that will close the semaphore handle. This
7662         fixes the leak and make Lupus' test run with > 4080 loops.
7663
7664 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
7665
7666         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7667         Jerome Laban (bug #42287)
7668
7669 2003-05-02  Martin Baulig  <martin@ximian.com>
7670
7671         * debug-mono-symfile.h
7672         (MonoSymbolFile): Moved declaration into mono-debug.h.
7673         (MonoDebugMethodJitInfo): Likewise.
7674         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
7675         argument.
7676         (_mono_debug_address_from_il_offset): Take a
7677         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
7678
7679         * mono-debug.h
7680         (MonoDebugDomainData): New struct.
7681         (mono_debug_get_domain_data): New function.
7682         (mono_debug_add_method): Take an additional `MonoDomain *'
7683         argument.
7684         (mono_debug_source_location_from_address): Likewise.
7685         (mono_debug_il_offset_from_address): Likewise.
7686         (mono_debug_address_from_il_offset): Likewise.
7687
7688 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
7689
7690         * reflection.c: one more check for null type in custom attrs.
7691
7692 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7693
7694         * reflection.c: avoid warning (comparison is always false due to limited
7695         range of data type).
7696
7697 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7698
7699         * icall.c: throw an exception in Type.GetField if the argument 'name'
7700         is NULL.
7701
7702 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
7703
7704         * reflection.c: fixed handling of enums in named arguments to custom
7705         attributes (bug #42123).
7706
7707 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
7708
7709         * reflection.c: use the right array element type and handle
7710         a null for a Type argument, too.
7711
7712 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
7713
7714         * reflection.c: handle arrays as arguments to custom attributes.
7715
7716 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7717
7718         * reflection.c: handle a string value in a custom attr
7719         ctor that takes an object.
7720
7721 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
7722
7723         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
7724         (fix bug #42063)
7725
7726 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
7727
7728         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
7729
7730 2003-04-27  Martin Baulig  <martin@ximian.com>
7731
7732         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
7733         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
7734         MONO_DEBUGGER_EVENT_BREAKPOINT.
7735         (mono_breakpoint_trampoline_code): Removed.
7736         (mono_debugger_event_handler): The last argument is now a
7737         `guint32'.
7738         (mono_debugger_insert_breakpoint_full): Removed the
7739         `use_trampoline' argument.
7740         (mono_debugger_method_has_breakpoint): Likewise.
7741         (mono_debugger_trampoline_breakpoint_callback): Renamed to
7742         mono_debugger_breakpoint_callback(); take the method and
7743         breakpoint number as arguments.
7744
7745 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
7746
7747         * metadata.c: fix off by one when loading parameters attributes.
7748
7749 2003-04-24  Martin Baulig  <martin@ximian.com>
7750
7751         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
7752
7753 2003-04-24  Martin Baulig  <martin@ximian.com>
7754
7755         * mono-debug-debugger.c: Moved all code which interacts with the
7756         Mono Debugger here.
7757
7758         * debug-mono-symfile.c: This code now just deals with the symbol
7759         file itself, the debugger code is now in mono-debug-debugger.c.
7760
7761 2003-04-23  Martin Baulig  <martin@ximian.com>
7762
7763         * mono-debug.c (mono_debug_source_location_from_il_offset):
7764         New method; like mono_debug_source_location_from_address(), but
7765         takes an IL offset instead of a machine address.
7766
7767 2003-04-23  Martin Baulig  <martin@ximian.com>
7768
7769         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
7770         `line' field; this is now computed by the debugger.
7771
7772 2003-04-23  Martin Baulig  <martin@ximian.com>
7773
7774         * mono-debug.[ch]: New files.  This is the new debugging interface.
7775
7776         * mono-debug-debugger.[ch]: New files.  Moved all code which
7777         interacts with the Mono Debugger here.
7778
7779 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
7780
7781         * domain.c (mono_init): initialize mono_defaults.monitor_class
7782
7783 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
7784
7785         * reflection.c (method_encode_code): Add a spicy exception to help
7786         future compiler authors.
7787
7788 2003-04-21  Martin Baulig  <martin@ximian.com>
7789
7790         * icall.c
7791         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7792         Make this work with relative pathnames; g_filename_to_uri() needs
7793         an absolute filename.
7794
7795 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
7796
7797         * icall.c: Track name changes in Object and ValueType.
7798
7799 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
7800
7801         * metadata.c (mono_type_stack_size): size should be a multiple of
7802         sizeof (gpointer)
7803
7804 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7805
7806         * gc.c:
7807         (internal_domain_finalize): moved into mono_domain_finalize. No need
7808         to create another thread because the finalizers will be run in the
7809         finalizer thread.
7810         
7811         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
7812         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
7813         to be run (MS does this too).
7814
7815 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
7816
7817         * object.c (mono_class_compute_gc_descriptor): Update comment.
7818
7819         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
7820
7821         * image.h: Add synchronized wrapper cache.
7822
7823         * image.c (do_mono_image_open): Initialize cache.
7824
7825         * reflection.c (create_dynamic_mono_image): Initialize cache.
7826
7827 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7828
7829         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
7830         ves_icall_System_Buffer_ByteLengthInternal.
7831
7832 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7833
7834         * reflection.c: setup klass->nested_in earlier. Allow
7835         a dash in the assembly name.
7836
7837 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
7838
7839         * metadata.c (mono_type_to_unmanaged): dont access
7840         type->data.klass for MONO_TYPE_OBJECT
7841         (mono_type_to_unmanaged): consider System.Delegate class
7842
7843 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
7844
7845         * class.c: just setup supertypes in the proper place instead of
7846         initializing the full element class for arrays.
7847
7848 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7849
7850         * class.c: ensure the element class of arrays is initialized.
7851         Setup the supertype info for array classes, too.
7852
7853 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
7854
7855         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
7856
7857 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7858
7859         * Makefile.am: re-added -m option when running cygpath. This way,
7860         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
7861         separator.
7862         * mono-config.c: same codepath for locating mono config file for WIN32
7863         and the rest.
7864         * assembly.c: if mono_assembly_setrootdir is called, don't override
7865         the value set.
7866
7867 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7868
7869         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
7870         MONO_ASSEMBLIES variable.
7871
7872 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
7873
7874         * icall.c: added Assembly::GetNamespaces() icall.
7875
7876 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7877
7878         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
7879
7880 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
7881
7882         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
7883         * object.c: fixed bug in the construction of vtable for proxies
7884
7885 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
7886
7887         * object.c (mono_array_new): Mark mono_array_new as an icall.
7888
7889 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7890
7891         * class.c: fixed test for public method when overriding interfaces.
7892         Closes bug #40970.
7893
7894 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7895
7896         * appdomain.h, domain.c: added mono_domain_foreach() to
7897         be able to access the currently loaded appdomains.
7898         * object.c: make string interning work across sppdomains.
7899         Mark some functions for use as icalls.
7900
7901 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
7902
7903         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
7904
7905         * reflection.h reflection.c: Allocate long living data using 
7906         GC_MALLOC_ATOMIC so the collector does not need to scan it.
7907
7908         * reflection.c: Double the allocation size in streams instead of
7909         increasing it, to prevent unneccesary copying on large assemblies.
7910         
7911         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
7912         creation if the assembly does not have the Run flag set.
7913
7914 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
7915
7916         * class.h: avoid the C++ keywords in header files (Jerome Laban
7917         spotted and fixed this).
7918
7919 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7920
7921         * object.c:
7922         (mono_unhandled_exception): fill in the arguments for the
7923         UnhandledException event. Only trigger that event for the default
7924         domain (as MS does).
7925
7926 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
7927
7928         * object.c: Improve typed allocation stuff based on suggestions from
7929         Paolo. Also turn it on if the GC library supports it.
7930
7931 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
7932
7933         * object.c object.h class.h: Added experimental typed allocation
7934         facility using the interfaces in gc_gcj.h.
7935
7936         * os/gc_wrapper.h: Added new include files.
7937         
7938 2003-04-03  Martin Baulig  <martin@ximian.com>
7939
7940         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
7941         which is not yet enabled by default.
7942
7943         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
7944         functions.
7945         (mono_gc_lock, mono_gc_unlock): New static functions.
7946
7947         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
7948         functions; stop/start the world for the garbage collector.  This
7949         is using the windows API; we need to complete the SuspendThread()/
7950         ResumeThread() implementation in the io-layer to make this work on Unix.
7951         (mono_gc_push_all_stacks): New public function; tells the garbage
7952         collector about the stack pointers from all managed threads.
7953
7954 2003-04-03  Martin Baulig  <martin@ximian.com>
7955
7956         * object.h (MonoThread): Added `gpointer stack_ptr'.
7957
7958         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
7959
7960 2003-04-03  Martin Baulig  <martin@ximian.com>
7961
7962         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
7963
7964 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
7965
7966         * reflection.c (typebuilder_setup_fields): Initialize field.first and
7967         field.last.
7968
7969 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
7970
7971         * loader.c (mono_lookup_internal_call): Report the corlib that is
7972         out of sync.
7973
7974 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
7975
7976         * icall.c (ves_icall_type_GetTypeCode): fixed check for
7977         System.DBNull (it's class not valuetype).
7978
7979 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7980
7981         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
7982         if the array method was already assigned a token (fixes bug#40646).
7983
7984 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
7985
7986         * reflection.c (mono_reflection_get_type): Attempt type resolve even
7987         if no assembly is given.
7988
7989 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
7990
7991         * metadata.h: Added the new tables.
7992
7993         * row-indexes.h: Added definitions for new tables.
7994
7995         * metadata.c: Add schemas for new tables, and add support for
7996         computing the sizes of them.
7997
7998         * class.c: Update for handling the new type cases.
7999
8000 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8001
8002         * metadata.h (MONO_TYPE_IS_VOID): new macro
8003
8004 2003-03-31  Martin Baulig  <martin@ximian.com>
8005
8006         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8007
8008         * threads.c (mono_thread_new_init): Call `thread_created' in the
8009         mono_thread_callbacks.
8010
8011 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8012
8013         * loader.h: added marshalbyrefobject_class to mono_defaults
8014         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8015         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8016           generation of output parameters.
8017           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8018         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8019           contextbound and the target object belongs to the context of the caller.
8020         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8021         * object.c: Implemented support for interfaces and abstract classes
8022           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8023           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8024
8025 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8026
8027         * class.h class.c (mono_class_is_subclass_of): New function.
8028         
8029         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8030         routines for most common case (calls from ArrayList::ToArray).
8031
8032         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8033         routine so programs which call Environment::Exit() can be profiled.
8034
8035         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8036         Added MONO_ARCH_SAVE_REGS.
8037
8038         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8039
8040 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8041
8042         * blob.h: Add a couple of new MonoType types definitions.
8043
8044         * tabledefs.h: Add a couple of new call convs.
8045
8046 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8047
8048         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8049         the layout of the class.
8050
8051         * reflection.c (alloc_table): double the size on overflow to avoid
8052         unnecessary copying.
8053
8054         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8055         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8056         null so it can be garbage collected.
8057         
8058 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8059
8060         * reflection.c (mono_reflection_get_type): Return the resolved type
8061         only if it is in the assembly we searched.
8062
8063         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8064
8065         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8066         method.
8067
8068 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8069
8070         * appdomain.c:
8071         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8072         the right one is 'file:///blah', but MS allows it.
8073         * assembly.c:
8074         (mono_assembly_open): allow 'file://blah'
8075
8076         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8077
8078 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8079
8080         * socket-io.c: fixes bug #40310.
8081
8082 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8083
8084         * reflection.c (mono_reflection_parse_type): handle deeply nested
8085         types correctly.
8086
8087         * reflection.c (mono_image_create_token): Use unique token values
8088         since they will be put into a hash table.
8089
8090         * class.c (mono_class_setup_vtable): If a method occurs in more than
8091         one place in the vtable, and it gets overriden, then change the
8092         other occurances too.
8093
8094         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8095         object as return type.
8096
8097 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8098
8099         * icall.c: Deleted "ToString" implementation for double and float
8100         because they are full implemented in managed code.
8101
8102 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8103
8104         * reflection.c, reflection.h: implemented and exported functions
8105         to retrieve info about custom attributes.
8106
8107 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8108
8109         * appdomain.c: moved Uri handling to assembly.c
8110         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8111         work when using a file Uri in *nix and windows.
8112
8113         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8114         GetReferencedAssemblies.
8115
8116 2003-03-18  Dick Porter  <dick@ximian.com>
8117
8118         * icall.c: Rename a couple of internal calls
8119
8120         * threads.c: Set the thread state to Stopped when a thread exits.
8121         Fixes bug 39377.
8122
8123 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8124
8125         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8126         New icall.
8127
8128         * object.c (mono_class_vtable): fix warning.
8129
8130 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8131
8132         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8133
8134         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8135         memory.
8136         (method_encode_clauses): Create exception info structures in the right
8137         order.
8138         (mono_reflection_setup_internal_class): Initialize supertypes field.
8139
8140         * class.c object.c: Handle interfaces which implement other interfaces 
8141         correctly.
8142
8143         * class.h class.c: Move the supertypes array initialization code into 
8144         a separate function so it can be used for dynamic types too. Also call
8145         it earlier, in mono_class_init(), since it can be used before the
8146         type is initialized.
8147
8148 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8149
8150         * Makefile.am:
8151         * assembly.c:
8152         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8153
8154         * appdomain.c:
8155         * appdomain.h:
8156         * marshal.c:
8157         * object.c: remove warnings.
8158
8159 2003-03-13  Martin Baulig  <martin@ximian.com>
8160
8161         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8162         (MonoDebugLexicalBlockEntry): New types.
8163
8164         * debug-mono-symfile.c
8165         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8166
8167 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8168
8169         * process.c: ret can be any non-zero value accroding to MS doc.
8170
8171 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8172
8173         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8174         fixing a warning for a miss-used prototype, would have cause
8175         random memory corruption.
8176
8177 2003-03-07  Martin Baulig  <martin@ximian.com>
8178
8179         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8180         getting really annoying ....
8181
8182 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8183
8184         * reflection.c (fixup_method): added support for array methods.
8185
8186 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8187
8188         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8189         (pointed out by Michael Adams).
8190
8191 2003-03-04  Dick Porter  <dick@ximian.com>
8192
8193         * icall.c: Temporarily reverted the Double and Single ToString()
8194         change, because it broke nunit.
8195
8196 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8197
8198         * object.h, threads.h: make include files compatible with C++
8199         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8200
8201 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8202
8203         * icall.c: Erased ToString helper functions for Double and Single.
8204         Now, that implementations ar all in managed code (Double and Single
8205         Formatters).
8206
8207 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8208
8209         * appdomain.c: Added method for initializing the default context of
8210         a domain. Added internal call for getting the default context.
8211         * appdomain.h: Added context variable in MonoDomain struct.
8212         * domain.c: mono_domain_set also sets the default context of the domain
8213         * icall.c: Mapped internal method InternalGetDefaultContext.
8214         * object.c: mono_object_get_virtual_method returns always a remoting
8215         wrapper if the object is a transparent proxy.
8216         mono_runtime_invoke_array: when creating an object by calling the
8217         constructor, if the created object is a proxy, then the constructor should
8218         be called using the a remoting wrapper.
8219
8220 2003-03-03  Dick Porter  <dick@ximian.com>
8221
8222         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8223         variable so it compiles on solaris.  Problem spotted by
8224         Christopher Taylor <ct@cs.clemson.edu>
8225
8226 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8227
8228         * appdomain.c:
8229         (get_info_from_assembly_name): don't leak value.
8230
8231         * icall.c:
8232         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8233         result.
8234
8235 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8236
8237         * assembly.c: export mono_image_load_references ().
8238         * class.c: handle function pointers. mono_class_from_name() now
8239         supports nested type names directly.
8240
8241 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8242
8243         * reflection.h reflection.c: Encode already created dynamic methods 
8244         and fields correctly as a DEF instead of a REF.
8245
8246         * reflection.c: Get rid of the force_ref argument to 
8247         mono_image_typedef_or_ref since it was wrong in the first place.
8248
8249         * string-icalls.c: add error checking to string constructors according
8250         to the MSDN docs.
8251
8252         * reflection.c: Emit types in the order their TypeBuilders were 
8253         created. Previously, a new table index was assigned to each type before
8254         the tables were emitted. This was wrong because the signature blob
8255         might already refer to a type by its original table index.
8256
8257 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8258
8259         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8260         change.
8261         
8262 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8263
8264         * Makefile.am: make assemblies dir have \ instead of / on windows.
8265
8266 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8267
8268         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8269         iterate over the NESTEDCLASS table using a linear search since the
8270         table is not guaranteed to be sorted by the secondary key.
8271
8272         * class.c (mono_class_create_from_typedef): fixed up call to
8273         mono_metadata_nesting_typedef.
8274         
8275 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8276
8277         * marshal.c (mono_string_to_byvalstr): clear the memory as
8278         suggested by Jerome Laban <jlaban@wanadoo.fr>
8279
8280 2003-02-26  Dick Porter  <dick@ximian.com>
8281
8282         * process.c: Cope with padding in .rsrc blocks
8283
8284 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8285
8286         * metadata.h: reverted the filter_len change, it breaks reflection
8287         
8288 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8289
8290         * metadata.h: added a new field to store the filter_len
8291         
8292
8293 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8294
8295         * reflection.c: handle custom attributes for types and members
8296         created with Reflection.Emit (bug#38422).
8297
8298 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8299
8300         * reflection.c: define RTSpecialName automatically for constructors for
8301         compatibility with MS.NET.
8302
8303         * reflection.c (mono_reflection_create_runtime_class): initialize
8304         nested_in field of dynamically created classes.
8305
8306 2003-02-22  Martin Baulig  <martin@ximian.com>
8307
8308         * debug-mono-symfile.h: Incremented version number.
8309
8310 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8311
8312         * object.h icall.c process.c: fix warnings.
8313
8314 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8315
8316         * appdomain.h appdomain.c:
8317         (mono_domain_try_type_resolve): split the 
8318         name_or_tb argument into a name and a tb argument.
8319         (mono_domain_has_type_resolve): new function to check whenever the
8320         application has registered a TypeResolve event handler.
8321         
8322         * icall.c reflection.h reflection.c: move the type resolve logic into
8323         mono_reflection_get_type () so it will be invoked when 
8324         Assembly::GetType () is called.
8325
8326         * reflection.c:
8327         (mono_reflection_get_type): renamed to get_type_internal.
8328         (mono_reflection_get_type): fixed type name generation so it works 
8329         for nested types too.
8330         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8331         costly type name generation if there is no resolve event handler.
8332
8333 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8334
8335         * class.c, image.c: load exported types from file references.
8336
8337 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8338
8339         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8340           used to cache the managed methods used to create proxies and make 
8341           remote invocation of methods.
8342         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8343           to be remotely created.
8344         * object.c: Modified the method mono_class_vtable(). It now initializes 
8345           the remote flag of the vtable. Modified mono_object_new_specific(), 
8346           so now it checks the remote flag.
8347         * icall.c: Added a couple of internal methods, one for enabling instance 
8348           creation interception for a type, and one for creating objects bypassing
8349           the remote check.
8350
8351 2003-02-18  Martin Baulig  <martin@ximian.com>
8352
8353         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8354         New interncall to get a method's metadata token.
8355
8356         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8357         New interncall for the debugger.
8358
8359 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8360
8361         * class.c (mono_class_setup_vtable): allocate supertype array
8362
8363 2003-02-18  Martin Baulig  <martin@ximian.com>
8364
8365         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8366
8367 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8368
8369         * reflection.c:
8370         (assembly_name_to_aname): jump over unknown properties (i've found
8371         something like: 'type, assembly, version=xxx, custom=null, public...',
8372         so now will ignore custom=null and still get the rest of the values).
8373
8374 2003-02-17  Dick Porter  <dick@ximian.com>
8375
8376         * threads.c: Have Thread.Start() wait for a semaphore to signal
8377         that the thread has set up all its local data.  This fixes bug
8378         34323, where Abort() raced the new thread's TLS data.
8379
8380         Also removes the handle_store() call from start_wrapper, because
8381         threads are now always created suspended and there is no longer a
8382         race between the parent and child threads to store the info.
8383
8384 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8385
8386         * image.c: explain the #- heap issue in a message, hopefully
8387         avoiding FAQs on mono-list.
8388
8389 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8390
8391         * icall.c:
8392         (GetEntryAssembly): if the domain has not invoked
8393         AppDomain.ExecuteAssembly yet, return the assembly of the default
8394         AppDomain.
8395
8396 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8397
8398         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8399
8400 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8401
8402         * metadata.c, reflection.c: simple speedup to type hash
8403         and equals code.
8404
8405 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8406
8407         * image.c, image.h, class.c, assembly.c: move module loading
8408         to MonoImage. When loading metadata, consider alignemnet from
8409         the start of metadata, not from the metadata address in memory.
8410
8411 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8412
8413         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8414         AssemblyBuilder objects. Factored out custom attribute creation into
8415         a separate function.
8416         (create_custom_attr): new function to create custom attributes.
8417
8418 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8419
8420         * Makefile.am: Got tired of typing the full pathname to pedump.
8421         Until there is another option, am installing this.
8422
8423 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8424
8425         * class.c (class_compute_field_layout): always set field->parent 
8426         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8427
8428 2003-02-11  Dick Porter  <dick@ximian.com>
8429
8430         * threads-types.h:
8431         * monitor.c: Rewrote Monitor, making lock much faster and
8432         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8433         creates them as needed.
8434
8435         * exception.c: Added SynchronizationLockException
8436
8437         * threads.c: Deleted old Monitor implementation.  The new one is
8438         in a new file.
8439
8440 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8441
8442         * class.c: handled TypedReference type code. Set the correct size for
8443         class data. Setup interface_offsets for interface classes, too.
8444
8445 2003-02-09  Martin Baulig  <martin@ximian.com>
8446
8447         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8448
8449 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8450
8451         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8452         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8453         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8454         * verify.c: check for code that runs after the end of the method.
8455
8456 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8457
8458         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8459         "System.Math::Round2".
8460         * sysmath.h: Added Floor, Round and Round2 definitions.
8461         * sysmath.c: Modified certain functions that were not 100% compliant
8462         with MS.NET (math precision) and added the implementation of Floor,
8463         Round and Round2.
8464
8465 2003-02-07  Martin Baulig  <martin@ximian.com>
8466
8467         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8468
8469 2003-02-07  Martin Baulig  <martin@ximian.com>
8470
8471         * debug-mono-symfile.c: Reflected latest symwriter changes.
8472         (mono_debug_create_mono_symbol_file): Removed.
8473         (mono_debug_open_mono_symbol_file): Take an argument which
8474         specifies whether to create a dynamic symbol file.
8475
8476 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8477
8478         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8479
8480 2003-02-05  Martin Baulig  <martin@ximian.com>
8481
8482         * reflection.c (mono_image_build_metadata): Make this public,
8483         protect it against being called multiple times, don't create
8484         resources and don't build the compressed metadata here.
8485         (mono_image_create_pefile): Do this here.
8486
8487         * icall.c
8488         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8489
8490 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8491
8492         * socket-io.c: fixed bug #36322.
8493
8494 2003-02-06  Piers Haken <piersh@friskit.com>
8495
8496         * appdomain.[ch]:
8497         * class.h:
8498         * debug-mono-symfile.c:
8499         * icall.c:
8500         * loader.c:
8501         * mono-config.c:
8502         * monosn.c:
8503         * reflection.c:
8504         * socket-io.c: warning cleanups
8505
8506 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8507
8508         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8509         function. works like remoting invoke, but does a check for the Proxy first.
8510
8511 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8512
8513         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8514
8515 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8516
8517         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8518         array of pointers.
8519         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8520         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8521
8522         * object.c (mono_store_remote_field_new): used by the new jit
8523         instead of mono_store_remote_field
8524         (mono_load_remote_field_new): used by the new jit
8525         instead of mono_load_remote_field
8526
8527 2003-02-05  Patrik Torstensson
8528
8529         * appdomain.c: changed unload to take the domain id instead
8530         of domain
8531         
8532         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8533
8534
8535 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8536
8537         * appdomain.c: don't look for assemblies in ApplicationBase if
8538         PrivateBinPathProbe is set.
8539
8540 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8541
8542         * object.c: make the first argument in main_args contain the absolute
8543         path to the assembly. Fixes bug #37511.
8544
8545 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8546
8547         * icall.c: get correct UTC offset for countries not using daylight
8548         time saving. Fixes bug #30030.
8549
8550 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8551
8552         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8553         and 1 are the family).
8554
8555 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
8556
8557         * icall.c (ves_icall_InternalExecute): removed wrong assertion
8558
8559         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8560
8561 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
8562
8563         * reflection.c: added support for SignatureHelper tokens, which is
8564         needed by the Calli opcode.
8565
8566         * reflection.h: track changes to SignatureHelper class.
8567
8568         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8569
8570 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8571
8572         * appdomain.c: fixed loading assemblies from PrivateBinPath.
8573
8574 2003-02-03  Patrik Torstensson
8575         * appdomain.[c|h], domain.c : 
8576          - Added support for getting a domain via domain id
8577          - Support for setting and getting domain from System.AppDomain 
8578            (used in cross appdomain channel)
8579          - Added support for get/set for a MonoAppContext on a thread 
8580            (Context class in System.Runtime.Remoting.Contexts),
8581          - Removed hack in Get/SetData and ExecuteAssembly.
8582         
8583         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8584         the managed world to get control when a proxy is created.
8585
8586         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8587         
8588 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
8589
8590         * icall.c
8591         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8592         Populate the codebase field as well.
8593
8594 2003-02-02  Martin Baulig  <martin@ximian.com>
8595
8596         * debug-mono-symfile.c
8597         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8598         (mono_debug_symfile_add_method): Allow interncalls.
8599
8600 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8601
8602         * icall.c: throw parse exception if strtod fails or the string is empty.
8603
8604 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8605
8606         * marshal.c: handle object type separately from defined
8607         class types.
8608
8609 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8610
8611         * marshal.c: handle NATIVE_LPSTR for strings when it's
8612         explicitly specified.
8613
8614 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8615
8616         * reflection.c, reflection.h, icall.c: setup the reflection
8617         handle cache for ModuleBuilders and AssemblyBuilders.
8618
8619 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
8620
8621         * reflection.c (reflection_methodbuilder_to_mono_method): set
8622         pinvoke flag
8623
8624 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8625
8626         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8627
8628 2003-01-29  Dick Porter  <dick@ximian.com>
8629
8630         * threads.c: No need for the fake_thread kludge now that Thread
8631         doesn't run a class constructor
8632         
8633 2003-01-29  Dick Porter  <dick@ximian.com>
8634
8635         * threads.c: Use g_direct_hash instead of the rather bogus
8636         g_int_hash
8637
8638 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
8639
8640         * marshal.c (mono_marshal_get_native_wrapper): add check for null
8641         (fix pinvoke12.exe)
8642         (mono_marshal_get_struct_to_ptr): generate valid IL code
8643         (mono_marshal_get_ptr_to_struct): generate valid IL code
8644         (*): correctly set sig->pinvoke, we need to memdup the signature
8645         to do that
8646
8647 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8648
8649         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8650         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8651
8652 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8653
8654         * profiler.c: provide more callers information.
8655
8656 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
8657
8658         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8659
8660         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8661
8662         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8663
8664 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8665
8666         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8667         exception instead of going into an infinite loop on dates which it 
8668         can't yet handle.
8669
8670         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
8671         out-of-range exception if needed.
8672
8673         * class.c (mono_class_setup_vtable): allow a virtual method to provide
8674         an implementation for an interface method and to override an inherited
8675         method at the same time. 
8676         Imagine a scenario when a virtual method is used to override a
8677         virtual abstract method in a parent class, and this same method 
8678         provides an implementation for an method inherited from an interface. 
8679         In this case, the interface resolution code will set im->slot, which 
8680         means that the virtual method override pass will skip this method 
8681         which means a pointer to the abstract method inherited from the parent
8682         will remain in the vtable of this non-abstract class.
8683
8684         * class.c: (mono_class_setup_vtable): continue search for a real 
8685         method if only an abstract method is found.     
8686
8687 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8688
8689         * reflection.c: add size to encoding for ByValStr and ByValArray
8690         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
8691
8692 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8693
8694         * class.c (mono_class_setup_vtable): pass the override info as an
8695         argument.
8696
8697         * class.c (mono_class_setup_vtable): set the slot of overriding methods
8698         correctly.
8699         
8700         * reflection.c (ensure_runtime_vtable); add support for method 
8701         overrides.
8702         
8703 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8704
8705         * reflection.c (resolution_scope_from_image): Hack to work to work with
8706         dynamic assemblies.
8707
8708         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
8709         added a 'force_ref' argument to force this function to allways return 
8710         a TypeRef. This is needed by mono_image_get_memberref_token ().
8711         
8712 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8713
8714         * reflection.c (mono_image_get_type_info): interfaces really don't have
8715         a parent.
8716
8717         * reflection.c (mono_image_basic_init): fill out missing fields of
8718         image structure.
8719
8720         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
8721         dynamic assemblies. This is required so dynamic assemblies show up in
8722         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
8723         Type::GetType() etc. This is consistent with MS behaviour.
8724
8725         * image.c image.h reflection.c: add newly created classes to the name 
8726         cache so mono_class_get () will find them.      
8727
8728 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
8729
8730         First part of changes to get IKVM.NET running under mono.
8731         
8732         * appdomain.h, appdomain.c: added new function 
8733         mono_domain_try_type_resolve() which will emit TypeResolve events. 
8734         This function will call AppDomain::DoTypeResolve to do the actual work.
8735
8736         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
8737         moved existing code dealing with dynamic tokens to a new function 
8738         called mono_reflection_lookup_dynamic_token (). This function will 
8739         raise TypeResolve events when appropriate. Since reflection.c is not 
8740         part of libmetadata, a new hook function called 
8741         mono_lookup_dynamic_token() is added to class.c which will call this.
8742
8743         * assembly.h assembly.c: make the invoke_load_hook function public,
8744         so it can be called for dynamic assemblies.
8745
8746         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
8747
8748         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
8749         type isn't found.
8750
8751         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
8752         MonoGHashTable, since it contains pointers to objects which the GC 
8753         needs to track.
8754
8755         * assembly.c (search_loaded): remove unused variable.
8756         
8757 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
8758
8759         * object.c: fixed issue exposed by gcc-generated IL programs
8760         that use RVA data for pointers.
8761
8762 2003-01-25  Martin Baulig  <martin@ximian.com>
8763
8764         * threads.c (start_wrapper): Moved the initialization of
8765         `start_func' above the mono_new_thread_init() call to which we
8766         pass it as argument.
8767
8768 2003-01-24  Martin Baulig  <martin@ximian.com>
8769
8770         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
8771         the MonoThread pointer.
8772
8773 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
8774
8775         * icall.c: Rename `PowImpl' to Pow.
8776
8777 2003-01-23  Dick Porter  <dick@ximian.com>
8778
8779         * threads.c (start_wrapper): Create a Thread object if needed, so
8780         the Main() thread can do the class initialisation in a subthread
8781         that has been set up to allow managed code execution.
8782
8783         Pass the thread ID instead of the MonoThread pointer to the thread
8784         start and attach callbacks.  This change is required, because the
8785         jit thread start callback must be called _before_ the Thread
8786         object can be created.
8787         
8788         (mono_thread_init): Removed much object creation code that is no
8789         longer needed.  No managed code is called from here now.
8790
8791         * object.c (mono_runtime_exec_managed_code): Create a subthread
8792         for Main, and call back to the runtime to use it.
8793         Set the exit code when Main exits.
8794
8795         * gc.c: Make sure domain finalisation happens in a subthread.
8796         Re-enable threaded GC, fixing bug 31333 (again).
8797
8798         * environment.c: System.Environment internall calls (so far just
8799         ExitCode is here, the others are still in icall.c)
8800
8801         * appdomain.c (mono_runtime_cleanup): All threads running managed
8802         code should have finished before mono_runtime_cleanup() is
8803         reached, so no need to clean up threads.
8804
8805 2003-01-22  Martin Baulig  <martin@ximian.com>
8806
8807         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
8808         `gpointer func' arguments.      
8809         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
8810         but added `MonoThread *thread' argument.
8811         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
8812
8813         * threads.c (mono_new_thread_init): Added `gpointer func' argument
8814         and pass it to the mono_thread_start_cb callback.
8815         (mono_install_thread_callbacks): New public function to install a
8816         set of callbacks which are set by the debugger.
8817         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
8818
8819 2003-01-22  Martin Baulig  <martin@ximian.com>
8820
8821         * Makefile.am: Install debug-mono-symfile.h.
8822
8823 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
8824
8825         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
8826
8827 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
8828
8829         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
8830         * class.c (mono_ptr_class_get): correctly set access levels of pointers
8831         (mono_array_class_get): correctly set access levels of arrays
8832
8833 2003-01-20      Patrik Torstensson
8834         * image.h (MonoAssemblyName): changed major, minor, build, revision
8835         from signed to unsigned.
8836
8837 2003-01-20  sean kasun <skasun@azstarnet.com>
8838
8839         * reflection.c (load_cattr_value): Now this handles
8840         MONO_TYPE_SZARRAY.  Fixes bug #35629
8841
8842 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
8843
8844         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
8845         integer value
8846
8847 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8848
8849         * decimal.c: fixed bug #26056.
8850
8851 2003-01-17  Martin Baulig  <martin@ximian.com>
8852
8853         * gc.c: Raise an ExecutionEngineException instead of using g_error().
8854
8855 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8856
8857         * exception.[ch]:
8858         (mono_get_exception_type_initialization): new function.
8859
8860         * object.c: throw a TypeInitializationException when an exception is
8861         thrown invoking the class constructor.
8862
8863 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8864
8865         * reflection.c: fixed attribute reading.
8866
8867 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8868
8869         * icall.c:
8870         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
8871         provided, look for the type in the calling assembly and then in
8872         mscorlib; if the assembly name is provided, only try that one.
8873
8874 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
8875
8876         * object.c: register the vtable before there is a chance it's
8877         queried again recursively.
8878
8879 2003-01-13  Duncan Mak  <duncan@ximian.com>
8880
8881         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
8882         gc-internal.h. 
8883         
8884 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
8885
8886         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
8887
8888 2003-01-11  Martin Baulig  <martin@ximian.com>
8889
8890         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
8891         this to 20 for the release.
8892
8893 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
8894
8895         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
8896
8897         * loader.c (mono_method_get_marshal_info): bug fix
8898
8899         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
8900         structures with explicit layout
8901
8902 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
8903
8904         * profiler.c: made the output more readable (and sorted). 
8905         Added caller information for the allocation profiler.
8906
8907 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
8908
8909         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
8910
8911 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8912
8913         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
8914         to get value types.
8915         
8916 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
8917
8918         * object.c, profiler.h, profiler.c, profiler-private.h:
8919         Added object allocation profiler.
8920
8921 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
8922
8923         * reflection.h, reflection.c: handle global methods.
8924         Compress blob entries.
8925
8926 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
8927
8928         * marshal.c: fix compilation.
8929
8930 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
8931
8932         * loader.c (mono_method_get_marshal_info): impl.
8933
8934         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
8935
8936 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8937
8938         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
8939         for reference types.
8940
8941 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
8942
8943         * loader.c: fixed off by one error in loaded parameter names.
8944
8945 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
8946
8947         * marshal.c (mono_marshal_get_icall_wrapper): like
8948         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
8949         instead of a MonoMethod.
8950
8951 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8952
8953         * decimal.c: fixed bug #36537.
8954
8955 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
8956
8957         * marshal.c: throw a missing method exception if a
8958         P/Invoke method is not found.
8959
8960 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
8961
8962         * icall.c: allow a null this for constructors.
8963
8964 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
8965
8966         * icall.c: raise the proper exceptions if the arguments to the
8967         internal Invoke are incorrect.
8968
8969 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
8970
8971         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
8972
8973 2003-01-03  Martin Baulig  <martin@ximian.com>
8974
8975         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
8976
8977 2002-12-31  Martin Baulig  <martin@ximian.com>
8978
8979         * debug-mono-symfile.c: Completely rewrote the type section.
8980         Instead of using individual malloc()ed fields, we use one big
8981         continuous memory area and offsets into this area.
8982         See the comments in the source code for details.
8983
8984 2002-12-30  Martin Baulig  <martin@ximian.com>
8985
8986         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
8987
8988 2002-12-30  Martin Baulig  <martin@ximian.com>
8989
8990         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
8991         line number table in this data blob instead of using an external
8992         pointer.
8993
8994 2002-12-28  Martin Baulig  <martin@ximian.com>
8995
8996         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
8997
8998 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
8999
9000         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9001         as a boxed return type.
9002
9003 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9004
9005         * appdomain.c
9006         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9007         g_build_filename to properly get separators on the filename created.
9008
9009         * object.h: Small change, introduce MonoMarshalByRefObject to
9010         track the layout of that structure in the C# universe as we make
9011         changes there.
9012
9013 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9014
9015         * object.c: removed assert to allow static fields on interfaces.
9016         * loader.c: a TypeSpec may be used for any type, not just arrays.
9017
9018 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9019
9020         * class.c, class.h: added mono_class_array_element_size ().
9021         Ignore static methods in interfaces.
9022
9023 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9024
9025         * threads.c: fixed the build under cygwin.
9026
9027 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9028
9029         * reflection.c: handle nullref constants. Allocate keys for
9030         reflection handles with the GC.
9031
9032 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9033
9034         * threads.c, threads.h: added mono_thread_get_abort_signal()
9035         to get a suitable signal for thread abort.
9036
9037 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9038
9039         * metadata.c: fix handling of ExportedType table.
9040
9041 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9042
9043         * icall.c: added WriteWindowsDebugString internal call.
9044
9045 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9046
9047         * reflection.h: added fields to match C# implementation.
9048
9049 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9050
9051         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9052
9053 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9054
9055         * gc.h, gc-internal.h: Rename header for GC internal calls to
9056         gc-internal.h from gc.h as to not clash with Boehm GC having its
9057         header installed as <gc.h> in outside include paths.
9058         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9059         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9060
9061 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9062
9063         * icall.c: assign minor, build and revision in FillName.
9064
9065 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9066
9067         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9068         Added support for running code generated by Reflection.Emit.
9069
9070 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9071
9072         * appdomain.c: check for NULL argument in LoadFrom.
9073
9074 2002-12-10  Dick Porter  <dick@ximian.com>
9075
9076         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9077
9078 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9079
9080         * appdomain.c: fix buglet when building exe file name.  Handle full
9081         assembly name (needed after latest changes to AssemblyName).
9082         * image.c:
9083         (mono_image_close): free some hashtables.
9084
9085 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9086
9087         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9088         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9089         on some systems (redhat 7.3) 
9090
9091 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9092
9093         * threads.c: delete the critical section of a sync block,
9094         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9095
9096 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9097
9098         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9099
9100 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9101
9102         * appdomain.[ch]: handle the assembly preload event to try loading the
9103         assemblies using the paths we have in the current domain.
9104
9105         * assembly.[ch]: created an assembly preload hook that is called to try
9106         loading the assembly by other means that the ones provided here.
9107
9108         * domain.c: initialize the domain search path.
9109
9110         From now on, assemblies (TODO: except corlib and System) are loaded
9111         according to these rules when using mono_assembly_load ():
9112
9113                 1. It tries to load the assembly from the ApplicationBase
9114                 of the current domain appending .dll and .exe (TODO: have to
9115                 try loading from name/name.dll and name/name.exe).
9116
9117                 2. It tries the search path specified in PrivateBinPath for the
9118                 current domain (if any).
9119
9120                 3. Previous behavior.
9121
9122 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9123
9124         * icall.c: implemented GetInterfaceMap() related icall.
9125         * domain.c, loader.h: load MethodInfo in mono_defaults.
9126
9127 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9128
9129         * gc.c: disable the finalizer thread for now, untill all the issues
9130         with it are resolved.
9131
9132 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9133
9134         * string-icalls.c: handle embedded nulls in string ctor when the
9135         length is specified.
9136
9137 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9138
9139         * class.c: look for explicit interface implementation in parent
9140         classes, too.
9141
9142 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9143
9144         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9145
9146 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9147
9148         * gc.c: protect handles with a critical section.
9149
9150 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9151
9152         * icall.c:
9153         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9154         parameters. If no assembly specified, try getting the type from all
9155         the assemblies in the current domain, else, load the assembly and get
9156         the type from it.
9157
9158 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9159
9160         * marshal.c: applied patch from Aleksey Demakov that fixes
9161         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9162
9163 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9164
9165         * icall.c: fixed get_location.
9166
9167 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9168
9169         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9170         declarations to make it work with older gcc. 
9171
9172         * loader.c (mono_get_method): set signature->pinvoke for native calls
9173
9174 2002-11-20  Dick Porter  <dick@ximian.com>
9175
9176         * threads.c (mono_thread_init): Set the main thread's handle
9177
9178 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9179
9180         * gc.c: allow compilation without GC support. Changed to match the
9181         mono coding style.
9182
9183 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9184
9185         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9186
9187 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9188
9189         * reflection.c: set a public key token on the core assemblies.
9190
9191 2002-11-18  Dick Porter  <dick@ximian.com>
9192
9193         * threads.c: Split out some thread initialisation so that other
9194         files can set the start callback function.
9195
9196         * gc.c: Run finalisers in a separate thread, to avoid stack
9197         overflow.  Fixes bug 31333.
9198
9199         * appdomain.c: Set up GC finalisation thread.
9200
9201         * reflection.c: 
9202         * object.c: 
9203         * domain.c: Use gc.h macros for GC_malloc
9204         
9205 2002-11-15  Dick Porter  <dick@ximian.com>
9206
9207         * threadpool.c: 
9208         * threads.c:
9209         * appdomain.c: Removed mono_runtime_init_with_attach(),
9210         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9211         merging the extra parameter with the existing function.  Removed
9212         unneeded code in mono_thread_attach().
9213
9214 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9215
9216         * image.c (mono_image_loaded_by_guid): a method to get loaded
9217         images by guid. 
9218         (load_metadata_ptrs): we store the guid as string.
9219
9220 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9221
9222         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9223
9224         * metadata.c (mono_guid_to_string): imported method form Zoltan
9225         Varga (slightly modified)
9226
9227         * assembly.c (mono_assembly_open): load precompiled code
9228
9229         * loader.h (MonoMethod): we store the method token for use in the
9230         aot compiler. 
9231
9232 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9233
9234         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9235         the hook function called when an assembly is loaded.
9236         
9237         * domain.c: Modified file.
9238         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9239
9240         Fixes bug #33196.
9241
9242 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9243
9244         * reflection.c: Map PEFileKind to the value expected by the WinNT
9245         image loader. 
9246
9247 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9248
9249         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9250         Read until the buffer is filled completely.
9251
9252 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9253
9254         * icall.c: implemented MonoType.InternalGetEvent ().
9255
9256 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9257
9258         * appdomain.c: implemented InitAppDomainSetup. Delayed
9259         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9260         the entry_assembly.
9261
9262         * assembly.c: base_dir is now an absolute path ending with
9263         G_DIR_SEPARATOR.
9264
9265         * icall.c: modified get_location according to the above changes.
9266
9267         * object.c: init AppDomain.SetupInformation for the default domain after
9268         we have the entry assembly.
9269
9270         * domain.c: when unloading a domain, setup = NULL.
9271
9272 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9273
9274         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9275
9276 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9277
9278         * object.h, object.c: introduced mono_object_get_virtual_method ()
9279         to lookup the method invoked on an object when a callvirt is done on
9280         a method.
9281         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9282
9283 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9284
9285         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9286         current domain when loaded an assembly and failed to load it.
9287
9288         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9289
9290 2002-10-31  Dick Porter  <dick@ximian.com>
9291
9292         * icall.c: 
9293         * file-io.h: 
9294         * file-io.c: Return the error status in a parameter, as the
9295         GetLastError() value has long since been blown away if we try and
9296         look it up in a subsequent internal call invocation.  Delete the
9297         GetLastError() internal call, because it's useless.
9298
9299 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9300
9301         * class.[ch]: added cast_class to fix bug 29517
9302
9303 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9304
9305         * marshal.c: create valid IL code in the filter clause:
9306         the new JIT is less forgiving:-)
9307
9308 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9309
9310         * icall.c: removed get_property internal call.
9311
9312 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9313
9314         * appdomain.h domain.c: Added an ID to appdomains.
9315         
9316         * threads.c threads.h icall.c: Implement icall
9317         Thread:GetDomainID(), and remove unused icall 
9318         CurrentThreadDomain_internal.
9319
9320 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9321
9322         * icall.c: Don't recurse through the base types in GetConstructor.
9323         Fixes bug #32063. 
9324
9325 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9326
9327         * mempool.h, mempool.c: added mono_mempool_empty() and
9328         mono_mempool_stats().
9329
9330 2002-10-23  Dick Porter  <dick@ximian.com>
9331
9332         * file-io.c: 
9333         * file-io.h: 
9334         * icall.c: Added MonoIO.GetFileType internal call
9335
9336 2002-10-17  Dick Porter  <dick@ximian.com>
9337
9338         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9339         delegate semaphore before waiting for all threads to finish,
9340         because new threads can also call async delegates.  Fixes bug
9341         32004.
9342
9343         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9344         of 3 seconds, in case another async job is queued.  (This part is
9345         needed because the bug fix reintroduced the 3s exit lag.)  This
9346         makes the mono_runtime_shutdown flag superfluous.
9347
9348 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9349
9350         * reflection.c: include ehader size in method section headers.
9351         Really check for suplicated modules entries.
9352
9353 2002-10-17  Martin Baulig  <martin@gnome.org>
9354
9355         * debug-mono-symfile.c: Added back support for locals.
9356
9357 2002-10-14  Martin Baulig  <martin@gnome.org>
9358
9359         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9360         MONO_TYPE_VOID.
9361
9362 2002-10-14  Martin Baulig  <martin@gnome.org>
9363
9364         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9365         mono_class_get() instead of looking in the class cache. 
9366
9367 2002-10-13  Martin Baulig  <martin@gnome.org>
9368
9369         * debug-mono-symfile.c: Set version number to 28, include the
9370         signature in method names.
9371
9372 2002-10-13  Martin Baulig  <martin@gnome.org>
9373
9374         * debug-mono-symfile.h: Set version number to 27.
9375
9376 2002-10-11  Martin Baulig  <martin@gnome.org>
9377
9378         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9379
9380 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9381
9382         * metadata.c, metadata.h: added helper function to allocate signatures.
9383
9384 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9385
9386         * icall.c: added internal call to get the location of machine.config.
9387
9388 2002-10-08  Martin Baulig  <martin@gnome.org>
9389
9390         * debug-mono-symfile.c: Ignore classes with a pending init for the
9391         moment.
9392
9393 2002-10-03  Dick Porter  <dick@ximian.com>
9394
9395         * threads.c: Freebsd pthread_t is a pointer
9396
9397 2002-10-03  Dick Porter  <dick@ximian.com>
9398
9399         * socket-io.c: Implemented GetHostName_internal
9400
9401 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9402
9403         * mono-config.c:
9404         (mono_config_parse_file): don't leak the text.
9405
9406 2002-10-02  Martin Baulig  <martin@gnome.org>
9407
9408         * debug-mono-symfile.c: Added support for methods.
9409
9410 2002-10-01  Martin Baulig  <martin@gnome.org>
9411
9412         * debug-mono-symfile.c: Don't emit methods and line numbers for
9413         the dynamic symbol file, just write the type table.  We can easily
9414         have an external helper program which creates a symbol file for an
9415         IL file.        
9416
9417 2002-10-01  Dick Porter  <dick@ximian.com>
9418
9419         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9420         Only add the handle to the cleanup array when we're about to
9421         launch the thread.  Bug 31425 deadlocked when the test was run on
9422         mono under w32.
9423
9424 2002-10-01  Martin Baulig  <martin@gnome.org>
9425
9426         * debug-mono-symfile.c: Added support for properties.
9427
9428 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9429
9430         * reflection.c: unaligned store fix from Mark Crichton
9431         <crichton@gimp.org>.
9432
9433 2002-09-27  Martin Baulig  <martin@gnome.org>
9434
9435         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9436         New interncall.
9437
9438 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9439
9440         * assembly.h, assembly.c: use a sane API to hook into the assembly
9441         loading process instead of a useless special-purpouse hack
9442         (ngen needs a hook, too, for example).
9443
9444 2002-09-27  Dick Porter  <dick@ximian.com>
9445
9446         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9447         io-layer can set up some process handle info.  Not needed on w32,
9448         but doesn't hurt either.
9449
9450         * process.c: Pass the program name in the second parameter to
9451         CreateProcess, so the path is searched.  Include the working
9452         directory. Implemented process name, process enumeration, and some
9453         process detail internal calls.
9454         
9455         * icall.c: Added internal calls for process lookup, and some
9456         process details
9457
9458 2002-09-26  Martin Baulig  <martin@gnome.org>
9459
9460         * assembly.c (mono_install_open_assembly_hook): New global
9461         function to install a function to be invoked each time a new
9462         assembly is loaded.
9463         (mono_assembly_open): Run this callback function if set.
9464
9465         * debug-mono-symfile.c: Put back line numbers for the dynamic
9466         symbol file and also record the .il file as source file.  This
9467         allows us to install the temporary symbol file as `file.dbg' just
9468         like a compiler-generated one.
9469
9470 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9471
9472         * Corrected typo in gc.c (BOHEM vs BOEHM).
9473
9474 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9475
9476         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9477         GetProperties. Also avoid calling g_slist_length in GetProperties and
9478         GetMethods.
9479
9480 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9481
9482         * reflection.c: avoid unaligned stores (bug spotted by
9483         Mark Crichton  <crichton@gimp.org>).
9484
9485 2002-09-25  Martin Baulig  <martin@gnome.org>
9486
9487         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9488         instead of guint64 for addresses and added prologue/epilogue info.
9489
9490 2002-09-25  Martin Baulig  <martin@gnome.org>
9491
9492         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9493         store line number info.  For the dynamic symbol file, we only need
9494         to provide the JIT generated dynamic line number info for the dynamic
9495         symbol file.
9496
9497 2002-09-25  Martin Baulig  <martin@gnome.org>
9498
9499         * debug-mono-symfile.h: Incremented version number.
9500
9501 2002-09-24  Martin Baulig  <martin@gnome.org>
9502
9503         * class.c (mono_debugger_class_init_func): New global function
9504         pointer variable.
9505         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9506         call it.
9507
9508         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9509         function.  This is called via the mono_debugger_class_init_func
9510         hook to add all types to the dynamic type table.
9511         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9512         from its metadata token.
9513
9514         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9515         New interncall for the debugger.
9516
9517 2002-09-24  Nick Drochak <ndrochak@gol.com>
9518
9519         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9520         before using it in case it is null.
9521         
9522 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9523
9524         * metadata.c: allow custom modifiers in local var signatures
9525         (bug spotted by Zoltan Varga).
9526
9527 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9528
9529         * class.c: deal with the <Module> class that may have a NULL vtable.
9530         Eliminate warnings.
9531
9532 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9533
9534         * image.c, image.h: more strong name helpers.
9535         * monosn.c: more work: convert pem keys to cryptoapi format.
9536
9537 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9538
9539         * string-icalls.c: speedup IndexOf.
9540
9541 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9542
9543         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9544
9545 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9546
9547         * icall.c: cleanup: use mono_object_domain ().
9548
9549 2002-09-23  Martin Baulig  <martin@gnome.org>
9550
9551         * debug-mono-symfile.c: Improved type support.
9552
9553 2002-09-22  Martin Baulig  <martin@gnome.org>
9554
9555         * debug-mono-symfile.c: Added support for reference types and strings.
9556
9557 2002-09-22  Martin Baulig  <martin@gnome.org>
9558
9559         * debug-mono-symfile.c: Started to work on the type table.
9560
9561 2002-09-21  Martin Baulig  <martin@gnome.org>
9562
9563         * debug-mono-symfile.c: Largely reworked the symbol table format.
9564         The symbol table is now incrementally updated each time a new
9565         method is added.  We're now also using our own magic and version
9566         so that you don't need to recompile all your classes if the
9567         dynamic table changes.
9568         (mono_debug_update_mono_symbol_file): Removed.
9569         (mono_debug_symfile_add_method): New function to add a method.
9570
9571 2002-09-21  Martin Baulig  <martin@gnome.org>
9572
9573         * icall.c
9574         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9575         New interncall.
9576
9577         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9578         New interncall to get a method from its metadata token.
9579
9580 2002-09-21  Martin Baulig  <martin@gnome.org>
9581
9582         * debug-mono-symfile.c: Create type table.
9583
9584 2002-09-20  Martin Baulig  <martin@gnome.org>
9585
9586         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9587
9588 2002-09-20  Martin Baulig  <martin@gnome.org>
9589
9590         * debug-mono-symfile.c: Provide information about params and locals.
9591
9592 2002-09-20  Martin Baulig  <martin@gnome.org>
9593
9594         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9595         New interncall.
9596
9597         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9598         interncall to get a method from its metadata token.
9599
9600 2002-09-20  Martin Baulig  <martin@gnome.org>
9601
9602         * debug-mono-symfile.c: Added a few checks for method->header
9603         being non-NULL.  This should never happen, but for the moment
9604         let's use a g_warning() rather than a g_assert().
9605
9606 2002-09-19  Mark Crichton  <crichton@gimp.org>
9607
9608         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9609         even if support for it isn't present.  Added an #ifdef to fix this.
9610
9611         * socket-io.c: Added checks back for Solaris support.
9612
9613 2002-09-19  Martin Baulig  <martin@gnome.org>
9614
9615         * debug-mono-symfile.c (read_string, write_string): Reflect latest
9616         changes in the symbol file format.
9617
9618 2002-09-18  Martin Baulig  <martin@gnome.org>
9619
9620         * debug-mono-symfile.c: Set version number to 21.
9621
9622 2002-09-18  Dick Porter  <dick@ximian.com>
9623
9624         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9625         on netbsd.  Fixes bug 30051.
9626
9627 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9628
9629         * reflection.c:
9630         (set_version_from_string): little fix.
9631
9632 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9633
9634         * monosn.c, Makefile.am: added strong name utility.
9635         * reflection.h, reflection.c: implemented delayed signing,
9636         locale, version and hash id assembly attributes.
9637
9638 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9639
9640         * loader.c, metadata.c: load param attributes in signatures.
9641
9642 2002-09-16  Martin Baulig  <martin@gnome.org>
9643
9644         * debug-mono-symfile.c: Added string table with all method names.
9645
9646 2002-09-14  Martin Baulig  <martin@gnome.org>
9647
9648         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9649         fast method lookup.
9650
9651 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9652
9653         * reflection.c: record the public key token of referenced assemblies.
9654
9655 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9656
9657         * image.c, image.h: added functions to get the strong name and the
9658         public key of an assembly.
9659         * pedump.c: use them.
9660
9661 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
9662
9663         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9664
9665 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
9666
9667         * marshal.c (mono_marshal_get_managed_wrapper): Added
9668         MONO_TYPE_BOOLEAN 
9669
9670 2002-09-11  Martin Baulig  <martin@gnome.org>
9671
9672         * gc.c: Call GC_unregister_disappearing_link() on all links when
9673         finalizing them, this is necessary to aviod a crash in boehm's
9674         finalize handler.
9675
9676 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9677
9678         * gc.c: handle GetTarget for finalized objects spotted and fixed by
9679         nick@chemlab.org.
9680
9681 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9682
9683         * icall.c: implemented MonoType::Module.
9684         * reflection.c, reflection.h: mono_module_get_object () from
9685         Tomi Pakarinen <tomi.pakarinen@welho.com>.
9686
9687 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9688
9689         * icall.c: ignore overridden methods in GetMethods ().
9690         Fix for FieldInfo::SetValue().
9691         * object.c: handle float/double in runtime invoke.
9692
9693 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9694
9695         * object.c: allow a constructor to be called again on an object.
9696
9697 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9698
9699         * class.h, class.c: move field layout code to it's own function and
9700         export it. Get an interface id earlier. Move fields in MonoClass
9701         so they are more cache friendly and align the bitfields.
9702         * loader.c: temporary handle get_param_names() for a runtime method.
9703         * reflection.c, reflection.h: more code to handle runtime creation of
9704         types.
9705
9706 2002-09-09  Martin Baulig  <martin@gnome.org>
9707
9708         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
9709         signature with the pinvoke field being set for the actual call.
9710
9711 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9712
9713         * icall.c: removed some unused icalls. Start of map of glib charsets
9714         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
9715
9716 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9717
9718         * debug-helpers.c: break infinite loop (found and fixed by
9719         Holger Arnold <harnold@gmx.de>).
9720
9721 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9722
9723         * icall.c: target may be null in create_delegate.
9724
9725 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9726
9727         * marshal.c: handle a boolean return type.
9728
9729 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9730
9731         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
9732
9733 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9734
9735         * gc.c: fix weakreferences.
9736
9737 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9738
9739         * icall.c: added icall to get default codepage.
9740
9741 2002-09-03  Dick Porter  <dick@ximian.com>
9742
9743         * threads.h: 
9744         * threads.c: Use MonoThread instead of MonoObject where
9745         apropriate.
9746
9747         Store running thread objects in a hash table, so that we have all
9748         the info to hand when waiting for them to finish
9749         (means we don't need OpenThread() any more, so mingw builds should
9750         be fully functional again.)
9751
9752         * verify.c:
9753         * object.h: Added thread ID to MonoThread
9754
9755 2002-09-03  Martin Baulig  <martin@gnome.org>
9756
9757         * icall.c (System.Reflection.Assembly::get_location): New interncall.
9758
9759 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9760
9761         * icall.c: fixed leak in get_temp_path. Thanks lupus.
9762
9763 2002-09-03  Martin Baulig  <martin@gnome.org>
9764
9765         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
9766         argument to store the end address of the disassembled instruction.
9767
9768         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
9769         here from debug-symfile.h.
9770         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
9771         JIT into this struct.
9772         (MonoSymbolFile): Added `char *image_file' field.
9773         (MonoDebugGetMethodFunc): Removed.
9774         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
9775         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
9776         (mono_debug_find_method): New method.
9777
9778         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
9779         create a full symbol file.
9780         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
9781         and static symbol files.
9782         (mono_debug_find_method): The symbol file keeps an internal method hash,
9783         call this to get a MonoDebugMethodInfo from a MonoMethod.
9784
9785         * debug-symfile.[ch]: Removed.
9786
9787 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
9788
9789         * image.c (do_mono_image_open): Remove linker version check.
9790
9791 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
9792
9793         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
9794         wrappers for instance methods.
9795         
9796 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9797
9798         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
9799
9800 2002-08-28  Dick Porter  <dick@ximian.com>
9801
9802         * Makefile.am: Export HOST_CC for w32 builds
9803
9804 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9805
9806         * file-io.c process.c: MonoString are null terminated, no
9807         need for mono_string_to_utf16() anymore.
9808
9809 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9810
9811         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
9812
9813 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
9814
9815         * icall.c, reflection.h: speedup System.MonoType.
9816
9817 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9818
9819         * reflection.c: allow null as the value of a string argument in
9820         custom attributes constructors.
9821
9822 2002-08-27  Martin Baulig  <martin@gnome.org>
9823
9824         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
9825         `trampoline_address' field.
9826
9827 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
9828
9829         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
9830         check (fixes bug #29486) 
9831
9832 2002-08-27  Martin Baulig  <martin@gnome.org>
9833
9834         * debug-mono-symfile.c: Changed the file format in a way that allows us
9835         open it read-only and to use a specially malloced area for all the
9836         dynamic data.  We can now also generate a symbol file on-the-fly if we're
9837         debugging IL code and there is no MCS generated symbol file for it.
9838
9839 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9840
9841         * object.c: added a define for a good string and array
9842         creation speedup (not enabled by default because we need to deal with
9843         the synch stuff).
9844
9845 2002-08-26  Martin Baulig  <martin@gnome.org>
9846
9847         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
9848         function to create a dynamic symbol file.  This is used by the
9849         debugger to create a symbol file for IL code on-the-fly.
9850
9851 2002-08-26  Martin Baulig  <martin@gnome.org>
9852
9853         * loader.c (mono_lookup_pinvoke_call): Include the error message
9854         from g_module_error() in the error message.
9855
9856 2002-08-24  Martin Baulig  <martin@gnome.org>
9857
9858         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
9859         function to update the symbol file.  The symbol file is mmap()ed
9860         writable, but private.  This allows us to install the symbol file
9861         together with the assembly.
9862
9863 2002-08-24  Martin Baulig  <martin@gnome.org>
9864
9865         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
9866         but they can read the new symbol file format which mcs is now creating.
9867
9868         * debug-symfile.c (mono_debug_find_source_location): Moved to
9869         debug-mono-symfile.c; this is now operating on the new symbol file.
9870
9871 2002-08-23  Martin Baulig  <martin@gnome.org>
9872
9873         * debug-helpers.c (mono_method_desc_from_method): New function to get
9874         a MonoMethodDesc from a MonoMethod.
9875
9876 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9877
9878         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
9879         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
9880
9881 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
9882
9883         * string-icalls.[ch]: make helper methods static.
9884
9885 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9886
9887         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
9888         types to it and to SetValueInternal.
9889
9890         * object.c: Moved handle_enum label to its proper place. This was the
9891         f... bug! ;-)
9892
9893         This time i compiled mcs and gtk-sharp and they both work.
9894
9895 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9896
9897         * icall.c: reverted partially my previous patch until 
9898         object.c:set_value handles enums correcly.
9899
9900 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9901
9902         * icall.c:
9903         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
9904         (ves_icall_System_Environment_get_MachineName): removed warning when
9905         compiling under cygwin.
9906
9907 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9908
9909         * object.c: fixed field_get_value() for reference types.
9910
9911 2002-08-22  Dick Porter  <dick@ximian.com>
9912
9913         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
9914         Don't free a buffer while it's still needed.  Patch from Jonathan
9915         Liger <Jonathan.liger@wanadoo.fr>
9916
9917 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
9918
9919         * icall.c (ves_icall_System_Environment_get_Platform): Add new
9920         internal call.
9921
9922 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
9923
9924         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
9925         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
9926
9927         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
9928         we call unmanaged code which throws exceptions.
9929
9930 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9931
9932         * appdomain.h: added per-domain entry_assembly.
9933         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
9934         arguments.
9935         * icall.c: Assembly::GetEntryAssembly icall.
9936         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
9937         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
9938
9939 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
9940
9941         * appdomain.h, gc.c: added mono_domain_finalize ().
9942
9943 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9944
9945         * object.c:
9946         (mono_print_unhandled_exception): changed g_warning by g_printerr
9947         because g_log has a 1024 characters limit (yeah, i got a big stack
9948         trace). Don't print exception name, that should be in ToString 
9949         returned string.
9950
9951 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9952
9953         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
9954         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
9955
9956 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9957
9958         * object.c:
9959         (mono_print_unhandled_exception): after previous commit, i realized
9960         that MS calls ToString on the exception. I changed this function to
9961         do that. This way we get stack_trace for free.
9962
9963 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9964
9965         * object.c:
9966         (mono_print_unhandled_exception): invoke Message property instead of
9967         getting 'message' field from Exception. Don't allocate memory for
9968         'trace' and 'message' if not needed.
9969
9970 2002-08-18  Dick Porter  <dick@ximian.com>
9971
9972         * unicode.c: Fix asserts to match Encoder.cs checks
9973
9974 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9975
9976         * marshal.c: fix unaligned store issue and a few wrong
9977         opcode argument types.
9978
9979 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9980
9981         * icall.c: added GetUninitializedObjectInternal internal call.
9982
9983 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
9984
9985         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
9986         to the right domain.
9987
9988 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
9989
9990         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
9991
9992         * class.c (class_compute_field_layout): set blittable to false for Strings
9993
9994         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
9995
9996 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9997
9998         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
9999         first chunk of code to create types at runtime. Code to
10000         handle ReflectedType/DeclaringType. Make reflection handles
10001         domain specific.
10002
10003 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10004
10005         * class.c: set correct name in arrays.
10006
10007 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10008
10009         * appdomain.c (mono_domain_transfer_object): make it work with
10010         valuetypes. bug fixes.
10011
10012 2002-08-12  Dick Porter  <dick@ximian.com>
10013
10014         * object.h: Rename some parameters to avoid c++ keywords (Patch
10015         from Joseph Wenninger <kde@jowenn.at>)
10016
10017 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10018
10019         * icall.c: added icall to implement Assembly.GetFile*.
10020
10021 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10022
10023         * reflection.h, reflection.c: code to embed managed resources.
10024
10025 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10026
10027         * class.c: move all the type size stuff into
10028         class_compute_field_layout().
10029
10030 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10031
10032         * class.c: ensure enums have always the correct instance size.
10033         * unicode.c: remove wrong assert.
10034
10035 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10036
10037         * assembly.c: fix mem corruption issue.
10038         * image.h, image.c: added mono_image_get_resource () to access
10039         managed resources.
10040         * icall.c: implemented Assembly.EntryPoint property and some
10041         Managed Resources related internalcalls.
10042
10043
10044 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10045
10046         * image.c, image.h: impemented mono_image_get_entry_point ().
10047         * appdomain.c: use mono_image_get_entry_point.
10048
10049 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10050
10051         * reflection.c: support the object type argument when loading
10052         custom attributes.
10053
10054 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10055
10056         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10057         String as return type.
10058
10059 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10060
10061         * reflection.c: fix encoding of named args for custom attrs to match
10062         the ms implementation. Read them back when instantiating custom
10063         attributes.
10064
10065 2002-08-02  Radek Doulik  <rodo@ximian.com>
10066
10067         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10068         by Dietmar as quick fix
10069         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10070         16 as stack size, used on more places as quick fix before Dietmar
10071         will fix it properly
10072
10073 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10074
10075         * object.h, object.c: added accessors for fields and properties.
10076
10077 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10078
10079         * class.c, class.h: made mono_class_get_field_from_name ()
10080         loop on parent types.
10081         Added mono_class_get_property_from_name ().
10082
10083 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10084
10085         * class.c, class.h: move the code to setup the type vtable in its own
10086         function so that it can be reused also for types created at runtime.
10087         Eliminate the "class" identifier from the header file.
10088         * reflection.c: setup the vtable for enums so that we can create
10089         objects for use in SetConstant ().
10090
10091 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10092
10093         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10094         instead of the delegate itself as this pointer (bug #28383)
10095
10096 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10097
10098         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10099         conversions.
10100
10101 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10102
10103         * loader.c: don't set the pinvoke bit on icalls.
10104
10105 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10106
10107         * debug-helpers.c (mono_method_full_name): only print a number to
10108         indicate wrapper type (so that the output is more readable in traces).
10109
10110 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10111
10112         * class.c (mono_class_init): include method override patch from Paolo
10113
10114 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10115
10116         * icall.c: fixed GetTypeCode().
10117
10118 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10119
10120         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10121         use real delegate invoke function to make it work with multicast
10122         delegates (fix bug# 28291).
10123
10124 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10125
10126         * object.c: load constant strings.
10127
10128 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10129
10130         * reflection.c: no magic numbers.
10131         * tabledefs.h: security action enum.
10132
10133 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10134
10135         * assembly.c: fix possible memory corruption.
10136
10137 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10138
10139         * reflection.h, reflection.c: added support for linking resources.
10140         * verify.c: check we have an updated corlib.
10141
10142 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10143
10144         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10145         string arrays.
10146         (mono_marshal_string_array): null terminate unmanaged string arrays.
10147         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10148
10149 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10150
10151         * icall.c: Type.GetType () can now return also types from the
10152         calling assembly.
10153
10154 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10155
10156         * loader.h, loader.c: stack walking support.
10157         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10158         GetCallingAssembly.
10159
10160 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10161
10162         * marshal.c: added optimisations for blittable types 
10163
10164         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10165         (mono_class_setup_mono_type): set blittable attribute for single
10166         and double.
10167
10168         * marshal.c (mono_string_utf8_to_builder): impl.
10169         (mono_string_builder_to_utf8): impl.
10170         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10171
10172 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10173
10174         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10175         (mono_marshal_get_managed_wrapper): impl. byref types
10176
10177 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10178
10179         * icall.c:
10180         (search_method): don't display debug message. 
10181
10182 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10183
10184         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10185
10186 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10187
10188         * appdomain.c: set the missing filename when throwing exception.
10189
10190 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10191
10192         * metadata.c (mono_type_size): code cleanup
10193         (mono_type_stack_size): removed some test code
10194
10195 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10196
10197         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10198         mono_get_exception_file_not_found now.
10199
10200         * exception.c (mono_exception_from_name_two_strings): New version
10201         that will call a constructor with two string arguments. 
10202         (mono_get_exception_file_not_found): New helper routine, used to
10203         report file-not-found errors.
10204
10205 2002-07-20  Dick Porter  <dick@ximian.com>
10206
10207         * process.h:
10208         * process.c: Pass file handles to CreateProcess
10209         
10210         * icall.c:
10211         * file-io.h:
10212         * file-io.c: Implemented CreatePipe
10213
10214 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10215
10216         * metadata.c (mono_get_param_info): set alignment for value types
10217
10218 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10219
10220         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10221         Constify mono_domain_assembly_open().
10222         * loader.c: handle null namespace in icalls.
10223
10224 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10225
10226         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10227         (emit_str_to_ptr_conv): marshal object as structs
10228
10229         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10230
10231         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10232
10233 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10234
10235         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10236         (mono_marshal_get_native_wrapper): we an now return value types
10237
10238 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10239
10240         * verify.c: more checks implemented.
10241
10242 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10243
10244         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10245         (fix bug #27695)
10246         (mono_marshal_get_native_wrapper): allow byref arguments
10247         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10248         impl. PtrToStringXXX methods
10249         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10250         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10251         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10252         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10253         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10254
10255 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10256
10257         * reflection.c: fix buglet in parsing an assembly name.
10258
10259 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10260
10261         * marshal.c (emit_ptr_to_str_conv): first impl.
10262
10263 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10264
10265         * object.c, class.h: cache the vtable in the class as suggested by
10266         vargaz@freemail.hu (Zoltan Varga).
10267
10268 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10269
10270         * class.h, loader.c: added mono_field_from_token().
10271         * verify.c: first cut of type checking code.
10272
10273 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10274
10275         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10276
10277 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10278
10279         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10280         (fix bug #27782)
10281         (mono_marshal_get_remoting_invoke): impl.
10282         (mono_delegate_begin_invoke): impl.
10283         (mono_mb_emit_save_args): impl.
10284         (mono_delegate_end_invoke): impl.
10285         (mono_marshal_get_delegate_begin_invoke):
10286         (mono_marshal_get_delegate_end_invoke):
10287         (mono_marshal_get_delegate_invoke): generate a special name for
10288         those methods (including the signature) and associate them whith
10289         the delegate class. 
10290
10291 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10292
10293         * reflection.[ch]: 
10294         (mono_reflection_type_from_name): now it has a MonoImage parameter
10295         which is used as the default image to search the type in. If the image
10296         is NULL or getting the type from it fails, it defaults to corlib.
10297
10298         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10299         new parameter.
10300
10301 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10302
10303         * reflection.c: update the parameter table index.
10304
10305 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10306
10307         * domain.c: don't include the mark byte in the string hash.
10308
10309 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10310
10311         * icall.cs: icall for Type.GetTypeCode ().
10312         * verify: a couple of fixes and disabled local initialization checks.
10313
10314 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10315
10316         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10317
10318         * debug-helpers.c (mono_method_full_name): print the type of the
10319         runtime wrapper
10320
10321         * metadata.c (mono_signature_hash): a hash function for signatures
10322         (mono_signature_hash): better hash algorithm
10323
10324         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10325
10326         * debug-helpers.c (mono_method_full_name): this can now generate
10327         method names with signatures
10328
10329         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10330         method dont have this pointers.
10331
10332 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10333
10334         * reflection.c: fixup typebuilder tokens.
10335         * image.c: fix buglet.
10336         * marshal.h: remove whitespace.
10337         * metadata.h, metadata.c: reinstate code that was removed.
10338         * verify.c: handle catch directives and fix another couple of bugs.
10339
10340 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10341
10342         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10343         (mono_marshal_get_native_wrapper): make it comp. with the old code
10344         (mono_marshal_get_native_wrapper): support boolean
10345         (mono_marshal_get_managed_wrapper): support more types
10346
10347 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10348
10349         * class.c (class_compute_field_layout): compute class->blittable attribute.
10350
10351 2002-07-09  Dick Porter  <dick@ximian.com>
10352
10353         * threads.c: Make the thread cleaning up cope with threads that
10354         call ExitThread()
10355
10356 2002-07-08  Radek Doulik  <rodo@ximian.com>
10357
10358         * reflection.c (method_encode_code): use non-translated values to
10359         compute finally_start, this fixes exception handling on ppc, yay!
10360
10361         * decimal.h (struct signscale): fix endianess
10362
10363 2002-07-07  Radek Doulik  <rodo@ximian.com>
10364
10365         * reflection.c: swap box_val and not val
10366
10367 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10368
10369         * reflection.c, reflection.h: handle full assembly info in type name.
10370         Handle Type arguments when loading custom attributes.
10371         * icall.c: updated to use new mono_reflection_type_from_name () method.
10372
10373 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10374
10375         * loader.c:
10376         (method_from_memberref): also print assembly name when method not found.
10377
10378 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10379
10380         * icall.c:
10381         (ves_icall_TypeGetProperties): fixed bug #27473. 
10382
10383 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10384
10385         * reflection.c: display image name and token when cannot find the
10386         .ctor for an attribute.
10387
10388 2002-07-05  Martin Baulig  <martin@gnome.org>
10389
10390         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10391
10392 2002-07-04  Dick Porter  <dick@ximian.com>
10393
10394         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10395         compile on mingw.  This will cause mingw builds to not wait for
10396         subthreads to terminate after the main thread does.  I've lodged a
10397         bug with the mingw developers for them to wrap OpenThread().
10398
10399 2002-07-03  Dick Porter  <dick@ximian.com>
10400
10401         * threads.c: Store thread IDs instead of handles, because
10402         GetCurrentThread() returns a pseudohandle and therefore stores
10403         useless values.  mono_thread_cleanup() continues checking the
10404         array of threads until it is empty, to cope with subthreads
10405         spawning new threads after the main thread has finished.
10406
10407         * profiler.h:
10408         * profiler.c:
10409         * profiler-private.h: Pass the thread ID to thread profiler
10410         functions, instead of a handle
10411
10412 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10413
10414         * verify.c: fixes to make it more usable.
10415         * pedump.c: added --verify code to verify IL code in an assembly.
10416
10417 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10418
10419         * reflection.c: turn errors into warnings to allow compiling corlib.
10420
10421 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10422
10423         * reflection.c: add special cases to compile corlib.
10424
10425 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10426
10427         * reflection.c: handle properties with only a set method.
10428
10429 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10430
10431         * opcodes.h: add enum with opcodes in opval order.
10432
10433 2002-07-01  Dick Porter  <dick@ximian.com>
10434         
10435         * object.h:
10436         * object.c (mono_runtime_run_main): Removed unneeded argument
10437
10438 2002-06-28  Martin Baulig  <martin@gnome.org>
10439
10440         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10441
10442 2002-06-27  Dick Porter  <dick@ximian.com>
10443
10444         * threads.c: Store the handle in both the parent thread and in the
10445         subthread, to minimise the time between starting a new thread and
10446         storing its ID.
10447
10448 2002-06-26  Dick Porter  <dick@ximian.com>
10449
10450         * appdomain.c (mono_runtime_cleanup): Close the socket library
10451         after all the threads have finished, not before
10452
10453 2002-06-26  Martin Baulig  <martin@gnome.org>
10454
10455         * debug-symfile.c (mono_debug_find_source_location): Added
10456         `guint32 *line_number' argument.  If it's not NULL, store the line number
10457         there and return the file name without the line number.
10458
10459 2002-06-25  Dick Porter  <dick@ximian.com>
10460
10461         * icall.c:
10462         * process.h:
10463         * process.c: Process forking and other support functions
10464
10465 2002-06-25  Dick Porter  <dick@ximian.com>
10466
10467         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10468         things dont happen when the image is closed.
10469         (mono_image_lookup_resource): Walk the resource section looking
10470         for a particular entry
10471
10472         * cil-coff.h: PE resource section decoding
10473
10474 2002-06-25  Dick Porter  <dick@ximian.com>
10475         
10476         * assembly.h:
10477         * assembly.c: 
10478         (mono_assembly_foreach): Accessor functions to walk the list of
10479         loaded assemblies
10480         (mono_assembly_set_main):
10481         (mono_assembly_get_main): Process methods need to know which
10482         assembly is the "main" one
10483
10484         * object.c (mono_runtime_run_main): Record the main assembly
10485
10486         * debug-helpers.c: Fix typo
10487
10488 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10489
10490         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10491         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10492
10493 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10494
10495         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10496
10497 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10498
10499         * image.c (do_mono_image_open): Initialize reference count,
10500         otherwise we leak the MonoImage.
10501
10502 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10503
10504         * reflection.c: small tweak to handle self-hosting.
10505
10506 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10507
10508         * reflection.c: fix type name parse code.
10509
10510 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10511
10512         * reflection.c: break out of the loop.
10513         * image.c: special case corlib.
10514
10515 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10516
10517         * reflection.c: add all the custom attrs at the end to ensure the
10518         ctors have been properly initialized when the attributes are defined
10519         in the current assembly.
10520
10521 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10522
10523         * reflection.c: handle correctly multiple-nested types.
10524
10525 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10526
10527         * row-indexes.h: fix typos.
10528         * reflection.c: adjust for typos and fix method_def_or_ref
10529         encoding in MethodImpl table.
10530
10531 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10532
10533         * reflection.c: fix entry point patching (thanks Serge!).
10534
10535 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10536
10537         * verify.c: add check for System.Exception
10538
10539 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10540
10541         * image.c, class.c: minifix for code just c&p'ed.
10542         * reflection.c: warning fix.
10543         * object.h, loader.h, domain.c: load also StringBuilder.
10544
10545 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10546
10547         * marshal.h, marshal.c: some support code to handle complex marshaling.
10548
10549 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10550
10551         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10552         Better signatures with vtable error dump.
10553
10554 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10555
10556         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10557
10558 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
10559
10560         * icall.c (ves_icall_Type_GetField): impl.
10561
10562 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10563
10564         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10565         to retrieve a marshal description blob for a field or param.
10566
10567 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10568
10569         * reflection.h, reflection.c: change order of nested type emission
10570         to avoid table corruption. The NestedTypes table is sorted.
10571         * icall.c: change order of GetConstructor results to workaround mcs bug.
10572
10573 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10574
10575         * reflection.h, reflection.c: handle field and param marshal
10576         information.
10577
10578 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10579
10580         * icall.c, marshal.c marshal.h: more Marshal class implementation.
10581
10582 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10583
10584         * reflection.c: fix call convention.
10585
10586 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10587
10588         * reflection.h, reflection.c: mono_image_get_memberref_token()
10589         takes a type instead of a class, now. Added
10590         mono_image_get_array_token() to create tokens for the special
10591         multi-dim array methods.
10592
10593 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10594
10595         * assembly.c: handle modules (no assembly table). Split
10596         loading references in its own function.
10597         * class.c: handle moduleref resolution scope.
10598         * image.c, image.h: cache module name in image.
10599
10600 2002-06-07  Martin Baulig  <martin@gnome.org>
10601
10602         * reflection.c (mono_image_get_type_info): Only add a class layout entry
10603         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10604
10605 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10606
10607         * icall.c: more signature fixes that used uint instead of int.
10608
10609 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10610
10611         * reflection.c: fixed signature of field refs.
10612
10613 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10614
10615         * class.c, reflection.c: handle typerefs of nested types
10616         (both on read and when writing files).
10617
10618 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10619
10620         * icall.c: fix method signatures that tried to workaround the previous
10621         typo, d'oh!
10622
10623 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10624
10625         * debug-helpers.c: fix typo.
10626
10627 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10628
10629         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10630         rewrote the PE/COFF writing code (our programs are understood by the
10631         ms runtime, now).
10632
10633 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10634
10635         * gc.c, gc.h, icall.c: weakreference support.
10636
10637 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10638
10639         * Makefile.am, mono-config.c: use $(sysconfdir).
10640
10641 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10642
10643         * icall.c: changed default precision of Double.ToString() to 15.
10644         Fixed memory leak. Unified with Single.ToString.
10645
10646 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10647
10648         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10649
10650 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10651
10652         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10653         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10654         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10655         and myself.
10656
10657 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10658
10659         * debug-symfile.c, sysmath.c: yet more compilation fixes.
10660
10661 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10662
10663         * reflection.c, socket-io.c: more compilation fixes.
10664
10665 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10666
10667         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10668         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10669         unicode.c: warning and compiler compatibility fixes.
10670
10671 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10672
10673         * class.h, metadata.c: fixed warnings/compilation errors.
10674
10675 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10676
10677         * Makefile.am, mono-config.c, mono-config.h: configuration file
10678         support routines.
10679         * loader.c, loader.h: make Dll mapping configurable at runtime in the
10680         config file. Export methods to insert and lookup mappings.
10681
10682 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10683
10684         * reflection.c: handle types and boxed objects in custom attr
10685         constructors.
10686
10687 2002-05-30  Martin Baulig  <martin@gnome.org>
10688
10689         * debug-symfile.c
10690         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
10691
10692 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
10693
10694         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
10695         to lookup the implmap row for a P/Invoke method.
10696         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
10697         P/Invoke method from the runtime on an as needed basis.
10698
10699 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
10700
10701         * metadata.c (mono_metadata_parse_signature): impl.
10702
10703 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10704
10705         * class.c: handle .pack directive.
10706
10707 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10708
10709         * object.c: initialize static fields with RVA data.
10710
10711 2002-05-25  Martin Baulig  <martin@gnome.org>
10712
10713         * debug-symfile.c
10714         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
10715
10716 2002-05-24  Martin Baulig  <martin@gnome.org>
10717
10718         * debug-symfile.c
10719         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
10720         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
10721         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
10722
10723 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10724
10725         * object.c: special case string ctros in invoke.
10726         * gc.c: silly whitespace changes.
10727
10728 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
10729
10730         * threadpool.[ch]: impl. a threadpool that can
10731         be used by mint and mono.
10732
10733 2002-05-22  Martin Baulig  <martin@gnome.org>
10734
10735         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
10736         The first argument is now a `MonoReflectionModuleBuilder *', the return
10737         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
10738         `methods' field to get the method builder.  The `token' argument is the
10739         unfixed token.
10740
10741         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
10742         invalid characters instead of g_assert_not_reached()ing.  This seems
10743         to be the behaviour of mscorlib.
10744
10745 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
10746
10747         * object.c (mono_runtime_invoke_array): applied patch from Rachel
10748         Hestilow to fix bug #25104
10749
10750 2002-05-21  Martin Baulig  <martin@gnome.org>
10751
10752         * debug-symfile.c (mono_debug_find_source_location): New function.
10753         Looks up an IL offset in the line number table and returns the source
10754         location as a string.
10755
10756 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10757
10758         * icall.c:
10759         (mono_double_ToStringImpl): changed %f by %g until we have something
10760         better.
10761
10762 2002-05-21  Nick Drochak  <ndrochak@gol.com>
10763
10764         * icall.c : Use different name for Math.Pow's icall.  Needed to check
10765         parameters first in C#.
10766
10767 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10768
10769         * icall.c, reflection.h: added icall to get info about an event.
10770
10771 2002-05-20  Radek Doulik  <rodo@ximian.com>
10772
10773         * object.c (mono_value_box): don't use memcpy for boxing on BIG
10774         endian
10775         (mono_value_box): don't use memcpy for small sizes on
10776         architectures with unaligned access
10777
10778 2002-05-20  Martin Baulig  <martin@gnome.org>
10779
10780         * reflection.c (mono_reflection_setup_internal_class): Don't crash
10781         if `tb->parent == NULL'.
10782         (mono_reflection_create_internal_class): New function.  This is
10783         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
10784         for enum types.
10785
10786         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
10787         New interncall.
10788
10789 2002-05-19  Martin Baulig  <martin@gnome.org>
10790
10791         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
10792         argument to get the length, don't default to the array length.
10793
10794 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
10795
10796         * assembly.c (mono_assembly_setrootdir): New function used to
10797         override the MONO_ASSEMBLIES directory.
10798
10799 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10800
10801         * icall.c: ValueType_GetHashCode() initialize local var.
10802
10803 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10804
10805         * reflection.c: sort custom attributes table.
10806
10807 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10808
10809         * reflection.c: support named args in custom attributes (write support).
10810
10811 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10812
10813         * reflection.c: fix finally position calculation.
10814
10815 2002-05-15  Radek Doulik  <rodo@ximian.com>
10816
10817         * reflection.c: fixed endianess at many places
10818
10819         * icall.c (ves_icall_InitializeArray): comment out debug msg
10820
10821 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
10822
10823         * object.c (mono_unhandled_exception): new function to handle
10824         unhandled exceptions.
10825         (mono_unhandled_exception): call the UnhandledException event.
10826         (mono_runtime_delegate_invoke): impl.
10827
10828 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
10829
10830         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
10831         returns the RVA, not the direct pointer to the data. Handle the case
10832         when the class size is fixed.
10833
10834 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10835
10836         * reflection.c: fix some endianess issues.
10837
10838 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
10839
10840         * object.c (mono_runtime_invoke): is now able to catch exceptions.
10841
10842         * threads.c (mono_thread_init): added a callback which is invoked
10843         at thread start.
10844
10845 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10846         
10847         * icall.c: make GetHashCode return non-negative values.
10848
10849 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
10850
10851         * object.c, icall.c, gc.c: revert to address-based hashcode.
10852
10853 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
10854
10855         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
10856
10857 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10858
10859         * icall.c, class.c: special case <Module>.
10860
10861 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
10862
10863         * icall.c: fix bug in GetNow().
10864
10865 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
10866
10867         * object.c (mono_runtime_class_init): make sure that we call all
10868         static class constructors.
10869
10870 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10871
10872         * reflection.c: sort methodsemantics table.
10873
10874 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10875
10876         * reflection.h, reflection.c: honour init locals setting.
10877
10878 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
10879
10880         * icall.c: copied Double ToStringImpl for Single ToStringImpl
10881
10882 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10883
10884         * reflection.c: support ContructorBuilders in attribute blob creation.
10885
10886 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10887
10888         * reflection.c: some changes to build a binary that can be run
10889         directly in windows.
10890
10891 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
10892
10893         * loader.c: print a big message when an icall can't be found.
10894
10895 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10896
10897         * string-icalls.c: fix bug 24248.
10898
10899 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10900
10901         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
10902         icall.c, reflection.h: separate assembly loading by pathname and by
10903         assembly name. Use the MONO_PATH env var to search for assemblies.
10904
10905 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10906
10907         * assembly.c, image.h: add some support for assemblies
10908         with multiple modules.
10909         * class.c, class.h: export mono_class_from_typeref().
10910         * loader.c: remove duplicated code and use mono_class_from_typeref(),
10911         instead.
10912
10913 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10914
10915         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
10916         documentation says (the ECMA one is correct).
10917
10918 2002-05-02  Dick Porter  <dick@ximian.com>
10919
10920         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
10921         Don't name the synchronisation mutex.
10922
10923 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
10924
10925         * rand.c
10926         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
10927         Make the prototypes match.
10928         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
10929         Same.
10930
10931         * icall.c
10932         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
10933         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
10934         all systems have tm.tm_zone, so use strftime() with %Z to print
10935         the timezone abreviation into a temp string.
10936
10937         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
10938         rather than mono_array_addr() on a MonoString on Big Endian
10939         machines.
10940
10941 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
10942
10943         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
10944         fix bug 24041
10945
10946 2002-04-30  Dick Porter  <dick@ximian.com>
10947
10948         * socket-io.c: Cope with SOCKET being an integer rather than a
10949         pointer now.
10950
10951         * threads.c: Added Thread_free_internal, to deal with thread
10952         handle cleanup.  Moved calls to handle_store() and handle_remove()
10953         to start_wrapper(), so each can only be called once.  Allocate
10954         synchronisation blocks with GC_malloc(), and use GC finalisation
10955         to close the handles.
10956
10957         * icall.c: added System.Threading.Thread::Thread_free_internal
10958
10959 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10960
10961         * icall.c: support Environment.Exit, CommandLineArgs().
10962
10963 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10964
10965         * object.c, object.h: added mono_runtime_run_main () and
10966         mono_runtime_get_main_args () for use in System.Environment.
10967
10968 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10969
10970         * gc.c: fix thinko, enable actual finalization since the jit is now
10971         fixed.
10972
10973 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10974
10975         * gc.c, object.c: take into account that an object may be offset wrt the address
10976         returned by GC_malloc().
10977
10978 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
10979
10980         * image.c: handle files without entries in the assembly table (modules).
10981
10982 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
10983
10984         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
10985         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
10986         allowed to be null when it's System.Object class setup.
10987
10988 2002-04-27  Martin Baulig  <martin@gnome.org>
10989
10990         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
10991         if `tb->parent == NULL' rather than crashing.
10992
10993 2002-04-28  Nick Drochak  <ndrochak@gol.com>
10994
10995         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
10996         calling acos() where asin() should have been called.
10997
10998 2002-04-26  Martin Baulig  <martin@gnome.org>
10999
11000         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11001         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11002         there's a subdirectory called `System', but we don't want to read that
11003         subdirectory as an assembly.
11004
11005 2002-04-25  Martin Baulig  <martin@gnome.org>
11006
11007         * debug-symfile.c: Reflect latest MonoString changes.
11008
11009 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11010
11011         * rand.c, rand.h: instance method icalls need to have an explicit
11012         this pointer as first argument in the C implementation.
11013
11014 2002-04-25  Nick Drochak <ndrochak@gol.com>
11015
11016         * icall.c: Fix typo in map for GetNonZeroBytes
11017
11018 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11019
11020         * string-icalls.c : String does now passes unit tests without any 
11021         errors, the following changes has been made:
11022         
11023         Implemented replace methods.
11024         Renaming of methods to (try) follow the standard.
11025         Fixed compare ordinal
11026         Made all memory allocated directly to function instead of via icall function.
11027         Small performance fix in is_in_array function
11028                         
11029  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11030
11031         c (mono_string_Internal_ctor_charp_int_int):
11032         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11033         sindex < 0, throw ArgumentOutOfRangeException instead of
11034         ArgumentNullException.
11035
11036         Added new check for length == 0, however
11037         I need to make it return String.Empty from the C code.
11038         
11039         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11040         that calculate the length for us here.
11041         
11042         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11043         mono_string_new_utf16 with mono_string_new, since value is utf8.
11044
11045 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11046
11047         * object.c: register the object for finalization if needed.
11048         Allocate one more char in the string for the terminating 0 char.
11049
11050 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11051
11052         * class.c, class.h, image.c: check if a type implemenst a destructor.
11053         Use the proper key for array class lookups.
11054         * icall.c: register the icalls in the System.GC class.
11055         * gc.c, gc.h: GC-related functions and icalls.
11056
11057 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11058
11059         * icall.c:
11060         * socket-io.c:
11061         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11062         changed a couple of free () by g_free ().
11063
11064         * decimal.c: one-liner in the comments for decimal2string ().
11065
11066 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11067
11068         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11069
11070 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11071
11072         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11073         * object.c (mono_runtime_invoke_array) : handle null in params
11074
11075 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11076
11077         * string-icalls.c: fixed bug in split (one off bug)
11078
11079 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11080
11081         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11082         * icalls.c: added String::Equals as internal method
11083
11084 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11085
11086         * threads.c: fixed bug in the double interlocked functions
11087
11088 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11089
11090         * threads.c: implemented all of the new interlocked icalls.
11091         * string-icalls.c: fix a bug in insert.
11092         * icalls.c: added the icalls for interlocked, removed old string functions.
11093         
11094 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11095
11096         * loader.c: fix off-by-one error when reading argument names.
11097
11098 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11099
11100         * profiler.c: win32 counter implementation (untested).
11101         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11102         (the latter needs testing and more complete impl. from win32 folks).
11103
11104 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11105
11106         * object.c: mono_array_new_full workaround mono_array_class_get
11107         problem.
11108
11109 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11110
11111         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11112         * object.h (mono_string_chars): Changed casting type.
11113
11114 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11115
11116         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11117                            method signatures to use gunichar2 instead of gint16.
11118
11119 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11120
11121         * object.h, object.c: domain-specific versions of mono_object_new and
11122         mono_array_new.
11123
11124 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11125
11126         * object.c: changed String layout
11127
11128         * string-icalls.c (mono_string_Internal_ctor_chara): added
11129         internal string constructors.
11130
11131 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11132
11133         * threads.c: pass 'this' to the thread start routine.
11134
11135 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11136
11137         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11138         InternalCompareStr don't call twice mono_string_cmp_char for the last
11139         character. Improved performance in mono_string_cmp_char.
11140
11141 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11142
11143         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11144         code into its own library: libmonoruntime.
11145
11146 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11147
11148         * object.h, object.c: changed array format so that szarrays do not
11149         require a bounds structure.
11150         * icall.c, appdomain.c: support for new szarray format.
11151
11152 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11153
11154         * metadata.c: compare also the retuns type when comparing signatures:
11155         we didn't do this as an optimization since really overloaded methods
11156         must differ also in the arguments, but this doesn't work with
11157         low-level IL code (or when using explicit conversion operators: see
11158         bug#23498 for an example).
11159
11160 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11161
11162         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11163
11164 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11165
11166         * icall.c: make MonoType::GetElementType its own icall.
11167
11168 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11169
11170         * icall.c: remove MonoMethod_get_Name().
11171         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11172         object.
11173
11174 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11175
11176         * string-icalls.c: optimized a few methods.
11177
11178 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11179
11180         * icall.c: added all new string internal calls
11181         * string-icalls.c: added, new string internal call implementation.
11182         * object.c: added mono_string_new_size for allocating a string a size
11183
11184 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11185
11186         * object.c (mono_object_isinst): use the same code as in the
11187         optimized x86 version.
11188
11189 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11190
11191         * profiler.c: TSC-based timer code (faster and more accurate).
11192         Not hooked up in configure, yet (set USE_X86TSC to 1).
11193
11194 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11195
11196         * profiler.c, profiler.h: track time spent compiling methods.
11197         * threads.c: track thread creation/destruction.
11198
11199 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11200
11201         * profiler.c, profiler.h, profiler-private.h: profiling interface
11202         and sample implementation. Moved here so that it can be used also by
11203         the jit.
11204
11205 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11206
11207         * reflection.c, reflection.h: keep types and other handles separate in
11208         the hash tables for referred tokens. Add guid for modules.
11209
11210 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11211
11212         * assembly.c: fix bugs found with valgrind.
11213         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11214
11215 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11216
11217         * threads: added icall support for getting current domain for
11218                    the thread.
11219  
11220 2002-04-13  Martin Baulig  <martin@gnome.org>
11221
11222         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11223         (MonoDebugVarInfo): Added `index' field for register based addresses.
11224         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11225         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11226         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11227         `MonoDebugVarInfo *this_var'.
11228
11229         * debug-symfile.c (relocate_variable): New static function to write
11230         a location description for a local variable or method parameter.
11231
11232 2002-04-12  Martin Baulig  <martin@gnome.org>
11233
11234         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11235         stack offset and begin/end scope address of a local variable.
11236         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11237         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11238         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11239
11240         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11241         Added new relocation types for start/end scope of a local variable.
11242
11243 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11244
11245         * object.h: add mono_object_domain() macro.
11246         * reflection.c: handle typespecs.
11247         * icall.c: MonoMethod::get_Name() implementation.
11248
11249 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11250
11251         * icall.c: String::GetHashCode() icall implementation.
11252
11253 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11254
11255         * icall.c: String::IndexOfAny icall.
11256         * object.c, object.h: make array->max_length more useful.
11257         Intrduced mono_object_class() and mono_string_length() macros.
11258
11259 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11260
11261         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11262         instead of g_unichar_isdigit.
11263
11264 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11265
11266         * icall.c: Implement a simple Double.ToString().
11267
11268 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11269
11270         * appdomain.h: only io-layer.h is supposed to be included.
11271         * icall.c: explicitly import environ. Fix warning.
11272
11273 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11274
11275         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11276                 return true even if it's not Daylight Savings time.
11277                 Only return false for the case where the function isn't
11278                 implemented for a plaform (read Windows).
11279
11280 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11281
11282         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11283         data with a mutex.
11284
11285 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11286
11287         * mempool.c (mono_mempool_alloc): only use g_malloc when
11288         absolutely necessary.
11289
11290 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11291
11292         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11293
11294         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11295         (mono_class_proxy_vtable): use domain mempool
11296
11297 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11298
11299         * appdomain.h, appdomain.c: split initialization that requires the
11300         execution engine support into mono_runtime_init().
11301
11302 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11303
11304         * class.c (mono_class_init): don't include vtable inside MonoClass
11305         to save some memory, gather some statistics.
11306         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11307
11308 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11309
11310         * icall.c: internalcall implementation for ValueType.Equals().
11311
11312 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11313
11314         * object.c (mono_message_init): moved 
11315         (mono_runtime_exec_main): new arch. independent impl.
11316         (mono_runtime_invoke_array): new method - like
11317         mono_runtime_invoke, but you can pass an array of objects.
11318         (mono_remoting_invoke): new arch. independent impl.
11319         (mono_message_invoke): new arch. independent impl.
11320         (mono_runtime_class_init): new arch. independent impl.
11321         (mono_runtime_object_init): new arch. independent impl.
11322
11323 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11324
11325         * metadata.c, object.c, reflection.c: documented the exported
11326         functions.
11327
11328 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11329
11330         * icall.c: simpler code to pass the assembly builder data to corlib.
11331         Implement GetNestedTypes() internalcall.
11332
11333 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11334
11335         * class.c: warn if a type can't be loaded.
11336
11337 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11338
11339         * image.h: typedef MonoImageOpenStatus
11340         * types.h: removed unused file
11341         
11342 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11343
11344         * icall.c: Enum_ToObject accepts enum value arguments.
11345
11346 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11347
11348         * class.c: move initialization of properties, events and nested
11349         classes, so that they happen for interfaces, too.
11350
11351 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11352
11353         * icall.c: cleanup some ugly casts in Array_SetValue*.
11354
11355 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11356
11357         * icall.c: the values array fro enums is of the correct type, now.
11358         Implement (correctly) getFullName instead of assQualifiedName for
11359         MonoType.
11360         * reflection.h, reflection.c: added mono_type_get_name ().
11361
11362 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11363
11364         * assembly.c, image.h: for each MonoImage, record from wich assembly
11365         it was loaded.
11366         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11367         Make Type.Assembly work.
11368
11369 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11370
11371         * debug-symfile.h: use char* instead of gpointer to avoid
11372         unnecessary casts.
11373
11374         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11375
11376         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11377         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11378
11379 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11380
11381         * icall.c (mono_message_init): impl. (code cleanup)
11382         (ves_icall_InternalExecute): impl. FieldGetter
11383
11384         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11385         defined we call all (non-static)methods through the vtable. 
11386
11387 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11388
11389         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11390         finalizer even though the memory is still referenced (and the chunk of
11391         memory is not freed).
11392
11393 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11394
11395         * assembly.c: fix brokeness.
11396
11397 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11398
11399         * class.c: kill some warnings. Check explicit interface method
11400         implementation also without considering the namespace.
11401         Load also literal strings in static class data.
11402
11403 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11404
11405         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11406         (default_assembly_name_resolver): Make the resolver take the
11407         "base" directory where the assembly was originally defined, so we
11408         can load DLLs that are in the same directory as the assembly that
11409         is being referenced.
11410
11411 2002-03-28  Dick Porter  <dick@ximian.com>
11412
11413         * file-io.h: 
11414         * file-io.c:
11415         * socket-io.c: 
11416         * unicode.h: 
11417         * unicode.c: Warning cleanups
11418
11419 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11420
11421         * object.h, reflection.h: use the correct type instead of MonoObject.
11422
11423 2002-03-28  Martin Baulig  <martin@gnome.org>
11424
11425         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11426         (mono_debug_update_symbol_file): Initialize classes if necessary.
11427
11428 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11429
11430         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11431         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11432
11433 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11434
11435         * assembly.h: fix function prototype.
11436         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11437         * mono-endian.h: use const cast.
11438
11439 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11440
11441         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11442
11443 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11444
11445         * loader.c: don't assert when a typeref can't be loaded, give
11446         a chance to the runtime to trow an exception instead.
11447         * loader.h: fix warning.
11448
11449 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11450
11451         * class.c (mono_class_proxy_vtable): added proxy support
11452
11453 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11454
11455         * icall.c: removed last of PAL calls, added System.Environment
11456         * file-io.h, file-io.c: MonoIO implementation
11457         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11458
11459 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11460
11461         * appdomain.c: do not use the byte marker in ldstr table lookup.
11462         * debug-helpers.c: allow two ':' to separate class and method name.
11463         * object.c: allocate arrays bounds with the GC, too.
11464         * verify: add a few more checks.
11465
11466 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11467
11468         * reflection.c: output also literal strings. Allocate parameter data
11469         with GC_malloc() (thanks, Martin, for catching this!).
11470
11471 2002-03-26  Martin Baulig  <martin@gnome.org>
11472
11473         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11474         include the `this' offset in the `param_offsets'.
11475
11476 2002-03-25  Martin Baulig  <martin@gnome.org>
11477
11478         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11479         mono_debug_get_class() function to get the classes. Added new
11480         relocation types for arrays and strings.
11481         (mono_debug_get_class): New static function to search in all
11482         referenced assemblies for a metadata token.
11483
11484         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11485
11486 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11487
11488         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11489         hold gc-allocated objects. Make the string heap a stream like the
11490         others. Removed duplicated code when writing stream info.
11491         Added asserts to catch possible buffer overflows. Set the sorted map
11492         for tables that need sorting. Added some documentation.
11493
11494 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11495
11496         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11497         for interned strings and vtables.
11498
11499 2002-03-24  Martin Baulig  <martin@gnome.org>
11500
11501         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11502         it in the array since it was created with g_slist_prepend().
11503
11504 2002-03-24  Martin Baulig  <martin@gnome.org>
11505
11506         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11507         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11508         (mono_debug_method_from_token): Renamed to
11509         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11510         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11511
11512         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11513         relocation types.
11514
11515         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11516
11517 2002-03-24  Martin Baulig  <martin@gnome.org>
11518
11519         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11520         (mono_debug_method_from_token): New func.
11521
11522         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11523         New interncall, calls mono_debug_local_type_from_signature().
11524         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11525         calls mono_debug_method_from_token().
11526
11527 2002-03-23  Martin Baulig  <martin@gnome.org>
11528
11529         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11530         specifies the number of bytes to be converted, not the array size.
11531         Return the number of chars, not the number of bytes.
11532         (ves_icall_iconv_get_chars): The `byteCount' argument
11533         specifies the number of bytes to be converted, not the array size.
11534
11535 2002-03-23  Martin Baulig  <martin@gnome.org>
11536
11537         * reflection.h (MonoReflectionSigHelper): New type.
11538
11539         * reflection.c (mono_reflection_sighelper_get_signature_local),
11540         (mono_reflection_sighelper_get_signature_local): New functions.
11541
11542         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11543         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11544         interncalls.
11545
11546 2002-03-23  Martin Baulig  <martin@gnome.org>
11547
11548         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11549         is_writeable is set.
11550         (mono_raw_buffer_update): New function to write the modified map
11551         back to disk.
11552
11553         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11554
11555         * debug-symfile.c (mono_debug_update_symbol_file): Call
11556         mono_raw_buffer_update() when done writing.
11557
11558 2002-03-23  Martin Baulig  <martin@gnome.org>
11559
11560         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11561
11562         * debug-symfile.c: Added support for arguments and local variables.
11563
11564 2002-03-23  Dick Porter  <dick@ximian.com>
11565
11566         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11567         protected by ifdefs, hence breaking the w32 build.
11568
11569 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11570
11571         * object.c: implement is_interned() the right way.
11572
11573 2002-03-21  Martin Baulig  <martin@gnome.org>
11574
11575         * debug-symfile.[ch]: New files to handle debugging information
11576         files. There's also support to dynamically update these symbol
11577         files to include machine dependent information.
11578
11579 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
11580
11581         * threads.c (mono_thread_create): new function to create thread
11582         from C
11583
11584 2002-03-20  Martin Baulig  <martin@gnome.org>
11585
11586         * icall.c (ves_icall_InternalInvoke): Create a new object if the
11587         method is a constructor.
11588         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11589         points to ves_icall_InternalInvoke().
11590
11591 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
11592
11593         * file-io.c: Flush shouldn't throw exceptions.
11594
11595 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
11596
11597         * file-io.c: FileStream flush support; FileSetLength now
11598         restores file pointer.
11599
11600 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11601
11602         * class.c: set image for pointer classes.
11603
11604 2002/03/19  Nick Drochak <ndrochak@gol.com>
11605
11606         * sysmath.c: Forgot one.
11607
11608 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
11609
11610         * sysmath.c: Avoid redefining existing names.
11611
11612 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
11613
11614         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11615         handled by runtime as icall rather than dllimport from libm.so
11616         * file-io.c, file-io.h: fixed handle argument type.
11617
11618 2002-03-18  Dick Porter  <dick@ximian.com>
11619
11620         * reflection.c (mono_image_get_type_info): rename interface to
11621         iface, because of "#define interface struct" on windows.
11622
11623 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11624
11625         * class.c, class.h: rename and export mono_ptr_class_get().
11626         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11627         * reflection.c, reflection.h, icall.c: better/saner type name
11628         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11629         method signatures.
11630
11631 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
11632
11633         * class.c (mono_class_init): removed hardcoded GHC_SLOT
11634
11635         * icall.c (ves_icall_InternalInvoke): impl.
11636
11637 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11638
11639         * reflection.c: output the interface map table, too.
11640
11641 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11642
11643         * class.c (class_compute_field_layout): separate computation of 
11644         static field layout
11645
11646 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
11647
11648         * icall.c: added System.Buffer support.
11649         * file-io.c: moved file icalls from PAL to FileStream.
11650
11651 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
11652
11653         * icall.c (ves_icall_System_Object_GetHashCode): impl.
11654
11655 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
11656
11657         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11658
11659 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11660
11661         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11662
11663 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11664
11665         * debug-helpers.{c,h}: moved here from monograph some useful functions
11666         to locate a method by name/signature in a class or image. Included
11667         also a small and flexible IL disassembler.
11668
11669 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11670
11671         * reflection.c: fixup tokens in methods with small header size, too.
11672
11673 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
11674
11675         * object.c (mono_string_to_utf8): remove assert(!error), instead
11676         print a warning. 
11677
11678 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
11679
11680         * icall.c: update to the new mono_Array_class_get interface.
11681
11682 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11683
11684         * appdomain.c, object.c: Boehm-GC enable.
11685         * icall.c: make get_data_chunk() support split data requests.
11686         Ensure a class is initialized in more cases. Return only the first
11687         property found in GetProperties() or the compiler gets confused. 
11688         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
11689         * reflection.h, reflection.c: add fixup mechanism for field and method
11690         tokens. Initialize assembly->typeref in a single place. Output
11691         properties after events. Support custom attributes for events, too.
11692         Typo fix for paramter custom attrs.
11693
11694 2002-03-07  Martin Baulig  <martin@gnome.org>
11695
11696         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
11697
11698 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
11699
11700         * class.c (mono_array_class_get): fix. for multi. dim. arrays
11701
11702 2002-03-06  Martin Baulig  <martin@gnome.org>
11703
11704         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
11705         non-zero lower bounds. See testcases #F10-#F13.
11706
11707 2002-03-05  Martin Baulig  <martin@gnome.org>
11708
11709         * exception.c (mono_get_exception_argument_out_of_range): New exception.
11710
11711         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
11712         ves_icall_System_Array_GetValue(), only calculate the absolute array position
11713         here.
11714         (ves_icall_System_Array_SetValue): Likewise.
11715         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
11716         as argument and does the actual work. This function is used when copying a
11717         multi-dimensional array.
11718         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
11719         now do all the widening conversions of value types.
11720         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
11721
11722 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11723
11724         * class.c: remove some magic numbers and use the smbolic names,
11725         instead. Added init_events() to load event info at class init time.
11726         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
11727         and mono_metadata_methods_from_event().
11728         * reflection.h, reflection.c: added support for writing out the evnets
11729         related information.
11730
11731 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11732
11733         * reflection.h, icall.c: use a different method (GetInterfaces)
11734         to gather interface info and add isbyref, isprimitive and
11735         ispointer to the ves_icall_get_type_info() return value.
11736
11737 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11738
11739         * class.h: stared adding support for events.
11740         * icall.c: split find_members implementation. Added debug icall to get
11741         the address of an object.
11742         * reflection.c: handle TypeBuilders in mono_type_get_object().
11743
11744 2002-03-01  Martin Baulig  <martin@gnome.org>
11745
11746         * icall.c (ves_icall_System_Array_GetLength): This must throw an
11747         ArgumentOutOfRangeException(), not an ArgumentException().
11748         (ves_icall_System_Array_GetLowerBound): Likewise.
11749         (ves_icall_System_Array_GetValue): Improved argument checking.
11750         (ves_icall_System_Array_SetValue): Improved argument checking.
11751
11752 2002-03-01  Martin Baulig  <martin@gnome.org>
11753
11754         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
11755         called with invalid arguments rather than just dying with g_assert().
11756         (ves_icall_System_Array_SetValue): Likewise.
11757         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
11758         raise a NotImplementedException instead.
11759         (ves_icall_System_Array_GetLength): Added argument checking.
11760         (ves_icall_System_Array_GetLowerBound): Added argument checking.
11761
11762 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
11763
11764         * object.h (mono_assert): new macros mono_assert and
11765         mono_assert_not_reached
11766
11767 2002-02-28  Martin Baulig  <martin@gnome.org>
11768
11769         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
11770         and "System::String::IsInterned" to "System::String::_IsInterned".
11771
11772 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
11773
11774         * icall.c: remove hacks for typebuilder. Added icall to create a
11775         modified type from a tybebuilder.
11776         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
11777         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
11778         to create a backing MonoClass for a TypeBuilder.
11779
11780 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11781
11782         * class.c, class.h: more refactoring of class init.
11783         Export mono_class_setup_mono_type() and mono_class_setup_parent().
11784
11785 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
11786
11787         * marshal.c, marshal.h: start of marshaling interface.
11788
11789 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
11790
11791         * icall.c: fix order in assembly qualified name icall.
11792
11793 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
11794
11795         * class.c: do not free str, since we store it in the hash table.
11796         * reflection.h: add label field to MonoILExceptionInfo.
11797         * reflection.c: handle references to more than one assembly. Handle
11798         case when there isn't a module created in the assembly.
11799
11800 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11801
11802         * class.c: Fix typo. Start refactoring of class init code.
11803
11804 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11805
11806         * appdomain.c: exit with 1 on error.
11807         * class.c: we already have the name in MonoClassField.
11808         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
11809         MonoStreamHeader instead of an offset of image->raw_metadata.
11810
11811 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
11812
11813         * appdomain.c (mono_init): Be even more descriptive about the error.
11814
11815 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
11816
11817         * appdomain.c: give the user an informative message when corlib can't
11818         be loaded.
11819
11820 2002-02-26  Martin Baulig  <martin@gnome.org>
11821
11822         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
11823         New icall to get the time zone data.
11824
11825 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11826
11827         * reflection.c: set virtual and raw size of section correctly.
11828         * threads.c: transfer domain information to newly created threads.
11829
11830 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
11831
11832         * class.c: when instancing a class in a domain, load the default
11833         vaules for static fields from the constant table. Fix System.Enum to
11834         not be an enum.
11835         * icall.c: implement Object::GetType() internalcall. Implemented
11836         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
11837         Fixed checking of binding flags in find_members().
11838         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
11839         * reflection.c: handle enumerations when writing to the constant
11840         table. Use a different object cache for types.
11841
11842
11843 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
11844
11845         * object.c (mono_object_isinst): fix for arrays
11846
11847         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
11848
11849 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
11850
11851         * object.c: don't use mprotect ()  and fix intern pool hash table
11852         lookup for big endian systems.
11853
11854 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11855
11856         * icall.c: change type_is_subtype_of () signature.
11857
11858 2002-02-21  Mark Crichton  <crichton@gimp.org>
11859
11860         * rand.c, rand.h: Added random number generator for
11861         System.Security.Cryptography classes.
11862
11863         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
11864
11865         * icall.c: Added System.Security.Cryptography calls.
11866
11867 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
11868
11869         * class.c, icall.c, metadata.c: better support for pointer types.
11870         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
11871         * reflection.c: Add support for getting custom attrs for properties
11872         and simplify some code.
11873
11874 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11875
11876         * icall.c: change getToken () and add custom attribute GetBlob()helper
11877         method.
11878         * reflection.h: add custom attrs array to the reflection builder structures.
11879         * reflection.c: encode and emit custom attributes for all the relevant
11880         reflection objects. Cache fieldref and methodref tokens. Change
11881         mono_image_create_token() interface to take a MonoDynamicAssembly.
11882         More complete custom attributes decoder. Load custom attributes for
11883         Assembly, Field, Method and Constructor objects, too. Make the
11884         returned array an Attribute[] one, not object[]. Added
11885         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
11886         custom attribute constructor.
11887
11888 2002-02-20  Dick Porter  <dick@ximian.com>
11889
11890         * icall.c:
11891         * rawbuffer.c:
11892         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
11893         problem code out for now).
11894
11895 2002-02-19  Radek Doulik  <rodo@ximian.com>
11896
11897         * object.c (mono_ldstr): use hash table to avoid multiple swapping
11898
11899 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
11900
11901         * icall.c: register the GetCustomAttributes method.
11902         * object.c, object.h: add mono_string_new_len ().
11903         * reflection.h, reflection.c: added mono_runtime_invoke(),
11904         mono_install_runtime_invoke(). Added
11905         mono_reflection_get_custom_attrs () to load custom attributes and
11906         create the attribute objects.
11907
11908 2002-02-19  Dick Porter  <dick@ximian.com>
11909         * threads-dummy-types.c:
11910         * threads-dummy-types.h:
11911         * threads-dummy.c:
11912         * threads-dummy.h:
11913         * threads-pthread-types.c:
11914         * threads-pthread-types.h:
11915         * threads-pthread.c:
11916         * threads-pthread.h:  Deleted obsolete files
11917
11918 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
11919
11920         * class.c (mono_class_vtable): runtime init the class when we
11921         allocate static class data.
11922
11923         * icall.c (ves_icall_System_Array_SetValue): check for null values.
11924
11925         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
11926         and String - but we will need generic marshalling support in the
11927         future. 
11928         (mono_init): set the domain name in a ms compatible way
11929
11930         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
11931         String[].
11932
11933 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
11934
11935         * object.c (mono_array_clone): use alloca() instead of g_malloc  
11936         for sizes
11937
11938         * appdomain.c (mono_domain_unload): impl.
11939
11940 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
11941
11942         * appdomain.c, object.c: fix intern pool implementation.
11943         * class.c: fix alignment code.
11944
11945 2002-02-16  Radek Doulik  <rodo@ximian.com>
11946
11947         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
11948         and s2 > s1, just copy lower bytes to be compatible with little
11949         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
11950         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
11951
11952         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
11953         force big_endian to be 1 for big endian machines 
11954         (ves_icall_iconv_new_decoder): ditto
11955
11956 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
11957
11958         * socket-io.c (convert_sockopt_level_and_name): If the system
11959         doesn't define SOL_IP or SOL_TCP, get them by hand using
11960         getprotobyname() and caching the values (because this could be a
11961         slow operation).
11962         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
11963         Use the appropriate struct when the system does support it. Ie,
11964         not all systems have struct ip_mreqn so use struct ip_mreq when
11965         appropriate.
11966
11967 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
11968
11969         * reflection.c: handle finally clauses.
11970
11971 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
11972
11973         * socket-io.c: use g_snprintf() instead of snprintf.
11974
11975 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
11976
11977         * reflection.c (mono_param_get_objects): Cast second argument to
11978         mono_method_get_param_names to a const char** to silence the
11979         compiler warning.
11980
11981         * appdomain.c (mono_domain_assembly_open): Put parens around the
11982         truth statement in the for-loop.
11983
11984         * unicode.c (iconv_convert): Got rid of a compiler warning about
11985         int i being unused when the system has a new iconv.
11986         (iconv_get_length): Same.
11987
11988         * image.c (load_class_names): Cast the second argument to
11989         g_hash_table_insert() to char* to hush compiler warnings about the
11990         arg being a const.
11991         (mono_image_open): Same here.
11992
11993         * socket-io.c: Don't conditionally include sys/filio.h or
11994         sys/sockio.h here anymore since we now get them from
11995         io-layer/io-layer.h
11996         (inet_pton): If the system doesn't support inet_aton, implement
11997         using inet_addr and also #define INADDR_NONE if it isn't defined
11998         by the system.
11999
12000 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12001
12002         * metadata.c, metadata.h: added function to get packing and size info
12003         of a typedef.
12004         * reflection.h, reflection.c: handle field RVA data. Save info about
12005         the table layout if needed. Assign typedef indexes to all the types
12006         before dumping the info about them to avoid forward reference problems.
12007
12008 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12009
12010         * socket-io.c (convert_sockopt_level_and_name): ifdef
12011         SO_ACCEPTCONN because it is not defined on my system (old debian)
12012
12013 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12014
12015         * opcode.c: use stddef.h to get NULL.
12016
12017 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12018
12019         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12020         for FIONBIO, FIONREAD and SIOCATMARK.
12021         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12022         define INADDR_NONE and besides, inet_addr() is deprecated and
12023         should not be used. Use inet_pton() instead - it also has the
12024         added bonus that it can easily handle IPv6 addresses as well.
12025         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12026
12027 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12028
12029         * decimal.c: remove _MSC_VER conditional.
12030
12031 2002-02-13  Dick Porter  <dick@ximian.com>
12032
12033         * socket-io.c: 
12034         * icall.c: Internal calls for Blocking, Select, Shutdown,
12035         GetSocketOption and SetSocketOption
12036
12037 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12038
12039         * assembly.cs: better resolver: use it instead of some kludgy
12040         code.
12041
12042 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12043
12044         * reflection.c: the best way to speed-up the compiler is to avoid
12045         infinite loops.
12046
12047 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12048
12049         * class.c (mono_class_vtable): changed the object layout
12050         (obj->vtable->class). 
12051         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12052
12053 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12054
12055         * assembly.c: look for assemblies in the assembly dir, too.
12056
12057 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12058
12059         * class.c: fix thinko in mono_class_from_type().
12060
12061 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12062
12063         * exception.h, exception.c: added TypeLoadException.
12064         * object.h, object.c: added mono_array_clone ().
12065         * icall.c: handle throwOnError in AssemblyGetType().
12066         Added Array.Clone().
12067         * opcode.h, opcode.c: use a single value for the opcode val.
12068         Compile fix for non-gcc compilers.
12069
12070 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12071
12072         * opcodes.c, opcodes.h: export interesting info about opcodes.
12073
12074 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12075
12076         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12077         icalls. 
12078
12079         * class.c (class_compute_field_layout): set element_class for enums
12080         (mono_class_create_from_typedef): set element_class for normal classes
12081
12082         * icall.c (ves_icall_System_Enum_get_value): impl.
12083
12084         * class.c (mono_class_create_from_typedef): do not set valuetype
12085         flag for System.ValueType and System.Enum
12086
12087 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12088
12089         * unicode.c (iconv_convert): fix big endian problem.
12090
12091 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12092
12093         * class.c: add asserts if we are ever going to scribble over memory.
12094         * socket-io.c: not all systems have AF_IRDA defined.
12095
12096 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12097
12098         * class.c (class_compute_field_layout): do not consider static
12099         fields to compute alignment
12100
12101 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12102
12103         * appdomain.c (mono_appdomain_get): impl.
12104         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12105
12106 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12107
12108         * icall.c: ignore "file://" prefix when loading an assembly.
12109
12110 2002-01-23  Dick Porter  <dick@ximian.com>
12111
12112         * socket-io.c:
12113         * icall.c:
12114         * Makefile.am: Added socket support
12115
12116 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12117
12118         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12119         code back.  This should return the assemblies that are loaded by
12120         the runtime on behalf of an application domain. 
12121
12122         The current implementation is still broken, it just returns every
12123         assembly loaded, but until we get real applications domain this
12124         will do.
12125
12126 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12127
12128         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12129         AppDomain object.
12130
12131 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12132
12133         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12134         the mono_class_from_name lookup.
12135         (ves_icall_get_parameter_info): ditto.
12136         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12137         method.
12138         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12139
12140 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12141
12142         * class.c: load also nested classes on class init.
12143         System.ValueType instance methods gets passed boxed
12144         values, unless methods in derived classed that get a pointer to the
12145         data.
12146         * icall.c: use better name parsing code in GetType().
12147         * image.c, image.h: add mono_image_loaded ().
12148         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12149         * reflection.c, reflection.h: added mono_reflection_parse_type().
12150
12151 2002-01-22  Veronica De Santis <veron78@interfree.it>
12152
12153         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12154         * threads.c : Added the implementation of internal calls for events
12155         * threads.h : Added prototypes of internal calls for events
12156         
12157 2002-01-21  Radek Doulik  <rodo@ximian.com>
12158
12159         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12160
12161 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12162
12163         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12164         (mono_class_value_size): use min_align
12165
12166 2002-01-20  Dick Porter  <dick@ximian.com>
12167
12168         * threads.h:
12169         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12170         so it compiles on w32.
12171
12172 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12173
12174         * metadata.c (mono_type_stack_size): impl.
12175
12176         * class.c (mono_class_get_field): impl. memberref token
12177
12178 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12179
12180         * icall.h : Added the internal calls mapping for CreateMutex_internal
12181                     and ReleaseMutex_internal.
12182         * threads.h : Added the prototype of mutexes internal calls.
12183         * threads.c : Added the implementations of mutexes internal calls.
12184
12185 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12186
12187         * metaparse.h: removed unused file.
12188         * reflection.c, reflection.h: added stream_data_align () function 
12189         to align data in streams and keep stream aligned. Add support for
12190         exception support in method headers.
12191
12192 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12193
12194         * unicode.c: make iconv_convert () return the number of bytess written
12195         in the output buffer.
12196
12197 2002-01-15  Dick Porter  <dick@ximian.com>
12198         * threads.c: Make the runtime's idea of infinite timeouts coincide
12199         with the class library's
12200
12201         Fix a particularly egregious bug in mono_thread_cleanup(). That
12202         code was so utterly bogus it must have been written on a Monday.
12203
12204 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12205
12206         * reflection.h: add subtypes field to TypeBuilder.
12207         * reflection.c: encode constants for literal fields.
12208         Handle subtypes. Fix user string token (and add a zero byte)
12209         at the end.
12210         
12211 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12212
12213         * class.c (mono_class_init): bug fix: assign slot numbers for
12214         abstract methods.
12215
12216 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12217
12218         * reflection.c: don't try to output a code RVA for abstract methods.
12219         Small fixes for method header format. Output parameter info to the
12220         ParamDef table. Save method overriding info to MethodImpl table.
12221         Fix property support. Allow typedef.extends to be a type in the
12222         building assembly.
12223         * verify.c: fix off-by-one error.
12224
12225 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12226
12227         * class.c: fix mono_class_from_mono_type () for szarray types.
12228         Remove unused cache check in mono_class_from_type_spec().
12229         * icall.c: *type_from_name () functions handle simple arrays and byref.
12230         * reflection.c: handle byref and szarray types. Handle methods without
12231         body (gets P/Invoke compilation working). Handle types and fields in
12232         get_token ().
12233         * reflection.h: add rank to MonoTypeInfo.
12234
12235 2002-01-10  Dick Porter  <dick@ximian.com>
12236
12237         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12238         internal calls
12239
12240 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12241
12242         * icall.c: initialize class in type_from_handle ().
12243         Loop also in parent classes for get_method ().
12244         * reflection.c: properly encode class and valuetype types.
12245         Start on encoding TypeBuilder types. Handle fieldrefs.
12246         Use correct length when registering a user string.
12247         Handle ConstructorBuilder and MonoMethod in get_token ().
12248         Make mono_type_get_object () aware of cached types.
12249         * object.c: back out change to mono_string_new ().
12250
12251 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12252         * object.c: mono_string_new should return a NULL when the string 
12253         passed in is NULL -- not try to deference it.
12254         
12255 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12256
12257         * icall.c: hack to make IsSubType work for TypeBuilders.
12258         * reflection.c: emit constructors before methods.
12259         Retrieve param names in mono_param_get_objects().
12260
12261 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12262
12263         * Makefile.am: fix list of headers and sources so automake 1.5
12264         doesn't complain. Removed \# at end of list.
12265
12266 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12267
12268         * reflection.c: get token for a method ref. Set return type of
12269         constructor to void.
12270         * loader.c: debug message.
12271         * class.c: typo fix.
12272
12273 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12274
12275         * icall.c: fix array init with rank > 1. FindMembers
12276         loops in parent class as well.
12277         * image.c: do not insert nested types in name cache.
12278         * reflection.c: warning fix.
12279         * reflection.h: add override method (for interface impl).
12280
12281 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12282
12283         * metadata.c: fix customattr decoding.
12284
12285 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12286
12287         * rawbuffer.cs: Added native Win32 implementation, avoids using
12288         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12289
12290 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12291
12292         * class.c: make the low-level routines handle the cache.
12293
12294 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12295
12296         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12297
12298 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12299
12300         * class.c: fix mono_array_element_size() for objects.
12301         * class.h, class.c: add properties to MonoClass and load them
12302         at init time.
12303         * icall.c: check with isinst() when assigning a value to an array
12304         instead of requiring the classes to match exactly.
12305         Implemented icall for System.Type::GetType().
12306         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12307         enums. Handle bindingflags when looking for methods and fields.
12308         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12309         and mono_metadata_methods_from_property().
12310         * reflection.h, reflection.c: added structures for propreties,
12311         parameters and enums. Implemented mono_property_get_object() and
12312         mono_param_get_objects().
12313
12314 2001-12-18  Dick Porter  <dick@ximian.com>
12315
12316         * file-io.c: Use mono_string_to_utf16() instead of
12317         mono_string_chars()
12318
12319         * object.c: Added mono_string_to_utf16(), which copies the non
12320         NULL-terminated MonoString into a new double-null-terminated
12321         buffer.
12322
12323 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12324
12325         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12326
12327 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12328
12329         * file-io.c: raise exceptions if handle is invalid.
12330
12331 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12332
12333         * assembly.c: yet another check for mscorlib.
12334         * class.c, class.h: load nesting info for classes.
12335         * icall.c: many new functions to support the Reflection classes.
12336         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12337         * reflection.h, reflection.c: mono_image_create_token(),
12338         mono_assembly_get_object(), mono_type_get_object(),
12339         mono_method_get_object(), mono_field_get_object(): methods to return
12340         objects that parallel the C representation of assemblies, types,
12341         methods, fields.
12342
12343 2001-12-11  Dick Porter  <dick@ximian.com>
12344
12345         * icall.c:
12346         * file-io.c: Internal calls for file IO.
12347
12348 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12349
12350         * tabledefs.h: missing FileAttributes.
12351         * verify.h, verify.c: use is_valid_string () to simplify and check for
12352         valid strings more correctly. Fix warnings and speeling.
12353         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12354         Check code: branches, maxstack, method calls.
12355
12356 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12357
12358         * object.c (mono_object_allocate): removed static, so that the jit
12359         can allocate value types.
12360
12361         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12362
12363 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12364
12365         * class.c: init enum types right away and register the
12366         token->MonoClass map in mono_class_create_from_typedef ().
12367         * verify.h, verify.c: first cut of the verifier.
12368         * pedump.c: add --verify switch to verify metadata tables.
12369         * tabledefs.h: add some missing enums.
12370
12371 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12372
12373         * class.c (mono_install_runtime_class_init): impl.
12374         (mono_class_init): renamed mono_class_metadata_init to
12375         mono_class_init, also removed the metadata_inited flag
12376
12377         * object.c (mono_object_isinst): use faster algorithm
12378
12379 2001-11-30  Radek Doulik  <rodo@ximian.com>
12380
12381         * mono-endian.h: reverted last change
12382         added function prototypes
12383
12384         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12385         add mono-endian.c back
12386
12387         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12388         for unaligned access, I've mistaked it with endianess. I am
12389         sorry.
12390         (mono_read16): fix reverted endianess
12391         (mono_read64): ditto
12392         (mono_read32): ditto
12393
12394 2001-11-30  Dick Porter  <dick@ximian.com>
12395
12396         * exception.c: Implement mono_exception_from_name()
12397
12398 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12399
12400         * metadata.h, metadata.c: remove params_size and locals_size and their
12401         calculation from the metadata code: they are only usefult to the
12402         interp.
12403
12404 2001-11-29  Radek Doulik  <rodo@ximian.com>
12405
12406         * object.c (mono_ldstr): swap bytes here, it's probably not the
12407         best place, but works for me now, I'll redo it once I know mono
12408         better, also note that I add PROT_WRITE and don't reset back, also
12409         note that it's only affects big endians, so x86 should be OK
12410
12411         * mono-endian.h (read16): use just glib macros for both endians
12412
12413         * mono-endian.c: removed as glib macros are used in in
12414         mono-endian.h so we don't need to care about endianess for read
12415         macros as glib does that for us already
12416
12417 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12418
12419         * class.h, class.h: take minimum alignment into consideration so
12420         that the fields of a class remain aligned also when in an array.
12421
12422 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12423
12424         * loader.h, loader.c: add mono_method_get_param_names().
12425         * class.c: 0-init class fields.
12426
12427 2001-11-26  Dick Porter  <dick@ximian.com>
12428
12429         * icall.c:
12430         * threads-types.h:
12431         * threads.c: New file that handles System.Threading on all platforms
12432
12433         * object.c: 
12434         * object.h: Remove the synchronisation struct from MonoObject,
12435         replace it with a pointer that gets initialised on demand
12436
12437         * Makefile.am: Replace all the system-specific threading code with
12438         a single file that uses the new wrapper library
12439
12440 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12441
12442         * class.c, class.h: add mono_install_trampoline() so that the runtime
12443         can register a function to create a trampoline: removes the ugly
12444         requirement that a runtime needed to export arch_create_jit_trampoline.
12445         * object.h, object.c: added mono_install_handler() so that the runtime
12446         can install an handler for exceptions generated in C code (with
12447         mono_raise_exception()). Added C struct for System.Delegate.
12448         * pedump.c: removed arch_create_jit_trampoline.
12449         * reflection.c: some cleanups to allow registering user strings and
12450         later getting a token for methodrefs and fieldrefs before the assembly
12451         is built.
12452         * row-indexes.h: updates and fixes from the new ECMA specs.
12453
12454 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12455
12456         * class.h, class.c: add enum_basetype field to MonoClass.
12457         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12458         to get index in the constant table reated to a field, param or
12459         property.
12460         * reflection.h, reflection.c: handle constructors. Set public-key and
12461         version number of the built assembly to 0.
12462         * row-indexes.h: update from new ECMA spec.
12463
12464 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12465
12466         * class.h, class.c: add a max_interface_id to MonoClass.
12467         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12468         since it's used to do that. Added mono_type_type_from_obj().
12469         Make GetType() return NULL instead of segfaulting if the type was not
12470         found. Handle simple arrays in assQualifiedName.
12471         * object.h: add a struct to represent an Exception.
12472         * reflection.c: output call convention in method signature.
12473         Add code to support P/Invoke methods and fixed offsets for fields.
12474
12475 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12476
12477         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12478         the value.
12479         * icall.c: use mono_array_addr instead of array->vector: fixes the
12480         reflection image writing.
12481         * reflection.c: init call convention byte to 0 in method signature.
12482         Encode the property signature. Don't output property-related methods
12483         twice. Really process the properties for a type (don't cast a field to
12484         a property, my mom always told me that).
12485         Fix 64 bit issues in pointer alignment in a different and more
12486         readable way.
12487
12488 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12489
12490         * loader.h: Removed type class from MonoDefaults, added monotype
12491
12492         * loader.c: Loaded MonoType, removed loading of Type
12493
12494         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12495         and fills in System.Type._impl with a RuntimeTypeHandle rather
12496         than the actual MonoClass *
12497
12498         (ves_icall_type_from_handle): change from type_class to
12499         monotype_class
12500
12501         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12502         implemented
12503
12504         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12505         implemented
12506
12507         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12508
12509         (ves_icall_System_Reflection_Assembly_GetType): implemented
12510
12511         (ves_icall_System_MonoType_assQualifiedName): implemented
12512
12513         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12514
12515 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12516
12517         * assembly.c (mono_assembly_open): Implement a cache for the
12518         assemblies. 
12519
12520         (mono_assembly_close): only destroy the assembly when the last
12521         reference is gone.
12522         
12523 2001-11-09  Dick Porter  <dick@ximian.com>
12524
12525         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12526
12527 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12528
12529         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12530
12531 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12532
12533         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12534         from Martin Weindel.
12535         * object.h: add mono_string_chars ().
12536
12537 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12538
12539         * reflection.c (build_compressed_metadata): Eliminates warnings
12540         and uses 64-bit clean code.
12541
12542         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12543         (mono_type_equal): Change signature to eliminate warnings.
12544
12545 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12546
12547         * icall.c, loader.c: remove the internalcall array constructors.
12548         Changes to match the new MonoArray structure.
12549         * object.h, object.c: an array object doesn't allocate an extra
12550         vector. Add mono_array_new_full () to create jagged arrays easily.
12551
12552 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12553
12554         * metadata.h, metadata.c: add mono_metadata_field_info () to
12555         retreive all the info about a field from vairous tables.
12556         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12557         * class.h, class.c: augment MonoClassField with more info.
12558         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12559         policy and load a field's RVA if needed.
12560
12561 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
12562
12563         * class.c (mono_class_metadata_init): create a trampoline for all
12564         virtual functions instead of actually compiling them.
12565
12566 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12567
12568         * class.h, class.c: include name in MonoClassField.
12569         * class.c: fix fundamental type of System.Object and System.String.
12570         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12571         tokens in ldtoken.
12572         * icall.c: remove internalcalls for the Reflection stuff that is now
12573         done in C# code.
12574         * loader.c: mono_field_from_memberref () implementation.
12575         * mono-endian.c: thinko (s/struct/union/g).
12576         * object.c, object.h: make the mono_string_* prototypes actually use
12577         MonoString instead of MonoObject.
12578         * reflection.c, reflection.h: updates for changes in the reflection
12579         code in corlib: we use C structures that map to the actual C# classes.
12580         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12581         fat method header if needed and use the info from the ILGenerator for
12582         methods. Handle fields in types. Misc fixes.
12583
12584 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
12585
12586         * class.c (mono_class_metadata_init): bug fix: always allocate
12587         space for static class data
12588
12589 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
12590
12591         * class.c (mono_compute_relative_numbering): use relative
12592         numbering to support fast runtime type checks.
12593
12594 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
12595
12596         * class.c (mono_class_create_from_typeref): added debugging output
12597         to print class name when MonoDummy is returned instead of real class
12598
12599 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
12600
12601         * class.c (mono_class_metadata_init): interface offset table now
12602         contains pointers into the vtable - this is more efficient for the jit
12603
12604 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
12605
12606         * class.c (mono_class_metadata_init): use a temporary vtable (the
12607         old algorithm only worked for the interpreter, but not for the jit)
12608
12609 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
12610
12611         * loader.c (method_from_memberref): use mono_class_get to get the
12612         class of an array instead of using System.Array directly.
12613         (mono_get_method): also add MEMBERREF methods to the method cache
12614         which usefull for arrays.
12615
12616 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
12617
12618         * pedump.c (arch_compile_method): added to compute vtable entry
12619
12620         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12621         number of interfaces.
12622         
12623         * class.h: merged MonoArrayClass into MonoClass
12624
12625         * class.c (mono_class_create_from_typedef): compute the vtable size and
12626         allocate space to include the vtable inside MonoClass
12627         (mono_class_metadata_init): initialize the vtable
12628
12629 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12630
12631         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12632         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12633         * image.c: endian fixes by Laurent Rioux.
12634         * object.h, object.c: rename MonoStringObject to MonoString and
12635         MonoArrayObject to MonoArray. Change some function names to conform to
12636         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12637         guint16* as first argument, so don't use char*.
12638         Provide macros to do the interesting things on arrays in a portable way.
12639         * threads-pthread.c: updates for the API changes and #include <sched.h>
12640         (required for sched_yield()).
12641         * icall.c: updates for the API changes above.
12642         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12643         platforms that need them.
12644
12645 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12646
12647         * class.c: set the correct type for all the fundamental
12648         type when loading the class.
12649
12650 2001-10-05  Dick Porter  <dick@ximian.com>
12651
12652         * threads-pthread.c (pthread_mutex_timedlock): Simple
12653         compatibility version for C libraries that lack this call.
12654
12655 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12656
12657         * class.c: MonoTypes stored in MonoClass are stored as
12658         fundamental MonoTypes when the class represents a
12659         fundamental type (System.Int32, ...).
12660         The TypeHandle return by ldtoken is a MonoType*.
12661         * icall.c: ves_icall_get_data_chunk () write out all the
12662         PE/COFF stuff. Implement ves_icall_define_method (),
12663         ves_icall_set_method_body (), ves_icall_type_from_handle ().
12664         * image.c: properly skip unknown streams.
12665         * loader.h, loader.c: add type_class to mono_defaults.
12666         * metadata.c, metadata.h: export compute_size () as
12667         mono_metadata_compute_size () with a better interface.
12668         Typo and C&P fixes.
12669         * pedump.c: don't try to print the entry point RVA if there is no entry point.
12670         * reflection.c, reflection.h: many cleanups, fixes, output method
12671         signatures and headers, typedef and typeref info, compress the metadata
12672         tables, output all the heap streams, cli header etc.
12673         * row-indexes.h: typo fixes.
12674
12675 2001-10-04  Dick Porter  <dick@ximian.com>
12676
12677         * object.h: Add a synchronisation mutex struct to MonoObject
12678
12679         * object.c (mono_new_object): Initialise the object
12680         synchronisation mutexes
12681
12682         * icall.c: System.Threading.Monitor internal calls
12683         
12684         * threads-pthread.h:
12685         * threads-pthread.c: System.Threading.Monitor internal calls
12686
12687         * threads-types.h: New file, includes the system-specific thread
12688         structures
12689         
12690         * threads-pthread-types.h:
12691         * threads-pthread-types.c: New files, handle pthread-specific
12692         synchronisation types
12693
12694         * threads-dummy-types.h: 
12695         * threads-dummy-types.c: New files of dummy support for
12696         thread-specific types
12697
12698         * metadata.c:
12699         * image.c:
12700         * pedump.c: include mono-endian.h not endian.h
12701         
12702         * Makefile.am: More threads files.
12703         Name mono-endian.h not endian.h
12704
12705 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
12706
12707         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
12708         stuff and implement a few more bits.
12709         * icall.c: a field needs to be dereferenced twice. Do not use the same
12710         name for two variables in the same scope.
12711         * image.c, image.h: cleanups.
12712
12713 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
12714
12715         * class.c (mono_class_metadata_init): bug fix: compute the right size
12716
12717 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
12718
12719         * icall.c: implemented some of the Reflection internalcalls.
12720         * image.c, image.h: start writing out the PE/COFF image.
12721         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
12722         that does the reverse than decode_blob_size ().
12723         * object.c: use mono_metadata_encode_value (). Move here
12724         temporary implementation of mono_string_to_utf8 ().
12725         * rawbuffer.c: make malloc_map static.
12726
12727 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12728
12729         * metadata.c: fix type comparison for arrays.
12730         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
12731         Added a couple of new classes to monodefaults.
12732         * icall.c: added a couple of Reflection-related internalcalls.
12733         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
12734         Added a byval_arg MonoType to MonoClass.
12735
12736 2001-09-28  Dick Porter  <dick@ximian.com>
12737
12738         * icall.c:
12739         * threads-pthread.h: 
12740         * threads-pthread.c: Implemented internal calls for
12741         LocalDataStoreSlot operations.  Applied mutexes around all shared
12742         data.  Reworked the thread creation and Start() operations to
12743         avoid a race condition.
12744         
12745         * threads-dummy.h:
12746         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
12747
12748 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
12749
12750         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
12751
12752 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
12753
12754         * class.c, loader.c: warn and return NULL instead of erroring out.
12755         * icall.c: added System.AppDomain::getCurDomain().
12756         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
12757
12758 2001-09-25  Dick Porter  <dick@ximian.com>
12759
12760         * threads-pthread.h:
12761         * threads-pthread.c: Implemented timed thread joining and added
12762         System.Threading.Thread::Join_internal internal call
12763
12764         * icall.c: Added System.Threading.Thread::Join_internal internal call
12765
12766         * threads-dummy.h:
12767         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
12768
12769 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
12770
12771         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
12772         mono_string_intern () to implement the semantics of the ldstr opcode
12773         and the interning of System.Strings.
12774         * icall.c: provide hooks to make String::IsIntern and String::Intern
12775         internalcalls.
12776
12777 2001-09-23  Dick Porter  <dick@ximian.com>
12778
12779         * threads-dummy.c: 
12780         * threads-dummy.h: New files of dummy threading routines
12781
12782         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
12783         support code based on system specifics
12784
12785         Rename PTHREAD_LIBS to THREAD_LIBS
12786         
12787 2001-09-23  Dick Porter  <dick@ximian.com>
12788
12789         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
12790         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
12791         internal calls.
12792         (mono_thread_init): Set up a Thread object instance to return when
12793         the main thread calls Thread.CurrentThread
12794         (mono_thread_cleanup): Wait for all subthreads to exit
12795
12796         * icall.c: New internal calls for System.Threading.Thread::Sleep
12797         (including Schedule) and CurrentThread
12798
12799         * threads.h: New file, to insulate thread-specific stuff from the
12800         rest of the code
12801
12802 2001-09-21  Dick Porter  <dick@ximian.com>
12803
12804         * threads-pthread.h: 
12805         * threads-pthread.c: New file, for handling pthreads-style
12806         threading support.  Start() now starts a new thread and executes
12807         the ThreadStart delegate instance.
12808
12809         * icall.c: Added the internalcall for
12810         System.Threading.Thread::Start_internal
12811
12812         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
12813
12814 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
12815
12816         * loader.c: work around the different signatures for delegates
12817         constructors csc generates in compiled code vs the ones compiled in mscorlib.
12818
12819 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
12820
12821         * class.h, class.c: add mono_class_get_field_from_name ().
12822         * *: Fix C comments and other ANSI C issues.
12823
12824 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
12825
12826         * endian.h, assembly.c: fix some endianness issues.
12827
12828 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
12829
12830         * loader.h, load.c: add delegate_class to mono_defaults.
12831         Handle runtime provided methods in mono_get_method ().
12832
12833 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
12834
12835         * loader.c (mono_get_method): use pinvoke for internal call
12836
12837         * icall.c: use pinvoke for internal call
12838
12839         * loader.c (method_from_memberref): set the method name
12840
12841 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
12842
12843         * metadata.c: help the compiler generate better code for
12844         mono_class_from_mono_type ().
12845
12846 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
12847
12848         * class.c (mono_class_metadata_init): delayed computing of the
12849         class size to mono_class_metadata_init ()
12850
12851 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
12852
12853         * class.c, class.h: add an interfaces member to MonoClass.
12854         * image.c, image.h: add assembly_name field to MonoImage
12855         from the assembly table.
12856         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
12857
12858 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
12859
12860         * class.c: Handle Array in mono_class_from_mono_type ().
12861         * metadata.c, pedump.c: some endian fixes.
12862
12863 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12864
12865         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
12866         * metadata.c: fix small problem introduced with the latest commit.
12867
12868 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
12869
12870         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
12871         We don't need a MonoMetadata pointer anymore to compare signatures in
12872         mono_metadata_signature_equal (), update callers.
12873         Reduced memory usage an number of allocations for MonoMethodHeader and
12874         MonoMethodSignature.
12875
12876 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
12877
12878         * metadata.c: added compare for szarray.
12879
12880 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
12881
12882         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
12883         and add a couple more types to it and mono_defaults. Give an hint on
12884         classes that need implementing in our corlib and are referenced
12885         in mscorlib.
12886
12887 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
12888
12889         * class.h, class.c: keep track if a class is also an Enum.
12890         * loader.c: Implement a couple more types for use in libffi
12891         marshalling. Gives better diagnostics when failing to dlopen
12892         a library. Set method->klass for P/Invoke methods, too.
12893
12894 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
12895
12896         * class.c, class.h: add a MonoType this_arg to MonoClass that
12897         represents a pointer to an object of the class' type that
12898         can be used by the interpreter and later the type cache.
12899         Add best guess alignment info for valuetype objects.
12900
12901 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
12902
12903         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
12904         into MonoType: one less level of indirection and allocation and
12905         simplifies quite a bit of code. Added cache for MonoTypes that are
12906         used frequently, so that we don't need to allocate them all the time.
12907
12908 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
12909
12910         * class.c (mono_class_create_from_typedef): System.Enum is also a
12911         value type, although it does not derive from System.ValueType
12912         (maybe a bug in the ms compiler?)
12913
12914         * metadata.c (mono_type_size): return the right size for value types
12915
12916         * loader.c (mono_get_method): only initialize method header if not abstract
12917
12918         * class.c (mono_class_from_mono_type): use mono_default values. 
12919
12920 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
12921
12922         * *: use MonoClass pointers instead of <type_tokens>
12923         
12924         * class.h: new flag: metadata_inited.
12925
12926         * class.c (mono_class_metadata_init): impl.
12927         (mono_class_instance_size): impl.
12928         (mono_class_data_size): impl.
12929
12930 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12931
12932         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
12933         MonoClass now has the name and name_space fields. 
12934         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
12935         mono_get_method () takes and optional MonoClass as argument.
12936         Removed mono_typedef_from_name() and added mono_class_token_from_name()
12937         instead that takes advantage of a map from class names to typedef
12938         tokens in MonoImage.
12939
12940 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
12941
12942         * metadata.c: zero is not a valid alignment boundary.
12943         Merge MONO_TYPE_VOID in default decoding code.
12944
12945 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
12946
12947         * image.h: merged MonoMetadata into MonoImage
12948
12949         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
12950         identify the type of elements.
12951
12952 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
12953
12954         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
12955         * cil-coff.h: split MonoMSDOSHeader and add size info.
12956         * image.c: add some consistency checks.
12957         * metadata.c: fix row size computation: one programmer
12958         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
12959         add explanation for the locator routine.
12960         Fix decoding of size in method header.
12961         
12962 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
12963
12964         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
12965         (g_concat_dir_and_file): Bring g_concat_dir_and_file
12966         function from gnome-libs.  This uses the right path separator
12967         based on the OS, and also works around a bug in some systems where
12968         a double slash is not allowed. 
12969         (default_assembly_name_resolver): Use g_concat_dir_and_file
12970         (mono_assembly_open): ditto.
12971
12972 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
12973
12974         * metadata.c (mono_metadata_signature_equal): impl.
12975
12976         * *: void is now a realy MonoType (instead of using NULL)
12977         
12978         * metadata.c (do_mono_metadata_parse_type): use
12979         mono_metadata_parse_type to parse void value.
12980
12981 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
12982
12983         * metadata.c, metadata.h: in the signature and method header store
12984         only the space required for holding the loca vars and incoming arguments.
12985
12986 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
12987
12988         * metadata.c (do_mono_metadata_parse_type): treat void like any
12989         other type (instead of assigning NULL);
12990
12991 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
12992
12993         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
12994
12995 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
12996
12997         * image.c (do_mono_image_open): added a cache for arrays.
12998
12999 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13000
13001         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13002         decode a single column from a row in a metadata table and changes
13003         to take advantage of it in the typedef locator (gives a nice speed up).
13004         Store offset info for function params.
13005
13006 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13007
13008         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13009
13010 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13011
13012         * assembly.c: how could mono_assembly_close () had ever worked?
13013         * metadata.c, metadata.h: provide offset info for local vars.
13014         Implement mono_type_size () to take care of alignment as well
13015         as size (it was mono_field_type_size in cli/class.c before).
13016
13017 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13018
13019         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13020
13021         * assembly.h (CORLIB_NAME): set to corlib.dll
13022
13023         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13024
13025 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13026
13027         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13028         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13029         tokentype.h: massive namespace cleanup.
13030
13031 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13032
13033         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13034
13035 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13036
13037         * metadata.c (mono_metadata_free_type): added check for type !=
13038         NULL (void) before calling mono_metadata_free_type()
13039
13040 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13041
13042         * metadata.h, row_indexes.h: added header with enumerations to use
13043         to index in the columns from tables in metadata and to decode coded
13044         tokens: we should start using this instead of embedding magic numbers
13045         all over the code.
13046
13047 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13048
13049         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13050         Move metadata_t info from cli_image_info_t to MonoImage, where
13051         it's easily accessible. Changed all the uses accordingly.
13052         Added the method and class caches to MonoImage.
13053         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13054         and mono_metadata_decode_value () signature to be more consistent
13055         with the other parse functions (and simplify code). Taken advantage
13056         of zero-length array allocation with GCC. Removed reduntant (and
13057         wrong) MonoFieldType struct and use MonoParam instead. Changed
13058         mono_metadata_parse_field_type () to use common code for parsing.
13059         Added mono_metadata_typedef_from_field () and
13060         mono_metadata_typedef_from_method () to lookup a typedef index from a
13061         field or method token.
13062         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13063
13064 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13065
13066         * metadata.c (mono_metadata_parse_field_type): Implement. 
13067         (do_mono_metadata_parse_type): Split engine from
13068         mono_metadata_parse_type, so that we can create smaller structures
13069         for things that just have one pointer to the MonoType (look at
13070         the MonoFieldType)
13071
13072 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13073
13074         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13075         as Jan Gray found out, it is incorrect. 
13076
13077 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13078
13079         * assembly.c: Implement asssembly loading.  This loads an image
13080         and loads all the referenced assemblies.  Come to think of it, we
13081         could always do lazy loading of the assemblies. 
13082
13083         * image.c (mono_image_open): Keep loaded images in a hashtable.
13084
13085         * image.h (MonoImage): Add reference count.
13086
13087 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13088
13089         * assembly.c (mono_assembly_open): Keep track of the file name in
13090         case the assembly has no ASSEMBLY table.
13091
13092         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13093         from get.c here.
13094
13095 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13096
13097         * metadata.c, metadata.h: decode local vars in method header
13098         parse function. Change callers accordingly.
13099
13100 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13101
13102         * metadata.h, cil-coff.h: protect against multiple inclusion.
13103         Added some new structures to hold information decoded from metadata:
13104         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13105         and relevant decoding/free functions.
13106         * metadata.c: implement decoding functions. Add warning for out of bounds
13107         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13108         all the info about a method signature and invocation. Remove check on
13109         uninitialized local var in parse_mh() and fix memory leak.
13110
13111 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13112
13113         * metadata.h: More macros.
13114
13115         * tokentype.h: New file.
13116
13117 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13118
13119         * assembly.c: added a consistency check and initialize
13120         some structures with g_new0().
13121         * metadata.c: fixed a couple more bugs in table size computation
13122         and add other checks for out-of bound access to metadata.
13123
13124 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13125
13126         * metatada.c: fix bugs computing table sizes. Spew a
13127         warning when index in string heap is out of bounds.
13128
13129 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13130
13131         * metadata.h: Add a couple of macros to manipulate tokens. 
13132
13133 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13134
13135         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13136         cli_section_tables).
13137
13138 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13139
13140         * metadata.c (mono_metadata_user_string): New function, provides
13141         access to the UserString heap. 
13142
13143 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13144
13145         * metadata.c: Add inline documentation.
13146
13147 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13148
13149         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13150         files. 
13151
13152 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13153
13154         * typeattr.h: New file, TypeAttribute flags. 
13155
13156 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13157
13158         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13159         mono_assembly_ensure_section): Section loading code.
13160         (load_section_tables): Load the sections.
13161
13162         * mono/metadata/metadata.c (mono_metadata_locate_token,
13163         mono_metadata_locate): Functions to locate the information
13164         definition given a token or a table and an index.
13165         (mono_metadata_compute_table_bases): New.
13166         (compute_size): New function to compute the sizes of the various
13167         tables.
13168
13169         * mono/metadata/metadata.h: Finish listing the different index
13170         types. 
13171
13172         * mono/metadata/pedump.c: Improve to dump new information.
13173
13174 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13175
13176         * mono/metadata/metadata.c: Entered all the tables matching
13177         Beta2. 
13178
13179         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13180